diff options
Diffstat (limited to 'src/core/printing/print_view_manager_base_qt.cpp')
-rw-r--r-- | src/core/printing/print_view_manager_base_qt.cpp | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/src/core/printing/print_view_manager_base_qt.cpp b/src/core/printing/print_view_manager_base_qt.cpp index 4516f10b2..34c86e506 100644 --- a/src/core/printing/print_view_manager_base_qt.cpp +++ b/src/core/printing/print_view_manager_base_qt.cpp @@ -48,8 +48,8 @@ #include "web_engine_context.h" #include "base/memory/ref_counted_memory.h" -#include "base/memory/shared_memory.h" #include "base/message_loop/message_loop.h" +#include "base/message_loop/message_loop_current.h" #include "base/run_loop.h" #include "base/single_thread_task_runner.h" #include "base/task/post_task.h" @@ -150,7 +150,8 @@ printing::PrintedDocument *PrintViewManagerBaseQt::GetDocument(int cookie) // IPC handlers void PrintViewManagerBaseQt::OnDidPrintDocument(content::RenderFrameHost* /*render_frame_host*/, - const PrintHostMsg_DidPrintDocument_Params ¶ms) + const PrintHostMsg_DidPrintDocument_Params ¶ms, + std::unique_ptr<DelayedFrameDispatchHelper> helper) { printing::PrintedDocument *document = GetDocument(params.document_cookie); if (!document) @@ -172,6 +173,21 @@ void PrintViewManagerBaseQt::OnDidPrintDocument(content::RenderFrameHost* /*rend PrintDocument(document, data, params.page_size, params.content_area, params.physical_offsets); + if (helper) + helper->SendCompleted(); +} + +void PrintViewManagerBaseQt::OnGetDefaultPrintSettings(content::RenderFrameHost *render_frame_host, + IPC::Message *reply_msg) +{ + NOTREACHED() << "should be handled by printing::PrintingMessageFilter"; +} + +void PrintViewManagerBaseQt::OnScriptedPrint(content::RenderFrameHost *render_frame_host, + const PrintHostMsg_ScriptedPrint_Params ¶ms, + IPC::Message *reply_msg) +{ + NOTREACHED() << "should be handled by printing::PrintingMessageFilter"; } void PrintViewManagerBaseQt::OnShowInvalidPrinterSettingsError() @@ -212,13 +228,6 @@ bool PrintViewManagerBaseQt::OnMessageReceived(const IPC::Message& message, content::RenderFrameHost* render_frame_host) { bool handled = true; - IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(PrintViewManagerBaseQt, message, render_frame_host) - IPC_MESSAGE_HANDLER(PrintHostMsg_DidPrintDocument, OnDidPrintDocument) - IPC_MESSAGE_UNHANDLED(handled = false) - IPC_END_MESSAGE_MAP() - if (handled) - return true; - handled = true; IPC_BEGIN_MESSAGE_MAP(PrintViewManagerBaseQt, message) IPC_MESSAGE_HANDLER(PrintHostMsg_ShowInvalidPrinterSettingsError, OnShowInvalidPrinterSettingsError); @@ -417,12 +426,8 @@ void PrintViewManagerBaseQt::ReleasePrintJob() if (!m_printJob.get()) return; - if (rfh) { - auto msg = std::make_unique<PrintMsg_PrintingDone>(rfh->GetRoutingID(), - m_didPrintingSucceed); - rfh->Send(msg.release()); - } - + if (rfh) + GetPrintRenderFrame(rfh)->PrintingDone(m_didPrintingSucceed); m_registrar.Remove(this, chrome::NOTIFICATION_PRINT_JOB_EVENT, content::Source<printing::PrintJob>(m_printJob.get())); @@ -514,25 +519,26 @@ void PrintViewManagerBaseQt::ReleasePrinterQuery() printerQuery = m_printerQueriesQueue->PopPrinterQuery(cookie); if (!printerQuery) return; - base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::IO}, - base::BindOnce(&printing::PrinterQuery::StopWorker, std::move(printerQuery))); + base::PostTask(FROM_HERE, {content::BrowserThread::IO}, + base::BindOnce(&printing::PrinterQuery::StopWorker, std::move(printerQuery))); } // Originally from print_preview_message_handler.cc: -void PrintViewManagerBaseQt::StopWorker(int documentCookie) { - if (documentCookie <= 0) - return; - std::unique_ptr<printing::PrinterQuery> printer_query = - m_printerQueriesQueue->PopPrinterQuery(documentCookie); - if (printer_query.get()) { - base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::IO}, - base::BindOnce(&printing::PrinterQuery::StopWorker, std::move(printer_query))); - } +void PrintViewManagerBaseQt::StopWorker(int documentCookie) +{ + if (documentCookie <= 0) + return; + std::unique_ptr<printing::PrinterQuery> printer_query = + m_printerQueriesQueue->PopPrinterQuery(documentCookie); + if (printer_query.get()) { + base::PostTask(FROM_HERE, {content::BrowserThread::IO}, + base::BindOnce(&printing::PrinterQuery::StopWorker, std::move(printer_query))); + } } void PrintViewManagerBaseQt::SendPrintingEnabled(bool enabled, content::RenderFrameHost* rfh) { - rfh->Send(new PrintMsg_SetPrintingEnabled(rfh->GetRoutingID(), enabled)); + GetPrintRenderFrame(rfh)->SetPrintingEnabled(enabled); } } // namespace QtWebEngineCore |