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

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..6e1e9f7e54f71ede8ba8b1a66151cfca3c14e5f8 100644
--- a/chrome/browser/printing/printing_message_filter.cc
+++ b/chrome/browser/printing/printing_message_filter.cc
@@ -287,22 +287,30 @@ void PrintingMessageFilter::OnUpdatePrintSettings(
int document_cookie, const DictionaryValue& job_settings,
IPC::Message* reply_msg) {
scoped_refptr<printing::PrinterQuery> printer_query;
+ if (!print_job_manager_->printing_enabled()) {
+ // Reply with NULL query.
+ OnUpdatePrintSettingsReply(printer_query, reply_msg);
+ return;
+ }
+
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/19 19:09:41 nit: {} is not required
arthurhsu 2011/09/19 22:24:49 Done.
Lei Zhang 2011/09/21 02:57:16 I would have preferred it for consistency with the
+ 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;
- if (printer_query->last_status() != printing::PrintingContext::OK) {
+ if (!printer_query.get() ||
+ printer_query->last_status() != printing::PrintingContext::OK) {
params.Reset();
} else {
RenderParamsFromPrintSettings(printer_query->settings(), &params.params);
@@ -313,10 +321,12 @@ 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 (printer_query.get()) {
+ if (printer_query->cookie() && printer_query->settings().dpi())
+ print_job_manager_->QueuePrinterQuery(printer_query.get());
+ else
+ printer_query->StopWorker();
+ }
}
void PrintingMessageFilter::OnCheckForCancel(const std::string& preview_ui_addr,

Powered by Google App Engine
This is Rietveld 408576698