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

Unified Diff: chrome/renderer/print_web_view_helper.cc

Issue 7550022: Print Preview: Fixing behavior of event listeners. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding new struct PrintHostMsg_DidGetPreviewPageCount_Params. 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
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 a2c9889e0970b31f5d07868efa8c23c7a68794ab..081fa7df4b2fe97e3f638cb1fcc03427e8c206c1 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -319,7 +319,7 @@ void PrintWebViewHelper::OnPrintPreview(const DictionaryValue& settings) {
return;
}
- if (print_pages_params_->params.preview_request_id != 0 &&
+ if (!print_pages_params_->params.is_first_request &&
old_print_pages_params_.get() &&
PrintMsg_Print_Params_IsEqual(*old_print_pages_params_,
*print_pages_params_)) {
@@ -351,11 +351,12 @@ bool PrintWebViewHelper::CreatePreviewDocument() {
const std::vector<int>& pages = print_pages_params_->pages;
if (!print_preview_context_.CreatePreviewDocument(&print_params, pages))
return false;
- int page_count = print_preview_context_.total_page_count();
- bool is_modifiable = print_preview_context_.IsModifiable();
- int document_cookie = print_pages_params_->params.document_cookie;
- Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), document_cookie,
- page_count, is_modifiable));
+ PrintHostMsg_DidGetPreviewPageCount_Params params;
+ params.page_count = print_preview_context_.total_page_count();
+ params.is_modifiable = print_preview_context_.IsModifiable();
+ params.document_cookie = print_pages_params_->params.document_cookie;
+ params.preview_request_id = print_pages_params_->params.preview_request_id;
+ Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), params));
PreviewPageRendered(printing::INVALID_PAGE_INDEX, NULL);
return true;
}
@@ -773,6 +774,11 @@ bool PrintWebViewHelper::UpdatePrintSettings(
if (!UpdatePrintSettingsRequestId(job_settings, &(settings.params)))
return false;
+ if (!job_settings.GetBoolean(printing::kIsFirstRequest,
+ &(settings.params.is_first_request))) {
+ return false;
+ }
+
print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings));
Send(new PrintHostMsg_DidGetDocumentCookie(routing_id(),
settings.params.document_cookie));
@@ -931,6 +937,8 @@ void PrintWebViewHelper::PreviewPageRendered(int page_number,
}
preview_page_params.data_size = buf_size;
preview_page_params.page_number = page_number;
+ preview_page_params.preview_request_id =
+ print_pages_params_->params.preview_request_id;
Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params));
}

Powered by Google App Engine
This is Rietveld 408576698