| 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 |