From a17c59ce1da46b03ef39b142b7efccbfd353199b Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Thu, 18 Mar 2021 12:59:17 -0400 Subject: [PATCH] Fix renderer crash when printing a PDF file (fixes issue #3100) --- .../extensions/print_render_frame_helper_delegate.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libcef/renderer/extensions/print_render_frame_helper_delegate.cc b/libcef/renderer/extensions/print_render_frame_helper_delegate.cc index 6044850f0..2e5bda344 100644 --- a/libcef/renderer/extensions/print_render_frame_helper_delegate.cc +++ b/libcef/renderer/extensions/print_render_frame_helper_delegate.cc @@ -39,10 +39,14 @@ blink::WebElement CefPrintRenderFrameHelperDelegate::GetPdfElement( url.host_piece() == extension_misc::kPdfExtensionId; if (inside_print_preview || inside_pdf_extension) { // with id="plugin" is created in - // chrome/browser/resources/pdf/pdf.js. - auto plugin_element = frame->GetDocument().GetElementById("plugin"); - if (!plugin_element.IsNull()) { - return plugin_element; + // chrome/browser/resources/pdf/pdf_viewer_base.js. + auto viewer_element = frame->GetDocument().GetElementById("viewer"); + if (!viewer_element.IsNull() && !viewer_element.ShadowRoot().IsNull()) { + auto plugin_element = + viewer_element.ShadowRoot().QuerySelector("#plugin"); + if (!plugin_element.IsNull()) { + return plugin_element; + } } NOTREACHED(); }