From a747221b013cc8d458eea85130a183be24fa2ab6 Mon Sep 17 00:00:00 2001 From: Mike Bragg Date: Tue, 22 Oct 2024 20:05:16 +0000 Subject: [PATCH] Implement PrintCrossProcessSubframe for AlloyBrowserHostImpl (fixes #3768) --- libcef/browser/alloy/alloy_browser_host_impl.cc | 11 +++++++++++ libcef/browser/alloy/alloy_browser_host_impl.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/libcef/browser/alloy/alloy_browser_host_impl.cc b/libcef/browser/alloy/alloy_browser_host_impl.cc index 135b6cebb..63d1ba47a 100644 --- a/libcef/browser/alloy/alloy_browser_host_impl.cc +++ b/libcef/browser/alloy/alloy_browser_host_impl.cc @@ -35,6 +35,7 @@ #include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h" #include "chrome/common/webui_url_constants.h" #include "components/input/native_web_keyboard_event.h" +#include "components/printing/browser/print_composite_client.h" #include "components/zoom/page_zoom.h" #include "content/browser/gpu/compositor_util.h" #include "content/public/browser/desktop_media_id.h" @@ -922,6 +923,16 @@ bool AlloyBrowserHostImpl::IsAudioMuted() { // content::WebContentsDelegate methods. // ----------------------------------------------------------------------------- +void AlloyBrowserHostImpl::PrintCrossProcessSubframe( + content::WebContents* web_contents, + const gfx::Rect& rect, + int document_cookie, + content::RenderFrameHost* subframe_host) const { + auto* client = printing::PrintCompositeClient::FromWebContents(web_contents); + if (client) + client->PrintCrossProcessSubframe(rect, document_cookie, subframe_host); +} + content::WebContents* AlloyBrowserHostImpl::OpenURLFromTab( content::WebContents* source, const content::OpenURLParams& params, diff --git a/libcef/browser/alloy/alloy_browser_host_impl.h b/libcef/browser/alloy/alloy_browser_host_impl.h index 9c2a409fd..6d3acc82e 100644 --- a/libcef/browser/alloy/alloy_browser_host_impl.h +++ b/libcef/browser/alloy/alloy_browser_host_impl.h @@ -174,6 +174,10 @@ class AlloyBrowserHostImpl : public CefBrowserHostBase, DestructionState destruction_state() const { return destruction_state_; } // content::WebContentsDelegate methods. + void PrintCrossProcessSubframe(content::WebContents* web_contents, + const gfx::Rect& rect, + int document_cookie, + content::RenderFrameHost* subframe_host) const override; content::WebContents* OpenURLFromTab( content::WebContents* source, const content::OpenURLParams& params,