Chromium Code Reviews| Index: chrome/renderer/print_web_view_helper.cc |
| diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc |
| index f0fc8da7dde081f8b8afa64d30f70b6db8d2d019..7906b420dea65bdb17229602e881d1b4b007f648 100644 |
| --- a/chrome/renderer/print_web_view_helper.cc |
| +++ b/chrome/renderer/print_web_view_helper.cc |
| @@ -629,8 +629,11 @@ void PrintWebViewHelper::OnPrintPreview(const DictionaryValue& settings) { |
| print_preview_context_.OnPrintPreview(); |
| if (!InitPrintSettings(print_preview_context_.frame(), |
| - print_preview_context_.node())) { |
| - NOTREACHED(); |
| + print_preview_context_.node(), |
| + true)) { |
| + Send(new PrintHostMsg_PrintPreviewInvalidPrinterSettings( |
| + routing_id(), |
|
kmadhusu
2011/08/26 18:50:40
nit: Fix indentation
arthurhsu
2011/08/29 22:53:16
Done.
|
| + print_pages_params_->params.document_cookie)); |
| return; |
| } |
| @@ -1009,7 +1012,8 @@ void PrintWebViewHelper::UpdatePrintableSizeInPrintParameters( |
| } |
| bool PrintWebViewHelper::InitPrintSettings(WebKit::WebFrame* frame, |
| - WebKit::WebNode* node) { |
| + WebKit::WebNode* node, |
| + bool is_preview) { |
| DCHECK(frame); |
| PrintMsg_PrintPages_Params settings; |
| @@ -1018,27 +1022,32 @@ bool PrintWebViewHelper::InitPrintSettings(WebKit::WebFrame* frame, |
| // Check if the printer returned any settings, if the settings is empty, we |
| // can safely assume there are no printer drivers configured. So we safely |
| // terminate. |
| + bool result = true; |
| if (PrintMsg_Print_Params_IsEmpty(settings.params)) { |
| - render_view()->runModalAlertDialog( |
| - frame, |
| - l10n_util::GetStringUTF16(IDS_DEFAULT_PRINTER_NOT_FOUND_WARNING)); |
| - return false; |
| + if (!is_preview) { |
| + render_view()->runModalAlertDialog( |
| + frame, |
| + l10n_util::GetStringUTF16(IDS_DEFAULT_PRINTER_NOT_FOUND_WARNING)); |
|
kmadhusu
2011/08/26 18:50:40
If the printer settings is empty/invalid, we don't
arthurhsu
2011/08/29 22:53:16
Done.
|
| + } |
| + result = false; |
| } |
| - if (settings.params.dpi < kMinDpi || settings.params.document_cookie == 0) { |
| + |
| + if (result && |
| + (settings.params.dpi < kMinDpi || settings.params.document_cookie == 0)) { |
| // Invalid print page settings. |
| NOTREACHED(); |
| - return false; |
| + result = false; |
| } |
| settings.pages.clear(); |
| print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings)); |
| - return true; |
| + return result; |
| } |
| bool PrintWebViewHelper::InitPrintSettingsAndPrepareFrame( |
| WebKit::WebFrame* frame, WebKit::WebNode* node, |
| scoped_ptr<PrepareFrameAndViewForPrint>* prepare) { |
| - if (!InitPrintSettings(frame, node)) |
| + if (!InitPrintSettings(frame, node, false)) |
| return false; |
| DCHECK(!prepare->get()); |