| Index: content/browser/renderer_host/render_message_filter.cc
|
| diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
|
| index 388bddbd6d1449eeae2aa31b8fce542192ef68e6..e06139ef4ac3a3ca103e00f7fb4bb236d60f1d66 100644
|
| --- a/content/browser/renderer_host/render_message_filter.cc
|
| +++ b/content/browser/renderer_host/render_message_filter.cc
|
| @@ -462,7 +462,11 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message,
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ResolveProxy, OnResolveProxy)
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_GetDefaultPrintSettings,
|
| OnGetDefaultPrintSettings)
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_GetCurrentPrintSettings,
|
| + OnGetCurrentPrintSettings)
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ScriptedPrint, OnScriptedPrint)
|
| + IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_UpdatePrintSettings,
|
| + OnUpdatePrintSettings)
|
| #if defined(OS_MACOSX)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_AllocTransportDIB, OnAllocTransportDIB)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_FreeTransportDIB, OnFreeTransportDIB)
|
| @@ -1163,6 +1167,65 @@ void RenderMessageFilter::OnGetDefaultPrintSettingsReply(
|
| }
|
| }
|
|
|
| +void RenderMessageFilter::OnGetCurrentPrintSettings(int document_cookie,
|
| + ViewMsg_Print_Params* params) {
|
| + scoped_refptr<printing::PrinterQuery> printer_query;
|
| + print_job_manager_->PopPrinterQuery(document_cookie, &printer_query);
|
| + if (!printer_query.get()) {
|
| + memset(params, 0, sizeof(ViewMsg_Print_Params));
|
| + } else {
|
| + RenderParamsFromPrintSettings(printer_query->settings(), params);
|
| + params->document_cookie = printer_query->cookie();
|
| + }
|
| + // If printing was enabled.
|
| + if (printer_query.get()) {
|
| + // If user hasn't cancelled.
|
| + if (printer_query->cookie() && printer_query->settings().dpi()) {
|
| + print_job_manager_->QueuePrinterQuery(printer_query.get());
|
| + } else {
|
| + printer_query->StopWorker();
|
| + }
|
| + }
|
| +}
|
| +
|
| +void RenderMessageFilter::OnUpdatePrintSettings(int document_cookie,
|
| + const std::string& job_settings, IPC::Message* reply_msg) {
|
| + scoped_refptr<printing::PrinterQuery> printer_query;
|
| + print_job_manager_->PopPrinterQuery(document_cookie, &printer_query);
|
| + if (printer_query.get()) {
|
| + CancelableTask* task = NewRunnableMethod(
|
| + this,
|
| + &RenderMessageFilter::OnUpdatePrintSettingsReply,
|
| + printer_query,
|
| + reply_msg);
|
| + printer_query->SetSettings(job_settings, task);
|
| + }
|
| +}
|
| +
|
| +void RenderMessageFilter::OnUpdatePrintSettingsReply(
|
| + scoped_refptr<printing::PrinterQuery> printer_query,
|
| + IPC::Message* reply_msg) {
|
| + ViewMsg_Print_Params params;
|
| + if (!printer_query.get() ||
|
| + printer_query->last_status() != printing::PrintingContext::OK) {
|
| + memset(¶ms, 0, sizeof(params));
|
| + } else {
|
| + RenderParamsFromPrintSettings(printer_query->settings(), ¶ms);
|
| + params.document_cookie = printer_query->cookie();
|
| + }
|
| + ViewHostMsg_UpdatePrintSettings::WriteReplyParams(reply_msg, params);
|
| + Send(reply_msg);
|
| + // If printing was enabled.
|
| + if (printer_query.get()) {
|
| + // If user hasn't cancelled.
|
| + if (printer_query->cookie() && printer_query->settings().dpi()) {
|
| + print_job_manager_->QueuePrinterQuery(printer_query.get());
|
| + } else {
|
| + printer_query->StopWorker();
|
| + }
|
| + }
|
| +}
|
| +
|
| void RenderMessageFilter::OnScriptedPrint(
|
| const ViewHostMsg_ScriptedPrint_Params& params,
|
| IPC::Message* reply_msg) {
|
|
|