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

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

Issue 7831041: Fix print preview workflow to reflect settings of selected printer. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Update per code review Created 9 years, 3 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 1f9ad53afe2bfa15ce6dad911b71f61e49e7f13c..f9da9088663c88aea925147d6cdfa25859538d74 100644
--- a/chrome/browser/printing/printing_message_filter.cc
+++ b/chrome/browser/printing/printing_message_filter.cc
@@ -288,22 +288,25 @@ void PrintingMessageFilter::OnUpdatePrintSettings(
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,
- &PrintingMessageFilter::OnUpdatePrintSettingsReply,
- printer_query,
- reply_msg);
- printer_query->SetSettings(job_settings, task);
+ if (!printer_query.get()) {
kmadhusu 2011/09/13 20:01:33 nit: {} is not required.
arthurhsu 2011/09/14 01:08:03 Done.
+ printer_query = new printing::PrinterQuery();
}
+ CancelableTask* task = NewRunnableMethod(
+ this,
+ &PrintingMessageFilter::OnUpdatePrintSettingsReply,
+ printer_query,
+ reply_msg);
+ printer_query->SetSettings(job_settings, task);
}
void PrintingMessageFilter::OnUpdatePrintSettingsReply(
scoped_refptr<printing::PrinterQuery> printer_query,
IPC::Message* reply_msg) {
PrintMsg_PrintPages_Params params;
+ bool failure = false;
Lei Zhang 2011/09/13 20:09:53 I don't think you need |failure|. Whenever |failur
arthurhsu 2011/09/14 01:08:03 Done.
if (printer_query->last_status() != printing::PrintingContext::OK) {
params.Reset();
+ failure = true;
kmadhusu 2011/09/13 20:01:33 The changes in this function is not required becau
arthurhsu 2011/09/14 01:08:03 Done.
} else {
RenderParamsFromPrintSettings(printer_query->settings(), &params.params);
params.params.document_cookie = printer_query->cookie();
@@ -312,11 +315,14 @@ void PrintingMessageFilter::OnUpdatePrintSettingsReply(
}
PrintHostMsg_UpdatePrintSettings::WriteReplyParams(reply_msg, params);
Send(reply_msg);
+
// If user hasn't cancelled.
- if (printer_query->cookie() && printer_query->settings().dpi())
- print_job_manager_->QueuePrinterQuery(printer_query.get());
- else
- printer_query->StopWorker();
+ if (!failure && printer_query->cookie() && printer_query->settings().dpi()) {
+ print_job_manager_->QueuePrinterQuery(printer_query.get());
+ return;
+ }
+
+ printer_query->StopWorker();
}
void PrintingMessageFilter::OnCheckForCancel(const std::string& preview_ui_addr,

Powered by Google App Engine
This is Rietveld 408576698