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

Side by Side 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: Addressing comments 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/print_web_view_helper.h" 5 #include "chrome/renderer/print_web_view_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 print_preview_context_.node())) { 312 print_preview_context_.node())) {
313 NOTREACHED(); 313 NOTREACHED();
314 return; 314 return;
315 } 315 }
316 316
317 if (!UpdatePrintSettings(settings)) { 317 if (!UpdatePrintSettings(settings)) {
318 DidFinishPrinting(FAIL_PREVIEW); 318 DidFinishPrinting(FAIL_PREVIEW);
319 return; 319 return;
320 } 320 }
321 321
322 if (print_pages_params_->params.preview_request_id != 0 && 322 if (!print_pages_params_->params.is_first_request &&
323 old_print_pages_params_.get() && 323 old_print_pages_params_.get() &&
324 PrintMsg_Print_Params_IsEqual(*old_print_pages_params_, 324 PrintMsg_Print_Params_IsEqual(*old_print_pages_params_,
325 *print_pages_params_)) { 325 *print_pages_params_)) {
326 PrintHostMsg_DidPreviewDocument_Params preview_params; 326 PrintHostMsg_DidPreviewDocument_Params preview_params;
327 preview_params.reuse_existing_data = true; 327 preview_params.reuse_existing_data = true;
328 preview_params.data_size = 0; 328 preview_params.data_size = 0;
329 preview_params.document_cookie = 329 preview_params.document_cookie =
330 print_pages_params_->params.document_cookie; 330 print_pages_params_->params.document_cookie;
331 preview_params.expected_pages_count = 331 preview_params.expected_pages_count =
332 print_preview_context_.total_page_count(); 332 print_preview_context_.total_page_count();
(...skipping 11 matching lines...) Expand all
344 print_pages_params_->params.supports_alpha_blend = true; 344 print_pages_params_->params.supports_alpha_blend = true;
345 if (!CreatePreviewDocument()) 345 if (!CreatePreviewDocument())
346 DidFinishPrinting(FAIL_PREVIEW); 346 DidFinishPrinting(FAIL_PREVIEW);
347 } 347 }
348 348
349 bool PrintWebViewHelper::CreatePreviewDocument() { 349 bool PrintWebViewHelper::CreatePreviewDocument() {
350 PrintMsg_Print_Params print_params = print_pages_params_->params; 350 PrintMsg_Print_Params print_params = print_pages_params_->params;
351 const std::vector<int>& pages = print_pages_params_->pages; 351 const std::vector<int>& pages = print_pages_params_->pages;
352 if (!print_preview_context_.CreatePreviewDocument(&print_params, pages)) 352 if (!print_preview_context_.CreatePreviewDocument(&print_params, pages))
353 return false; 353 return false;
354 int page_count = print_preview_context_.total_page_count(); 354 PrintHostMsg_DidGetPreviewPageCount_Params params;
355 bool is_modifiable = print_preview_context_.IsModifiable(); 355 params.page_count = print_preview_context_.total_page_count();
356 int document_cookie = print_pages_params_->params.document_cookie; 356 params.is_modifiable = print_preview_context_.IsModifiable();
357 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), document_cookie, 357 params.document_cookie = print_pages_params_->params.document_cookie;
358 page_count, is_modifiable)); 358 params.preview_request_id = print_pages_params_->params.preview_request_id;
359 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), params));
359 PreviewPageRendered(printing::INVALID_PAGE_INDEX, NULL); 360 PreviewPageRendered(printing::INVALID_PAGE_INDEX, NULL);
360 return true; 361 return true;
361 } 362 }
362 363
363 void PrintWebViewHelper::OnContinuePreview(int requested_preview_page_index) { 364 void PrintWebViewHelper::OnContinuePreview(int requested_preview_page_index) {
364 // Spurious message. We already finished/cancelled/aborted the print preview. 365 // Spurious message. We already finished/cancelled/aborted the print preview.
365 if (!print_preview_context_.IsBusy()) 366 if (!print_preview_context_.IsBusy())
366 return; 367 return;
367 int page_number; 368 int page_number;
368 #if defined(USE_SKIA) 369 #if defined(USE_SKIA)
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 767
767 Send(new PrintHostMsg_UpdatePrintSettings(routing_id(), 768 Send(new PrintHostMsg_UpdatePrintSettings(routing_id(),
768 print_pages_params_->params.document_cookie, job_settings, &settings)); 769 print_pages_params_->params.document_cookie, job_settings, &settings));
769 770
770 if (settings.params.dpi < kMinDpi || !settings.params.document_cookie) 771 if (settings.params.dpi < kMinDpi || !settings.params.document_cookie)
771 return false; 772 return false;
772 773
773 if (!UpdatePrintSettingsRequestId(job_settings, &(settings.params))) 774 if (!UpdatePrintSettingsRequestId(job_settings, &(settings.params)))
774 return false; 775 return false;
775 776
777 if (!job_settings.GetBoolean(printing::kIsFirstRequest,
778 &(settings.params.is_first_request))) {
779 NOTREACHED();
780 }
781
776 print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings)); 782 print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings));
777 Send(new PrintHostMsg_DidGetDocumentCookie(routing_id(), 783 Send(new PrintHostMsg_DidGetDocumentCookie(routing_id(),
778 settings.params.document_cookie)); 784 settings.params.document_cookie));
779 return true; 785 return true;
780 } 786 }
781 787
782 bool PrintWebViewHelper::GetPrintSettingsFromUser(WebKit::WebFrame* frame, 788 bool PrintWebViewHelper::GetPrintSettingsFromUser(WebKit::WebFrame* frame,
783 int expected_pages_count, 789 int expected_pages_count,
784 bool use_browser_overlays) { 790 bool use_browser_overlays) {
785 PrintHostMsg_ScriptedPrint_Params params; 791 PrintHostMsg_ScriptedPrint_Params params;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 buf_size = metafile->GetDataSize(); 930 buf_size = metafile->GetDataSize();
925 DCHECK_GT(buf_size, 0u); 931 DCHECK_GT(buf_size, 0u);
926 if (!CopyMetafileDataToSharedMem( 932 if (!CopyMetafileDataToSharedMem(
927 metafile, &(preview_page_params.metafile_data_handle))) { 933 metafile, &(preview_page_params.metafile_data_handle))) {
928 DidFinishPrinting(FAIL_PREVIEW); 934 DidFinishPrinting(FAIL_PREVIEW);
929 return; 935 return;
930 } 936 }
931 } 937 }
932 preview_page_params.data_size = buf_size; 938 preview_page_params.data_size = buf_size;
933 preview_page_params.page_number = page_number; 939 preview_page_params.page_number = page_number;
940 preview_page_params.preview_request_id =
941 print_pages_params_->params.preview_request_id;
934 Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params)); 942 Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params));
935 } 943 }
936 944
937 PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext() 945 PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext()
938 : frame_(NULL), 946 : frame_(NULL),
939 total_page_count_(0), 947 total_page_count_(0),
940 actual_page_count_(0), 948 actual_page_count_(0),
941 current_page_number_(0), 949 current_page_number_(0),
942 state_(UNINITIALIZED) { 950 state_(UNINITIALIZED) {
943 } 951 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 const gfx::Size& 1131 const gfx::Size&
1124 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { 1132 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const {
1125 return prep_frame_view_->GetPrintCanvasSize(); 1133 return prep_frame_view_->GetPrintCanvasSize();
1126 } 1134 }
1127 1135
1128 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1136 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1129 prep_frame_view_.reset(); 1137 prep_frame_view_.reset();
1130 metafile_.reset(); 1138 metafile_.reset();
1131 rendered_pages_.clear(); 1139 rendered_pages_.clear();
1132 } 1140 }
OLDNEW
« no previous file with comments | « chrome/renderer/mock_render_thread.cc ('k') | chrome/renderer/print_web_view_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698