From bce063054682e590e9fa8aa9d2ec19ca26ea3d49 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 23 Feb 2017 17:11:05 +0100 Subject: Adaptations for Chromium 56 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I78240d7956de4716757761fc6517f031b4adb822 Reviewed-by: Michael BrĂ¼ning --- src/core/print_view_manager_base_qt.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/core/print_view_manager_base_qt.cpp') diff --git a/src/core/print_view_manager_base_qt.cpp b/src/core/print_view_manager_base_qt.cpp index 63181e640..81e07707a 100644 --- a/src/core/print_view_manager_base_qt.cpp +++ b/src/core/print_view_manager_base_qt.cpp @@ -55,6 +55,7 @@ #include "chrome/browser/printing/printer_query.h" #include "components/printing/common/print_messages.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_types.h" @@ -71,6 +72,8 @@ PrintViewManagerBaseQt::PrintViewManagerBaseQt(content::WebContents *contents) , m_didPrintingSucceed(false) , m_printerQueriesQueue(WebEngineContext::current()->getPrintJobManager()->queue()) { + // FIXME: Check if this needs to be executed async: + PrintViewManagerBaseQt::UpdatePrintingEnabled(); } PrintViewManagerBaseQt::~PrintViewManagerBaseQt() @@ -79,6 +82,17 @@ PrintViewManagerBaseQt::~PrintViewManagerBaseQt() DisconnectFromCurrentPrintJob(); } +void PrintViewManagerBaseQt::UpdatePrintingEnabled() +{ + bool enabled = false; +#if BUILDFLAG(ENABLE_BASIC_PRINTING) + enabled = true; +#endif + web_contents()->ForEachFrame( + base::Bind(&PrintViewManagerBaseQt::SendPrintingEnabled, + base::Unretained(this), enabled)); +} + void PrintViewManagerBaseQt::NavigationStopped() { // Cancel the current job, wait for the worker to finish. @@ -192,7 +206,7 @@ void PrintViewManagerBaseQt::DidStartLoading() { } -bool PrintViewManagerBaseQt::OnMessageReceived(const IPC::Message& message) +bool PrintViewManagerBaseQt::OnMessageReceived(const IPC::Message& message, content::RenderFrameHost* render_frame_host) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(PrintViewManagerBaseQt, message) @@ -201,7 +215,7 @@ bool PrintViewManagerBaseQt::OnMessageReceived(const IPC::Message& message) OnShowInvalidPrinterSettingsError); IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() - return handled || PrintManager::OnMessageReceived(message); + return handled || PrintManager::OnMessageReceived(message, render_frame_host); } void PrintViewManagerBaseQt::Observe(int type, @@ -510,4 +524,9 @@ void PrintViewManagerBaseQt::StopWorker(int documentCookie) { } } +void PrintViewManagerBaseQt::SendPrintingEnabled(bool enabled, content::RenderFrameHost* rfh) +{ + rfh->Send(new PrintMsg_SetPrintingEnabled(rfh->GetRoutingID(), enabled)); +} + } // namespace QtWebEngineCore -- cgit v1.2.3