diff options
Diffstat (limited to 'src/core/renderer/print_web_view_helper_delegate_qt.cpp')
-rw-r--r-- | src/core/renderer/print_web_view_helper_delegate_qt.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/core/renderer/print_web_view_helper_delegate_qt.cpp b/src/core/renderer/print_web_view_helper_delegate_qt.cpp index 5dcfaafd6..17b9e4da1 100644 --- a/src/core/renderer/print_web_view_helper_delegate_qt.cpp +++ b/src/core/renderer/print_web_view_helper_delegate_qt.cpp @@ -60,13 +60,23 @@ namespace QtWebEngineCore { PrintWebViewHelperDelegateQt::~PrintWebViewHelperDelegateQt() {} +bool IsPdfExtensionOrigin(const url::Origin& origin) +{ +#if BUILDFLAG(ENABLE_EXTENSIONS) + return origin.scheme() == extensions::kExtensionScheme + && origin.host() == extension_misc::kPdfExtensionId; +#else + Q_UNUSED(origin); + return false; +#endif +} + blink::WebElement PrintWebViewHelperDelegateQt::GetPdfElement(blink::WebLocalFrame *frame) { #if BUILDFLAG(ENABLE_EXTENSIONS) - GURL url = frame->GetDocument().Url(); - bool inside_print_preview = url.GetOrigin() == chrome::kChromeUIPrintURL; - bool inside_pdf_extension = url.SchemeIs(extensions::kExtensionScheme) && - url.host_piece() == extension_misc::kPdfExtensionId; + const url::Origin origin = frame->GetDocument().GetSecurityOrigin(); + bool inside_print_preview = origin == url::Origin::Create(GURL(chrome::kChromeUIPrintURL)); + bool inside_pdf_extension = IsPdfExtensionOrigin(origin); if (inside_print_preview || inside_pdf_extension) { // <object> with id="plugin" is created in // chrome/browser/resources/pdf/pdf_viewer_base.js. |