Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2647)

Unified Diff: chrome/browser/printing/printing_message_filter.cc

Issue 478183005: Added PrintingContext::Delegate to get parent view handle and application locale. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/printing/printing_message_filter.cc
diff --git a/chrome/browser/printing/printing_message_filter.cc b/chrome/browser/printing/printing_message_filter.cc
index 37c5984dab0db7c4f888126f9d14d1bb6499a3d7..6735e6a30af988a9031032385b723b7fa941644a 100644
--- a/chrome/browser/printing/printing_message_filter.cc
+++ b/chrome/browser/printing/printing_message_filter.cc
@@ -258,55 +258,13 @@ content::WebContents* PrintingMessageFilter::GetWebContentsForRenderView(
return view ? content::WebContents::FromRenderViewHost(view) : NULL;
}
-struct PrintingMessageFilter::GetPrintSettingsForRenderViewParams {
- PrinterQuery::GetSettingsAskParam ask_user_for_settings;
- int expected_page_count;
- bool has_selection;
- MarginType margin_type;
-};
-
-void PrintingMessageFilter::GetPrintSettingsForRenderView(
- int render_view_id,
- GetPrintSettingsForRenderViewParams params,
- const base::Closure& callback,
- scoped_refptr<PrinterQuery> printer_query) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- content::WebContents* wc = GetWebContentsForRenderView(render_view_id);
- if (wc) {
- scoped_ptr<PrintingUIWebContentsObserver> wc_observer(
- new PrintingUIWebContentsObserver(wc));
- BrowserThread::PostTask(BrowserThread::IO,
- FROM_HERE,
- base::Bind(&PrinterQuery::GetSettings,
- printer_query,
- params.ask_user_for_settings,
- base::Passed(&wc_observer),
- params.expected_page_count,
- params.has_selection,
- params.margin_type,
- callback));
- } else {
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&PrintingMessageFilter::OnGetPrintSettingsFailed, this,
- callback, printer_query));
- }
-}
-
-void PrintingMessageFilter::OnGetPrintSettingsFailed(
- const base::Closure& callback,
- scoped_refptr<PrinterQuery> printer_query) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
- printer_query->GetSettingsDone(PrintSettings(), PrintingContext::FAILED);
- callback.Run();
-}
-
void PrintingMessageFilter::OnIsPrintingEnabled(bool* is_enabled) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
*is_enabled = profile_io_data_->printing_enabled()->GetValue();
}
-void PrintingMessageFilter::OnGetDefaultPrintSettings(IPC::Message* reply_msg) {
+void PrintingMessageFilter::OnGetDefaultPrintSettings(int render_view_id,
+ IPC::Message* reply_msg) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
scoped_refptr<PrinterQuery> printer_query;
if (!profile_io_data_->printing_enabled()->GetValue()) {
@@ -315,23 +273,22 @@ void PrintingMessageFilter::OnGetDefaultPrintSettings(IPC::Message* reply_msg) {
return;
}
printer_query = queue_->PopPrinterQuery(0);
- if (!printer_query)
- printer_query = queue_->CreatePrinterQuery();
+ if (!printer_query) {
+ printer_query =
+ queue_->CreatePrinterQuery(render_process_id_, render_view_id);
+ }
// Loads default settings. This is asynchronous, only the IPC message sender
// will hang until the settings are retrieved.
- GetPrintSettingsForRenderViewParams params;
- params.ask_user_for_settings = PrinterQuery::DEFAULTS;
- params.expected_page_count = 0;
- params.has_selection = false;
- params.margin_type = DEFAULT_MARGINS;
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&PrintingMessageFilter::GetPrintSettingsForRenderView, this,
- reply_msg->routing_id(), params,
- base::Bind(&PrintingMessageFilter::OnGetDefaultPrintSettingsReply,
- this, printer_query, reply_msg),
- printer_query));
+ printer_query->GetSettings(
+ PrinterQuery::DEFAULTS,
+ 0,
+ false,
+ DEFAULT_MARGINS,
+ base::Bind(&PrintingMessageFilter::OnGetDefaultPrintSettingsReply,
+ this,
+ printer_query,
+ reply_msg));
}
void PrintingMessageFilter::OnGetDefaultPrintSettingsReply(
@@ -359,25 +316,24 @@ void PrintingMessageFilter::OnGetDefaultPrintSettingsReply(
}
void PrintingMessageFilter::OnScriptedPrint(
+ int render_view_id,
const PrintHostMsg_ScriptedPrint_Params& params,
IPC::Message* reply_msg) {
scoped_refptr<PrinterQuery> printer_query =
queue_->PopPrinterQuery(params.cookie);
- if (!printer_query)
- printer_query = queue_->CreatePrinterQuery();
- GetPrintSettingsForRenderViewParams settings_params;
- settings_params.ask_user_for_settings = PrinterQuery::ASK_USER;
- settings_params.expected_page_count = params.expected_pages_count;
- settings_params.has_selection = params.has_selection;
- settings_params.margin_type = params.margin_type;
-
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&PrintingMessageFilter::GetPrintSettingsForRenderView, this,
- reply_msg->routing_id(), settings_params,
- base::Bind(&PrintingMessageFilter::OnScriptedPrintReply, this,
- printer_query, reply_msg),
- printer_query));
+ if (!printer_query) {
+ printer_query =
+ queue_->CreatePrinterQuery(render_process_id_, render_view_id);
+ }
+ printer_query->GetSettings(
+ PrinterQuery::ASK_USER,
+ params.expected_pages_count,
+ params.has_selection,
+ params.margin_type,
+ base::Bind(&PrintingMessageFilter::OnScriptedPrintReply,
+ this,
+ printer_query,
+ reply_msg));
}
void PrintingMessageFilter::OnScriptedPrintReply(
@@ -429,28 +385,34 @@ void PrintingMessageFilter::UpdateFileDescriptor(int render_view_id, int fd) {
#endif
void PrintingMessageFilter::OnUpdatePrintSettings(
- int document_cookie, const base::DictionaryValue& job_settings,
+ int render_view_id,
+ int document_cookie,
+ const base::DictionaryValue& job_settings,
IPC::Message* reply_msg) {
scoped_ptr<base::DictionaryValue> new_settings(job_settings.DeepCopy());
scoped_refptr<PrinterQuery> printer_query;
if (!profile_io_data_->printing_enabled()->GetValue()) {
// Reply with NULL query.
- OnUpdatePrintSettingsReply(printer_query, reply_msg);
+ OnUpdatePrintSettingsReply(reply_msg, printer_query);
return;
}
printer_query = queue_->PopPrinterQuery(document_cookie);
- if (!printer_query)
- printer_query = queue_->CreatePrinterQuery();
+ if (!printer_query) {
+ printer_query =
+ queue_->CreatePrinterQuery(render_process_id_, render_view_id);
+ }
printer_query->SetSettings(
new_settings.Pass(),
- base::Bind(&PrintingMessageFilter::OnUpdatePrintSettingsReply, this,
- printer_query, reply_msg));
+ base::Bind(&PrintingMessageFilter::OnUpdatePrintSettingsReply,
+ this,
+ reply_msg,
+ printer_query));
}
void PrintingMessageFilter::OnUpdatePrintSettingsReply(
- scoped_refptr<PrinterQuery> printer_query,
- IPC::Message* reply_msg) {
+ IPC::Message* reply_msg,
+ scoped_refptr<PrinterQuery> printer_query) {
PrintMsg_PrintPages_Params params;
if (!printer_query.get() ||
printer_query->last_status() != PrintingContext::OK) {

Powered by Google App Engine
This is Rietveld 408576698