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

Unified Diff: chrome/renderer/print_web_view_helper.cc

Issue 7720015: Print Preview: Fix printing from print preview. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698