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

Side by Side Diff: chrome/renderer/print_web_view_helper.cc

Issue 7544018: Print preview page selection should not require a rerendering of draft pages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' 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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698