fix: printing PDF via webContents.print() (#47399)

fix: printing PDF via webContents.print()

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot]
2025-06-08 15:19:09 +02:00
committed by GitHub
parent 2d2e62feda
commit ded238107f

View File

@@ -3046,12 +3046,15 @@ void OnGetDeviceNameToUse(base::WeakPtr<content::WebContents> web_contents,
print_settings.Set(printing::kSettingDpiVertical, dpi.height());
}
auto* print_view_manager =
PrintViewManagerElectron::FromWebContents(web_contents.get());
content::RenderFrameHost* rfh = GetRenderFrameHostToUse(web_contents.get());
if (!rfh)
return;
auto* print_view_manager = PrintViewManagerElectron::FromWebContents(
content::WebContents::FromRenderFrameHost(rfh));
if (!print_view_manager)
return;
content::RenderFrameHost* rfh = GetRenderFrameHostToUse(web_contents.get());
print_view_manager->PrintNow(rfh, std::move(print_settings),
std::move(print_callback));
}
@@ -3099,12 +3102,15 @@ void WebContents::Print(gin::Arguments* args) {
}
if (options.IsEmptyObject()) {
auto* print_view_manager =
PrintViewManagerElectron::FromWebContents(web_contents());
content::RenderFrameHost* rfh = GetRenderFrameHostToUse(web_contents());
if (!rfh)
return;
auto* print_view_manager = PrintViewManagerElectron::FromWebContents(
content::WebContents::FromRenderFrameHost(rfh));
if (!print_view_manager)
return;
content::RenderFrameHost* rfh = GetRenderFrameHostToUse(web_contents());
print_view_manager->PrintNow(rfh, std::move(settings), std::move(callback));
return;
}