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()); |