Index: chrome/renderer/print_web_view_helper.cc |
=================================================================== |
--- chrome/renderer/print_web_view_helper.cc (revision 97921) |
+++ chrome/renderer/print_web_view_helper.cc (working copy) |
@@ -576,7 +576,7 @@ |
return; |
} |
- if (!UpdatePrintSettings(job_settings)) { |
+ if (!UpdatePrintSettings(job_settings, false)) { |
DidFinishPrinting(FAIL_PRINT); |
return; |
} |
@@ -634,7 +634,7 @@ |
return; |
} |
- if (!UpdatePrintSettings(settings)) { |
+ if (!UpdatePrintSettings(settings, true)) { |
DidFinishPrinting(FAIL_PREVIEW); |
return; |
} |
@@ -1052,48 +1052,50 @@ |
} |
bool PrintWebViewHelper::UpdatePrintSettings( |
- const DictionaryValue& job_settings) { |
+ const DictionaryValue& job_settings, bool is_preview) { |
PrintMsg_PrintPages_Params settings; |
Send(new PrintHostMsg_UpdatePrintSettings(routing_id(), |
print_pages_params_->params.document_cookie, job_settings, &settings)); |
- |
if (settings.params.dpi < kMinDpi || !settings.params.document_cookie) |
return false; |
- // Send default page layout to browser process. |
- PageSizeMargins default_page_layout; |
- GetPageSizeAndMarginsInPoints(NULL, -1, settings.params, |
- &default_page_layout); |
- if (!old_print_pages_params_.get() || |
- !PageLayoutIsEqual(*old_print_pages_params_, settings)) { |
- Send(new PrintHostMsg_DidGetDefaultPageLayout(routing_id(), |
- default_page_layout)); |
- } |
- SetCustomMarginsIfSelected(job_settings, &settings); |
+ if (is_preview) { |
+ // Validate expected print preview settings. |
+ if (!job_settings.GetString(printing::kPreviewUIAddr, |
+ &(settings.params.preview_ui_addr)) || |
+ !job_settings.GetInteger(printing::kPreviewRequestID, |
+ &(settings.params.preview_request_id)) || |
+ !job_settings.GetBoolean(printing::kIsFirstRequest, |
+ &(settings.params.is_first_request))) { |
+ NOTREACHED(); |
+ return false; |
+ } |
- if (!job_settings.GetString(printing::kPreviewUIAddr, |
- &(settings.params.preview_ui_addr)) || |
- !job_settings.GetInteger(printing::kPreviewRequestID, |
- &(settings.params.preview_request_id)) || |
- !job_settings.GetBoolean(printing::kIsFirstRequest, |
- &(settings.params.is_first_request))) { |
- NOTREACHED(); |
- return false; |
+ // Margins: Send default page layout to browser process. |
+ PageSizeMargins default_page_layout; |
+ GetPageSizeAndMarginsInPoints(NULL, -1, settings.params, |
+ &default_page_layout); |
+ if (!old_print_pages_params_.get() || |
+ !PageLayoutIsEqual(*old_print_pages_params_, settings)) { |
+ Send(new PrintHostMsg_DidGetDefaultPageLayout(routing_id(), |
+ default_page_layout)); |
+ } |
+ SetCustomMarginsIfSelected(job_settings, &settings); |
+ |
+ // Header/Footer: Set |header_footer_info_|. |
+ if (settings.params.display_header_footer) { |
+ header_footer_info_.reset(new DictionaryValue()); |
+ header_footer_info_->SetString(printing::kSettingHeaderFooterDate, |
+ settings.params.date); |
+ header_footer_info_->SetString(printing::kSettingHeaderFooterURL, |
+ settings.params.url); |
+ header_footer_info_->SetString(printing::kSettingHeaderFooterTitle, |
+ settings.params.title); |
+ } |
} |
print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings)); |
- |
- if (print_pages_params_->params.display_header_footer) { |
- header_footer_info_.reset(new DictionaryValue()); |
- header_footer_info_->SetString(printing::kSettingHeaderFooterDate, |
- print_pages_params_->params.date); |
- header_footer_info_->SetString(printing::kSettingHeaderFooterURL, |
- print_pages_params_->params.url); |
- header_footer_info_->SetString(printing::kSettingHeaderFooterTitle, |
- print_pages_params_->params.title); |
- } |
- |
Send(new PrintHostMsg_DidGetDocumentCookie(routing_id(), |
settings.params.document_cookie)); |
return true; |