| 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 0d0ec73573396946af3f62385b8e13bd5f08eacf..36726eee4667e71193e7de272e489219da218c46 100644
|
| --- a/chrome/renderer/print_web_view_helper.cc
|
| +++ b/chrome/renderer/print_web_view_helper.cc
|
| @@ -571,7 +571,7 @@ void PrintWebViewHelper::OnPrintForPrintPreview(
|
| WebFrame* pdf_frame = pdf_element.document().frame();
|
| scoped_ptr<PrepareFrameAndViewForPrint> prepare;
|
| if (!InitPrintSettingsAndPrepareFrame(pdf_frame, &pdf_element, &prepare)) {
|
| - NOTREACHED() << "Failed to initialize print page settings";
|
| + LOG(ERROR) << "Failed to initialize print page settings";
|
| return;
|
| }
|
|
|
| @@ -631,8 +631,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(),
|
| + print_pages_params_->params.document_cookie));
|
| return;
|
| }
|
|
|
| @@ -1037,7 +1040,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;
|
|
|
| @@ -1046,27 +1050,33 @@ 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_PRINT_PREVIEW_INVALID_PRINTER_SETTINGS));
|
| + }
|
| + 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());
|
|
|