OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |