diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-02-23 17:11:05 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-27 09:13:09 +0000 |
commit | bce063054682e590e9fa8aa9d2ec19ca26ea3d49 (patch) | |
tree | 72eafcf4e0d2c6518ffd38772f7f5758bf6a4137 /src/core/print_view_manager_base_qt.cpp | |
parent | 817c117cf89f15e1877107597c8daeff956fd1a6 (diff) |
Adaptations for Chromium 56
Change-Id: I78240d7956de4716757761fc6517f031b4adb822
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/core/print_view_manager_base_qt.cpp')
-rw-r--r-- | src/core/print_view_manager_base_qt.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
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 |