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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
170 if (WebFrame* web_frame = web_view_->mainFrame()) | 170 if (WebFrame* web_frame = web_view_->mainFrame()) |
171 web_frame->setScrollOffset(prev_scroll_offset_); | 171 web_frame->setScrollOffset(prev_scroll_offset_); |
172 } | 172 } |
173 } | 173 } |
174 | 174 |
175 PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view) | 175 PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view) |
176 : RenderViewObserver(render_view), | 176 : RenderViewObserver(render_view), |
177 RenderViewObserverTracker<PrintWebViewHelper>(render_view), | 177 RenderViewObserverTracker<PrintWebViewHelper>(render_view), |
178 print_web_view_(NULL), | 178 print_web_view_(NULL), |
179 is_preview_(switches::IsPrintPreviewEnabled()), | 179 is_preview_(switches::IsPrintPreviewEnabled()), |
180 is_complete_metafile_already_sent_(false), | |
180 user_cancelled_scripted_print_count_(0), | 181 user_cancelled_scripted_print_count_(0), |
181 notify_browser_of_print_failure_(true) { | 182 notify_browser_of_print_failure_(true) { |
182 } | 183 } |
183 | 184 |
184 PrintWebViewHelper::~PrintWebViewHelper() {} | 185 PrintWebViewHelper::~PrintWebViewHelper() {} |
185 | 186 |
186 // Prints |frame| which called window.print(). | 187 // Prints |frame| which called window.print(). |
187 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) { | 188 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) { |
188 DCHECK(frame); | 189 DCHECK(frame); |
189 | 190 |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
332 print_preview_context_.total_page_count(); | 333 print_preview_context_.total_page_count(); |
333 preview_params.modifiable = print_preview_context_.IsModifiable(); | 334 preview_params.modifiable = print_preview_context_.IsModifiable(); |
334 preview_params.preview_request_id = | 335 preview_params.preview_request_id = |
335 print_pages_params_->params.preview_request_id; | 336 print_pages_params_->params.preview_request_id; |
336 | 337 |
337 Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); | 338 Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); |
338 return; | 339 return; |
339 } | 340 } |
340 // Always clear |old_print_pages_params_| before rendering the pages. | 341 // Always clear |old_print_pages_params_| before rendering the pages. |
341 old_print_pages_params_.reset(); | 342 old_print_pages_params_.reset(); |
343 is_complete_metafile_already_sent_ = false; | |
342 | 344 |
343 // PDF printer device supports alpha blending. | 345 // PDF printer device supports alpha blending. |
344 print_pages_params_->params.supports_alpha_blend = true; | 346 print_pages_params_->params.supports_alpha_blend = true; |
347 | |
348 bool generate_draft_pages; | |
349 if (!settings.GetBoolean(printing::kSettingGenerateDraftData, | |
350 &generate_draft_pages)) { | |
351 NOTREACHED(); | |
352 } | |
353 print_preview_context_.set_generate_draft_pages(generate_draft_pages); | |
vandebo (ex-Chrome)
2011/08/04 21:45:02
If you like, you could make set_generate_draft_pag
kmadhusu
2011/08/05 22:55:22
I prefer the existing code.
| |
354 | |
345 if (!CreatePreviewDocument()) | 355 if (!CreatePreviewDocument()) |
346 DidFinishPrinting(FAIL_PREVIEW); | 356 DidFinishPrinting(FAIL_PREVIEW); |
347 } | 357 } |
348 | 358 |
349 bool PrintWebViewHelper::CreatePreviewDocument() { | 359 bool PrintWebViewHelper::CreatePreviewDocument() { |
350 PrintMsg_Print_Params print_params = print_pages_params_->params; | 360 PrintMsg_Print_Params print_params = print_pages_params_->params; |
351 const std::vector<int>& pages = print_pages_params_->pages; | 361 const std::vector<int>& pages = print_pages_params_->pages; |
352 if (!print_preview_context_.CreatePreviewDocument(&print_params, pages)) | 362 if (!print_preview_context_.CreatePreviewDocument(&print_params, pages)) |
353 return false; | 363 return false; |
354 int page_count = print_preview_context_.total_page_count(); | 364 int page_count = print_preview_context_.total_page_count(); |
355 bool is_modifiable = print_preview_context_.IsModifiable(); | 365 bool is_modifiable = print_preview_context_.IsModifiable(); |
356 int document_cookie = print_pages_params_->params.document_cookie; | 366 int document_cookie = print_pages_params_->params.document_cookie; |
357 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), document_cookie, | 367 Send(new PrintHostMsg_DidGetPreviewPageCount( |
358 page_count, is_modifiable)); | 368 routing_id(), |
vandebo (ex-Chrome)
2011/08/04 21:45:02
nit: 4 space indent.
kmadhusu
2011/08/05 22:55:22
Done.
| |
369 document_cookie, | |
370 page_count, | |
371 is_modifiable, | |
372 print_preview_context_.generate_draft_pages())); | |
359 PreviewPageRendered(printing::INVALID_PAGE_INDEX, NULL); | 373 PreviewPageRendered(printing::INVALID_PAGE_INDEX, NULL); |
360 return true; | 374 return true; |
361 } | 375 } |
362 | 376 |
363 void PrintWebViewHelper::OnContinuePreview(int requested_preview_page_index) { | 377 void PrintWebViewHelper::OnContinuePreview() { |
364 // Spurious message. We already finished/cancelled/aborted the print preview. | 378 // Spurious message. We already finished/cancelled/aborted the print preview. |
365 if (!print_preview_context_.IsBusy()) | 379 if (!print_preview_context_.IsBusy()) |
366 return; | 380 return; |
367 int page_number; | 381 int page_number = print_preview_context_.GetNextPageNumber(); |
368 #if defined(USE_SKIA) | |
369 if (requested_preview_page_index >= printing::FIRST_PAGE_INDEX) { | |
370 page_number = requested_preview_page_index; | |
371 } else | |
372 #endif | |
373 { | |
374 page_number = print_preview_context_.GetNextPageNumber(); | |
375 } | |
376 | |
377 if (page_number >= printing::FIRST_PAGE_INDEX) { | 382 if (page_number >= printing::FIRST_PAGE_INDEX) { |
378 // Continue generating the print preview. | 383 // Continue generating the print preview. |
379 RenderPreviewPage(page_number); | 384 RenderPreviewPage(page_number); |
385 if (!print_preview_context_.IsLastPageOfCompleteMetafile()) | |
vandebo (ex-Chrome)
2011/08/04 21:45:02
This is still a bit confusing/interwoven... I sug
kmadhusu
2011/08/05 22:55:22
Done.
| |
386 return; | |
387 } | |
388 | |
389 if (is_complete_metafile_already_sent_ && | |
390 page_number == printing::INVALID_PAGE_INDEX) { | |
391 print_preview_context_.PreviewPagesRendered(); | |
392 print_preview_context_.Finished(); | |
393 DidFinishPrinting(OK); | |
380 return; | 394 return; |
381 } | 395 } |
382 | 396 |
383 // Finished generating preview. Finalize the document. | 397 // Finished generating preview. Finalize the document. |
384 if (FinalizePreviewDocument()) { | 398 if (!FinalizePreviewDocument()) { |
385 print_preview_context_.Finished(); | |
386 DidFinishPrinting(OK); | |
387 } else { | |
388 DidFinishPrinting(FAIL_PREVIEW); | 399 DidFinishPrinting(FAIL_PREVIEW); |
389 } | 400 } |
390 } | 401 } |
391 | 402 |
392 void PrintWebViewHelper::OnAbortPreview() { | 403 void PrintWebViewHelper::OnAbortPreview() { |
393 DidFinishPrinting(ABORT_PREVIEW); | 404 DidFinishPrinting(ABORT_PREVIEW); |
394 return; | 405 return; |
395 } | 406 } |
396 | 407 |
397 bool PrintWebViewHelper::FinalizePreviewDocument() { | 408 bool PrintWebViewHelper::FinalizePreviewDocument() { |
409 DCHECK(!is_complete_metafile_already_sent_); | |
398 print_preview_context_.FinalizePreviewDocument(); | 410 print_preview_context_.FinalizePreviewDocument(); |
399 | 411 |
400 // Get the size of the resulting metafile. | 412 // Get the size of the resulting metafile. |
401 printing::Metafile* metafile = print_preview_context_.metafile(); | 413 printing::Metafile* metafile = print_preview_context_.metafile(); |
402 uint32 buf_size = metafile->GetDataSize(); | 414 uint32 buf_size = metafile->GetDataSize(); |
403 DCHECK_GT(buf_size, 0u); | 415 DCHECK_GT(buf_size, 0u); |
404 | 416 |
405 PrintHostMsg_DidPreviewDocument_Params preview_params; | 417 PrintHostMsg_DidPreviewDocument_Params preview_params; |
406 preview_params.reuse_existing_data = false; | 418 preview_params.reuse_existing_data = false; |
407 preview_params.data_size = buf_size; | 419 preview_params.data_size = buf_size; |
408 preview_params.document_cookie = print_pages_params_->params.document_cookie; | 420 preview_params.document_cookie = print_pages_params_->params.document_cookie; |
409 preview_params.expected_pages_count = | 421 preview_params.expected_pages_count = |
410 print_preview_context_.total_page_count(); | 422 print_preview_context_.total_page_count(); |
411 preview_params.modifiable = print_preview_context_.IsModifiable(); | 423 preview_params.modifiable = print_preview_context_.IsModifiable(); |
412 preview_params.preview_request_id = | 424 preview_params.preview_request_id = |
413 print_pages_params_->params.preview_request_id; | 425 print_pages_params_->params.preview_request_id; |
414 | 426 |
415 // Ask the browser to create the shared memory for us. | 427 // Ask the browser to create the shared memory for us. |
416 if (!CopyMetafileDataToSharedMem(metafile, | 428 if (!CopyMetafileDataToSharedMem(metafile, |
417 &(preview_params.metafile_data_handle))) { | 429 &(preview_params.metafile_data_handle))) { |
418 return false; | 430 return false; |
419 } | 431 } |
432 is_complete_metafile_already_sent_ = true; | |
433 | |
420 Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); | 434 Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); |
421 return true; | 435 return true; |
422 } | 436 } |
423 | 437 |
424 void PrintWebViewHelper::OnPrintingDone(bool success) { | 438 void PrintWebViewHelper::OnPrintingDone(bool success) { |
425 notify_browser_of_print_failure_ = false; | 439 notify_browser_of_print_failure_ = false; |
426 DidFinishPrinting(success ? OK : FAIL_PRINT); | 440 DidFinishPrinting(success ? OK : FAIL_PRINT); |
427 } | 441 } |
428 | 442 |
429 void PrintWebViewHelper::OnPrintNodeUnderContextMenu() { | 443 void PrintWebViewHelper::OnPrintNodeUnderContextMenu() { |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
930 } | 944 } |
931 } | 945 } |
932 preview_page_params.data_size = buf_size; | 946 preview_page_params.data_size = buf_size; |
933 preview_page_params.page_number = page_number; | 947 preview_page_params.page_number = page_number; |
934 Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params)); | 948 Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params)); |
935 } | 949 } |
936 | 950 |
937 PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext() | 951 PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext() |
938 : frame_(NULL), | 952 : frame_(NULL), |
939 total_page_count_(0), | 953 total_page_count_(0), |
940 actual_page_count_(0), | 954 render_page_list_index_(-1), |
941 current_page_number_(0), | 955 generate_draft_pages_(true), |
956 complete_metafile_page_count_(0), | |
942 state_(UNINITIALIZED) { | 957 state_(UNINITIALIZED) { |
943 } | 958 } |
944 | 959 |
945 PrintWebViewHelper::PrintPreviewContext::~PrintPreviewContext() { | 960 PrintWebViewHelper::PrintPreviewContext::~PrintPreviewContext() { |
946 } | 961 } |
947 | 962 |
948 void PrintWebViewHelper::PrintPreviewContext::InitWithFrame( | 963 void PrintWebViewHelper::PrintPreviewContext::InitWithFrame( |
949 WebKit::WebFrame* web_frame) { | 964 WebKit::WebFrame* web_frame) { |
950 DCHECK(web_frame); | 965 DCHECK(web_frame); |
951 if (IsReadyToRender()) | 966 if (IsReadyToRender()) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
985 // Need to make sure old object gets destroyed first. | 1000 // Need to make sure old object gets destroyed first. |
986 prep_frame_view_.reset(new PrepareFrameAndViewForPrint(*print_params, frame(), | 1001 prep_frame_view_.reset(new PrepareFrameAndViewForPrint(*print_params, frame(), |
987 node())); | 1002 node())); |
988 UpdatePrintableSizeInPrintParameters(frame_, node_.get(), | 1003 UpdatePrintableSizeInPrintParameters(frame_, node_.get(), |
989 prep_frame_view_.get(), print_params); | 1004 prep_frame_view_.get(), print_params); |
990 | 1005 |
991 total_page_count_ = prep_frame_view_->GetExpectedPageCount(); | 1006 total_page_count_ = prep_frame_view_->GetExpectedPageCount(); |
992 if (total_page_count_ == 0) | 1007 if (total_page_count_ == 0) |
993 return false; | 1008 return false; |
994 | 1009 |
995 current_page_number_ = 0; | 1010 int selected_page_count = pages.size(); |
996 if (pages.empty()) { | 1011 render_page_list_index_ = -1; |
997 actual_page_count_ = total_page_count_; | 1012 complete_metafile_page_count_ = pages.empty() ? total_page_count_ : |
998 rendered_pages_ = std::vector<PreviewPageInfo>(total_page_count_, | 1013 selected_page_count; |
999 std::make_pair(false, -1)); | 1014 if (selected_page_count == 0) { |
1015 // When |pages| is empty, we always generate all draft pages. | |
vandebo (ex-Chrome)
2011/08/04 21:45:02
I was hoping for a bit more here... "And render_p
kmadhusu
2011/08/05 22:55:22
Done.
| |
1016 DCHECK(generate_draft_pages_); | |
1000 } else { | 1017 } else { |
1001 actual_page_count_ = pages.size(); | 1018 render_page_list_ = pages; |
vandebo (ex-Chrome)
2011/08/04 21:45:02
If you like, this can be done unconditionally - ei
kmadhusu
2011/08/05 22:55:22
Done.
| |
1002 rendered_pages_ = std::vector<PreviewPageInfo>(total_page_count_, | 1019 } |
1003 std::make_pair(true, -1)); | 1020 |
1004 for (int i = 0; i < actual_page_count_; ++i) { | 1021 if (generate_draft_pages_) { |
1005 int page_number = pages[i]; | 1022 int index = 0; |
vandebo (ex-Chrome)
2011/08/04 21:45:02
nit: pages_index ?
kmadhusu
2011/08/05 22:55:22
Done.
| |
1006 if (page_number < printing::FIRST_PAGE_INDEX || | 1023 for (int i = 0; i < total_page_count_; i++) { |
1007 page_number >= total_page_count_) { | 1024 if (index < selected_page_count && i == pages[index]) { |
1008 return false; | 1025 index++; |
1026 continue; | |
1009 } | 1027 } |
1010 rendered_pages_[page_number].first = false; | 1028 render_page_list_.push_back(i); |
1011 rendered_pages_[page_number].second = i; | |
1012 } | 1029 } |
1013 } | 1030 } |
1014 | 1031 |
1015 document_render_time_ = base::TimeDelta(); | 1032 document_render_time_ = base::TimeDelta(); |
1016 begin_time_ = base::TimeTicks::Now(); | 1033 begin_time_ = base::TimeTicks::Now(); |
1017 | 1034 |
1018 return true; | 1035 return true; |
1019 } | 1036 } |
1020 | 1037 |
1021 void PrintWebViewHelper::PrintPreviewContext::RenderedPreviewPage( | 1038 void PrintWebViewHelper::PrintPreviewContext::RenderedPreviewPage( |
1022 const base::TimeDelta& page_time) { | 1039 const base::TimeDelta& page_time) { |
1023 DCHECK_EQ(RENDERING, state_); | 1040 DCHECK_EQ(RENDERING, state_); |
1024 document_render_time_ += page_time; | 1041 document_render_time_ += page_time; |
1025 UMA_HISTOGRAM_TIMES("PrintPreview.RenderPDFPageTime", page_time); | 1042 UMA_HISTOGRAM_TIMES("PrintPreview.RenderPDFPageTime", page_time); |
1026 } | 1043 } |
1027 | 1044 |
1045 void PrintWebViewHelper::PrintPreviewContext::PreviewPagesRendered() { | |
1046 DCHECK_EQ(RENDERING, state_); | |
1047 state_ = DONE; | |
1048 prep_frame_view_->FinishPrinting(); | |
1049 } | |
1050 | |
1028 void PrintWebViewHelper::PrintPreviewContext::FinalizePreviewDocument() { | 1051 void PrintWebViewHelper::PrintPreviewContext::FinalizePreviewDocument() { |
1029 DCHECK_EQ(RENDERING, state_); | 1052 DCHECK_EQ(RENDERING, state_); |
1030 state_ = DONE; | 1053 if ((size_t)(render_page_list_index_ + 1) == render_page_list_.size()) |
1054 PreviewPagesRendered(); | |
vandebo (ex-Chrome)
2011/08/04 21:45:02
I think the reordering suggestion I made in OnCont
kmadhusu
2011/08/05 22:55:22
Removed.
| |
1031 | 1055 |
1032 base::TimeTicks begin_time = base::TimeTicks::Now(); | 1056 base::TimeTicks begin_time = base::TimeTicks::Now(); |
1033 | |
1034 prep_frame_view_->FinishPrinting(); | |
1035 metafile_->FinishDocument(); | 1057 metafile_->FinishDocument(); |
1036 | 1058 |
1037 if (actual_page_count_ <= 0) { | 1059 if (complete_metafile_page_count_ <= 0) { |
1038 NOTREACHED(); | 1060 NOTREACHED(); |
1039 return; | 1061 return; |
1040 } | 1062 } |
1041 | 1063 |
1042 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderToPDFTime", | 1064 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderToPDFTime", |
1043 document_render_time_); | 1065 document_render_time_); |
1044 base::TimeDelta total_time = (base::TimeTicks::Now() - begin_time) + | 1066 base::TimeDelta total_time = (base::TimeTicks::Now() - begin_time) + |
1045 document_render_time_; | 1067 document_render_time_; |
1046 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTime", | 1068 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTime", |
1047 total_time); | 1069 total_time); |
1048 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTimeAvgPerPage", | 1070 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTimeAvgPerPage", |
1049 total_time / actual_page_count_); | 1071 total_time / render_page_list_.size()); |
1050 } | 1072 } |
1051 | 1073 |
1052 void PrintWebViewHelper::PrintPreviewContext::Finished() { | 1074 void PrintWebViewHelper::PrintPreviewContext::Finished() { |
1053 DCHECK_EQ(DONE, state_); | 1075 DCHECK_EQ(DONE, state_); |
1054 ClearContext(); | 1076 ClearContext(); |
1055 } | 1077 } |
1056 | 1078 |
1057 void PrintWebViewHelper::PrintPreviewContext::Abort() { | 1079 void PrintWebViewHelper::PrintPreviewContext::Abort() { |
1058 state_ = UNINITIALIZED; | 1080 state_ = UNINITIALIZED; |
1059 ClearContext(); | 1081 ClearContext(); |
1060 frame_ = NULL; | 1082 frame_ = NULL; |
1061 node_.reset(); | 1083 node_.reset(); |
1062 } | 1084 } |
1063 | 1085 |
1064 int PrintWebViewHelper::PrintPreviewContext::GetNextPageNumber() { | 1086 int PrintWebViewHelper::PrintPreviewContext::GetNextPageNumber() { |
1065 DCHECK_EQ(RENDERING, state_); | 1087 DCHECK_EQ(RENDERING, state_); |
1066 for (int i = 0; i < total_page_count_; i++) { | 1088 if ((size_t)(render_page_list_index_ + 1) >= render_page_list_.size()) |
1067 if (!rendered_pages_[current_page_number_].first) | |
1068 break; | |
1069 current_page_number_ = (current_page_number_ + 1) % total_page_count_; | |
1070 } | |
1071 if (rendered_pages_[current_page_number_].first) | |
1072 return printing::INVALID_PAGE_INDEX; | 1089 return printing::INVALID_PAGE_INDEX; |
1073 rendered_pages_[current_page_number_].first = true; | 1090 render_page_list_index_++; |
1074 return current_page_number_; | 1091 return render_page_list_[render_page_list_index_]; |
1075 } | 1092 } |
1076 | 1093 |
1077 bool PrintWebViewHelper::PrintPreviewContext::IsReadyToRender() const { | 1094 bool PrintWebViewHelper::PrintPreviewContext::IsReadyToRender() const { |
1078 return state_ != UNINITIALIZED; | 1095 return state_ != UNINITIALIZED; |
1079 } | 1096 } |
1080 | 1097 |
1081 bool PrintWebViewHelper::PrintPreviewContext::IsBusy() const { | 1098 bool PrintWebViewHelper::PrintPreviewContext::IsBusy() const { |
1082 return state_ == INITIALIZED || state_ == RENDERING; | 1099 return state_ == INITIALIZED || state_ == RENDERING; |
1083 } | 1100 } |
1084 | 1101 |
1085 bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const { | 1102 bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const { |
1086 // TODO(vandebo) I think this should only return false if the content is a | 1103 // TODO(vandebo) I think this should only return false if the content is a |
1087 // PDF, just because we are printing a particular node does not mean it's | 1104 // PDF, just because we are printing a particular node does not mean it's |
1088 // a PDF (right?), we should check the mime type of the node. | 1105 // a PDF (right?), we should check the mime type of the node. |
1089 if (node()) | 1106 if (node()) |
1090 return false; | 1107 return false; |
1091 std::string mime(frame()->dataSource()->response().mimeType().utf8()); | 1108 std::string mime(frame()->dataSource()->response().mimeType().utf8()); |
1092 return mime != "application/pdf"; | 1109 return mime != "application/pdf"; |
1093 } | 1110 } |
1094 | 1111 |
1112 bool PrintWebViewHelper::PrintPreviewContext::IsLastPageOfCompleteMetafile() | |
1113 const { | |
1114 return render_page_list_index_ == complete_metafile_page_count_ - 1; | |
1115 } | |
1116 | |
1117 void PrintWebViewHelper::PrintPreviewContext::set_generate_draft_pages( | |
1118 bool generate_draft_pages) { | |
1119 generate_draft_pages_ = generate_draft_pages; | |
1120 } | |
1121 | |
1095 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { | 1122 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { |
1096 return frame_; | 1123 return frame_; |
1097 } | 1124 } |
1098 | 1125 |
1099 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { | 1126 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { |
1100 return node_.get(); | 1127 return node_.get(); |
1101 } | 1128 } |
1102 | 1129 |
1103 int PrintWebViewHelper::PrintPreviewContext::total_page_count() const { | 1130 int PrintWebViewHelper::PrintPreviewContext::total_page_count() const { |
1104 return total_page_count_; | 1131 return total_page_count_; |
1105 } | 1132 } |
1106 | 1133 |
1134 bool PrintWebViewHelper::PrintPreviewContext::generate_draft_pages() { | |
1135 return generate_draft_pages_; | |
1136 } | |
1137 | |
1107 printing::Metafile* PrintWebViewHelper::PrintPreviewContext::metafile() const { | 1138 printing::Metafile* PrintWebViewHelper::PrintPreviewContext::metafile() const { |
1108 return metafile_.get(); | 1139 return metafile_.get(); |
1109 } | 1140 } |
1110 | 1141 |
1111 const PrintMsg_Print_Params& | 1142 const PrintMsg_Print_Params& |
1112 PrintWebViewHelper::PrintPreviewContext::print_params() const { | 1143 PrintWebViewHelper::PrintPreviewContext::print_params() const { |
1113 return *print_params_; | 1144 return *print_params_; |
1114 } | 1145 } |
1115 | 1146 |
1116 const gfx::Size& | 1147 const gfx::Size& |
1117 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { | 1148 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { |
1118 return prep_frame_view_->GetPrintCanvasSize(); | 1149 return prep_frame_view_->GetPrintCanvasSize(); |
1119 } | 1150 } |
1120 | 1151 |
1121 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { | 1152 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { |
1122 prep_frame_view_.reset(); | 1153 prep_frame_view_.reset(); |
1123 metafile_.reset(); | 1154 metafile_.reset(); |
1124 rendered_pages_.clear(); | 1155 render_page_list_.clear(); |
1125 } | 1156 } |
OLD | NEW |