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

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

Issue 7647010: Print preview page selection should not require a rerendering of draft pages. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed comment Created 9 years, 3 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 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 if (WebFrame* web_frame = web_view_->mainFrame()) 490 if (WebFrame* web_frame = web_view_->mainFrame())
491 web_frame->setScrollOffset(prev_scroll_offset_); 491 web_frame->setScrollOffset(prev_scroll_offset_);
492 } 492 }
493 } 493 }
494 494
495 PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view) 495 PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view)
496 : RenderViewObserver(render_view), 496 : RenderViewObserver(render_view),
497 RenderViewObserverTracker<PrintWebViewHelper>(render_view), 497 RenderViewObserverTracker<PrintWebViewHelper>(render_view),
498 print_web_view_(NULL), 498 print_web_view_(NULL),
499 is_preview_(switches::IsPrintPreviewEnabled()), 499 is_preview_(switches::IsPrintPreviewEnabled()),
500 is_print_ready_metafile_sent_(false),
500 user_cancelled_scripted_print_count_(0), 501 user_cancelled_scripted_print_count_(0),
501 notify_browser_of_print_failure_(true) { 502 notify_browser_of_print_failure_(true) {
502 } 503 }
503 504
504 PrintWebViewHelper::~PrintWebViewHelper() {} 505 PrintWebViewHelper::~PrintWebViewHelper() {}
505 506
506 // Prints |frame| which called window.print(). 507 // Prints |frame| which called window.print().
507 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) { 508 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) {
508 DCHECK(frame); 509 DCHECK(frame);
509 510
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 preview_params.reuse_existing_data = true; 650 preview_params.reuse_existing_data = true;
650 preview_params.data_size = 0; 651 preview_params.data_size = 0;
651 preview_params.document_cookie = 652 preview_params.document_cookie =
652 print_pages_params_->params.document_cookie; 653 print_pages_params_->params.document_cookie;
653 preview_params.expected_pages_count = 654 preview_params.expected_pages_count =
654 print_preview_context_.total_page_count(); 655 print_preview_context_.total_page_count();
655 preview_params.modifiable = print_preview_context_.IsModifiable(); 656 preview_params.modifiable = print_preview_context_.IsModifiable();
656 preview_params.preview_request_id = 657 preview_params.preview_request_id =
657 print_pages_params_->params.preview_request_id; 658 print_pages_params_->params.preview_request_id;
658 659
659 Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); 660 Send(new PrintHostMsg_MetafileReadyForPrinting(routing_id(),
661 preview_params));
660 return; 662 return;
661 } 663 }
662 // Always clear |old_print_pages_params_| before rendering the pages. 664 // Always clear |old_print_pages_params_| before rendering the pages.
663 old_print_pages_params_.reset(); 665 old_print_pages_params_.reset();
666 is_print_ready_metafile_sent_ = false;
664 667
665 // PDF printer device supports alpha blending. 668 // PDF printer device supports alpha blending.
666 print_pages_params_->params.supports_alpha_blend = true; 669 print_pages_params_->params.supports_alpha_blend = true;
670
671 bool generate_draft_pages = false;
672 if (!settings.GetBoolean(printing::kSettingGenerateDraftData,
673 &generate_draft_pages)) {
674 NOTREACHED();
675 }
676 print_preview_context_.set_generate_draft_pages(generate_draft_pages);
677
667 if (CreatePreviewDocument()) { 678 if (CreatePreviewDocument()) {
668 DidFinishPrinting(OK); 679 DidFinishPrinting(OK);
669 } else { 680 } else {
670 if (notify_browser_of_print_failure_) 681 if (notify_browser_of_print_failure_)
671 LOG(ERROR) << "CreatePreviewDocument failed"; 682 LOG(ERROR) << "CreatePreviewDocument failed";
672 DidFinishPrinting(FAIL_PREVIEW); 683 DidFinishPrinting(FAIL_PREVIEW);
673 } 684 }
674 } 685 }
675 686
676 bool PrintWebViewHelper::CreatePreviewDocument() { 687 bool PrintWebViewHelper::CreatePreviewDocument() {
677 PrintMsg_Print_Params print_params = print_pages_params_->params; 688 PrintMsg_Print_Params print_params = print_pages_params_->params;
678 const std::vector<int>& pages = print_pages_params_->pages; 689 const std::vector<int>& pages = print_pages_params_->pages;
679 if (!print_preview_context_.CreatePreviewDocument(&print_params, pages)) 690 if (!print_preview_context_.CreatePreviewDocument(&print_params, pages))
680 return false; 691 return false;
681 PrintHostMsg_DidGetPreviewPageCount_Params params; 692 PrintHostMsg_DidGetPreviewPageCount_Params params;
682 params.page_count = print_preview_context_.total_page_count(); 693 params.page_count = print_preview_context_.total_page_count();
683 params.is_modifiable = print_preview_context_.IsModifiable(); 694 params.is_modifiable = print_preview_context_.IsModifiable();
684 params.document_cookie = print_pages_params_->params.document_cookie; 695 params.document_cookie = print_pages_params_->params.document_cookie;
685 params.preview_request_id = print_pages_params_->params.preview_request_id; 696 params.preview_request_id = print_pages_params_->params.preview_request_id;
697 params.clear_preview_data = print_preview_context_.generate_draft_pages();
686 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), params)); 698 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), params));
687 if (CheckForCancel()) 699 if (CheckForCancel())
688 return false; 700 return false;
689 701
690 int page_number; 702 int page_number;
691 while ((page_number = print_preview_context_.GetNextPageNumber()) >= 0) { 703 while ((page_number = print_preview_context_.GetNextPageNumber()) >= 0) {
692 if (!RenderPreviewPage(page_number)) 704 if (!RenderPreviewPage(page_number))
693 return false; 705 return false;
694 if (CheckForCancel()) 706 if (CheckForCancel())
695 return false; 707 return false;
696 }; 708 if (print_preview_context_.IsLastPageOfPrintReadyMetafile()) {
697 709 // Finished generating preview. Finalize the document.
698 // Finished generating preview. Finalize the document. 710 if (!FinalizePrintReadyDocument())
699 if (!FinalizePreviewDocument()) 711 return false;
700 return false; 712 }
713 }
714 print_preview_context_.AllPagesRendered();
701 print_preview_context_.Finished(); 715 print_preview_context_.Finished();
702 return true; 716 return true;
703 } 717 }
704 718
705 bool PrintWebViewHelper::FinalizePreviewDocument() { 719 bool PrintWebViewHelper::FinalizePrintReadyDocument() {
706 print_preview_context_.FinalizePreviewDocument(); 720 DCHECK(!is_print_ready_metafile_sent_);
721 print_preview_context_.FinalizePrintReadyDocument();
707 722
708 // Get the size of the resulting metafile. 723 // Get the size of the resulting metafile.
709 printing::PreviewMetafile* metafile = print_preview_context_.metafile(); 724 printing::PreviewMetafile* metafile = print_preview_context_.metafile();
710 uint32 buf_size = metafile->GetDataSize(); 725 uint32 buf_size = metafile->GetDataSize();
711 DCHECK_GT(buf_size, 0u); 726 DCHECK_GT(buf_size, 0u);
712 727
713 PrintHostMsg_DidPreviewDocument_Params preview_params; 728 PrintHostMsg_DidPreviewDocument_Params preview_params;
714 preview_params.reuse_existing_data = false; 729 preview_params.reuse_existing_data = false;
715 preview_params.data_size = buf_size; 730 preview_params.data_size = buf_size;
716 preview_params.document_cookie = print_pages_params_->params.document_cookie; 731 preview_params.document_cookie = print_pages_params_->params.document_cookie;
717 preview_params.expected_pages_count = 732 preview_params.expected_pages_count =
718 print_preview_context_.total_page_count(); 733 print_preview_context_.total_page_count();
719 preview_params.modifiable = print_preview_context_.IsModifiable(); 734 preview_params.modifiable = print_preview_context_.IsModifiable();
720 preview_params.preview_request_id = 735 preview_params.preview_request_id =
721 print_pages_params_->params.preview_request_id; 736 print_pages_params_->params.preview_request_id;
722 737
723 // Ask the browser to create the shared memory for us. 738 // Ask the browser to create the shared memory for us.
724 if (!CopyMetafileDataToSharedMem(metafile, 739 if (!CopyMetafileDataToSharedMem(metafile,
725 &(preview_params.metafile_data_handle))) { 740 &(preview_params.metafile_data_handle))) {
726 LOG(ERROR) << "CopyMetafileDataToSharedMem failed"; 741 LOG(ERROR) << "CopyMetafileDataToSharedMem failed";
727 return false; 742 return false;
728 } 743 }
729 Send(new PrintHostMsg_PagesReadyForPreview(routing_id(), preview_params)); 744 is_print_ready_metafile_sent_ = true;
745
746 Send(new PrintHostMsg_MetafileReadyForPrinting(routing_id(), preview_params));
730 return true; 747 return true;
731 } 748 }
732 749
733 void PrintWebViewHelper::OnPrintingDone(bool success) { 750 void PrintWebViewHelper::OnPrintingDone(bool success) {
734 notify_browser_of_print_failure_ = false; 751 notify_browser_of_print_failure_ = false;
735 if (!success) 752 if (!success)
736 LOG(ERROR) << "Failure in OnPrintingDone"; 753 LOG(ERROR) << "Failure in OnPrintingDone";
737 DidFinishPrinting(success ? OK : FAIL_PRINT); 754 DidFinishPrinting(success ? OK : FAIL_PRINT);
738 } 755 }
739 756
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 if (cancel) 1264 if (cancel)
1248 notify_browser_of_print_failure_ = false; 1265 notify_browser_of_print_failure_ = false;
1249 return cancel; 1266 return cancel;
1250 } 1267 }
1251 1268
1252 bool PrintWebViewHelper::PreviewPageRendered(int page_number, 1269 bool PrintWebViewHelper::PreviewPageRendered(int page_number,
1253 printing::Metafile* metafile) { 1270 printing::Metafile* metafile) {
1254 DCHECK_GE(page_number, printing::FIRST_PAGE_INDEX); 1271 DCHECK_GE(page_number, printing::FIRST_PAGE_INDEX);
1255 1272
1256 // For non-modifiable files, |metafile| should be NULL, so do not bother 1273 // For non-modifiable files, |metafile| should be NULL, so do not bother
1257 // sending a message. 1274 // sending a message. If we don't generate draft metafiles, |metafile| is
1258 if (!print_preview_context_.IsModifiable()) { 1275 // NULL.
1276 if (!print_preview_context_.IsModifiable() ||
1277 !print_preview_context_.generate_draft_pages()) {
1259 DCHECK(!metafile); 1278 DCHECK(!metafile);
1260 return true; 1279 return true;
1261 } 1280 }
1262 1281
1263 if (!metafile) { 1282 if (!metafile) {
1264 NOTREACHED(); 1283 NOTREACHED();
1265 return false; 1284 return false;
1266 } 1285 }
1267 1286
1268 PrintHostMsg_DidPreviewPage_Params preview_page_params; 1287 PrintHostMsg_DidPreviewPage_Params preview_page_params;
(...skipping 10 matching lines...) Expand all
1279 preview_page_params.preview_request_id = 1298 preview_page_params.preview_request_id =
1280 print_pages_params_->params.preview_request_id; 1299 print_pages_params_->params.preview_request_id;
1281 1300
1282 Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params)); 1301 Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params));
1283 return true; 1302 return true;
1284 } 1303 }
1285 1304
1286 PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext() 1305 PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext()
1287 : frame_(NULL), 1306 : frame_(NULL),
1288 total_page_count_(0), 1307 total_page_count_(0),
1289 actual_page_count_(0),
1290 current_page_index_(0), 1308 current_page_index_(0),
1309 generate_draft_pages_(true),
1310 print_ready_metafile_page_count_(0),
1291 state_(UNINITIALIZED) { 1311 state_(UNINITIALIZED) {
1292 } 1312 }
1293 1313
1294 PrintWebViewHelper::PrintPreviewContext::~PrintPreviewContext() { 1314 PrintWebViewHelper::PrintPreviewContext::~PrintPreviewContext() {
1295 } 1315 }
1296 1316
1297 void PrintWebViewHelper::PrintPreviewContext::InitWithFrame( 1317 void PrintWebViewHelper::PrintPreviewContext::InitWithFrame(
1298 WebKit::WebFrame* web_frame) { 1318 WebKit::WebFrame* web_frame) {
1299 DCHECK(web_frame); 1319 DCHECK(web_frame);
1300 state_ = INITIALIZED; 1320 state_ = INITIALIZED;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 node())); 1354 node()));
1335 UpdatePrintableSizeInPrintParameters(frame_, node_.get(), 1355 UpdatePrintableSizeInPrintParameters(frame_, node_.get(),
1336 prep_frame_view_.get(), print_params); 1356 prep_frame_view_.get(), print_params);
1337 1357
1338 total_page_count_ = prep_frame_view_->GetExpectedPageCount(); 1358 total_page_count_ = prep_frame_view_->GetExpectedPageCount();
1339 if (total_page_count_ == 0) { 1359 if (total_page_count_ == 0) {
1340 LOG(ERROR) << "CreatePreviewDocument got 0 page count"; 1360 LOG(ERROR) << "CreatePreviewDocument got 0 page count";
1341 return false; 1361 return false;
1342 } 1362 }
1343 1363
1364 int selected_page_count = pages.size();
1344 current_page_index_ = 0; 1365 current_page_index_ = 0;
1345 if (pages.empty()) { 1366 print_ready_metafile_page_count_ = selected_page_count;
1346 actual_page_count_ = total_page_count_; 1367 pages_to_render_ = pages;
1347 for (int i = 0; i < actual_page_count_; ++i) 1368
1369 if (selected_page_count == 0) {
1370 print_ready_metafile_page_count_ = total_page_count_;
1371 // Render all pages.
1372 for (int i = 0; i < total_page_count_; i++)
Lei Zhang 2011/09/01 05:16:51 nit: ++i here and below.
kmadhusu 2011/09/01 20:21:16 will submit a new CL to address this.
1348 pages_to_render_.push_back(i); 1373 pages_to_render_.push_back(i);
1349 } else { 1374 } else if (generate_draft_pages_) {
1350 actual_page_count_ = pages.size(); 1375 int pages_index = 0;
Lei Zhang 2011/09/01 05:16:51 So if I understand this correctly, if the user ope
kmadhusu 2011/09/01 20:21:16 Yes. We generate 999 draft pages only if required.
1351 for (int i = 0; i < actual_page_count_; ++i) { 1376 for (int i = 0; i < total_page_count_; i++) {
1352 int page_number = pages[i]; 1377 if (pages_index < selected_page_count && i == pages[pages_index]) {
1353 if (page_number < printing::FIRST_PAGE_INDEX || 1378 pages_index++;
1354 page_number >= total_page_count_) { 1379 continue;
1355 LOG(ERROR) << "CreatePreviewDocument got invalid page count "
1356 << page_number << " at index " << i;
1357 return false;
1358 } 1380 }
1359 pages_to_render_.push_back(page_number); 1381 pages_to_render_.push_back(i);
1360 } 1382 }
1361 } 1383 }
1362 1384
1363 document_render_time_ = base::TimeDelta(); 1385 document_render_time_ = base::TimeDelta();
1364 begin_time_ = base::TimeTicks::Now(); 1386 begin_time_ = base::TimeTicks::Now();
1365 1387
1366 return true; 1388 return true;
1367 } 1389 }
1368 1390
1369 void PrintWebViewHelper::PrintPreviewContext::RenderedPreviewPage( 1391 void PrintWebViewHelper::PrintPreviewContext::RenderedPreviewPage(
1370 const base::TimeDelta& page_time) { 1392 const base::TimeDelta& page_time) {
1371 DCHECK_EQ(RENDERING, state_); 1393 DCHECK_EQ(RENDERING, state_);
1372 document_render_time_ += page_time; 1394 document_render_time_ += page_time;
1373 UMA_HISTOGRAM_TIMES("PrintPreview.RenderPDFPageTime", page_time); 1395 UMA_HISTOGRAM_TIMES("PrintPreview.RenderPDFPageTime", page_time);
1374 } 1396 }
1375 1397
1376 void PrintWebViewHelper::PrintPreviewContext::FinalizePreviewDocument() { 1398 void PrintWebViewHelper::PrintPreviewContext::AllPagesRendered() {
1377 DCHECK_EQ(RENDERING, state_); 1399 DCHECK_EQ(RENDERING, state_);
1378 state_ = DONE; 1400 state_ = DONE;
1401 prep_frame_view_->FinishPrinting();
1402 }
1403
1404 void PrintWebViewHelper::PrintPreviewContext::FinalizePrintReadyDocument() {
1405 if (state_ != DONE && state_ != RENDERING)
1406 NOTREACHED();
1379 1407
1380 base::TimeTicks begin_time = base::TimeTicks::Now(); 1408 base::TimeTicks begin_time = base::TimeTicks::Now();
1381
1382 prep_frame_view_->FinishPrinting();
1383 metafile_->FinishDocument(); 1409 metafile_->FinishDocument();
1384 1410
1385 if (actual_page_count_ <= 0) { 1411 if (print_ready_metafile_page_count_ <= 0) {
1386 NOTREACHED(); 1412 NOTREACHED();
1387 return; 1413 return;
1388 } 1414 }
1389 1415
1390 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderToPDFTime", 1416 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderToPDFTime",
1391 document_render_time_); 1417 document_render_time_);
1392 base::TimeDelta total_time = (base::TimeTicks::Now() - begin_time) + 1418 base::TimeDelta total_time = (base::TimeTicks::Now() - begin_time) +
1393 document_render_time_; 1419 document_render_time_;
1394 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTime", 1420 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTime",
1395 total_time); 1421 total_time);
1396 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTimeAvgPerPage", 1422 UMA_HISTOGRAM_MEDIUM_TIMES("PrintPreview.RenderAndGeneratePDFTimeAvgPerPage",
1397 total_time / actual_page_count_); 1423 total_time / pages_to_render_.size());
1398 } 1424 }
1399 1425
1400 void PrintWebViewHelper::PrintPreviewContext::Finished() { 1426 void PrintWebViewHelper::PrintPreviewContext::Finished() {
1401 DCHECK_EQ(DONE, state_); 1427 DCHECK_EQ(DONE, state_);
1402 ClearContext(); 1428 ClearContext();
1403 } 1429 }
1404 1430
1405 void PrintWebViewHelper::PrintPreviewContext::Failed() { 1431 void PrintWebViewHelper::PrintPreviewContext::Failed() {
1406 DCHECK(state_ == INITIALIZED || state_ == RENDERING); 1432 DCHECK(state_ == INITIALIZED || state_ == RENDERING);
1407 state_ = INITIALIZED; 1433 state_ = INITIALIZED;
1408 ClearContext(); 1434 ClearContext();
1409 } 1435 }
1410 1436
1411 int PrintWebViewHelper::PrintPreviewContext::GetNextPageNumber() { 1437 int PrintWebViewHelper::PrintPreviewContext::GetNextPageNumber() {
1412 DCHECK_EQ(RENDERING, state_); 1438 DCHECK_EQ(RENDERING, state_);
1413 if (current_page_index_ >= actual_page_count_) 1439 if ((size_t)(current_page_index_) == pages_to_render_.size())
1414 return -1; 1440 return -1;
1415 return pages_to_render_[current_page_index_++]; 1441 return pages_to_render_[current_page_index_++];
1416 } 1442 }
1417 1443
1418 bool PrintWebViewHelper::PrintPreviewContext::IsReadyToRender() const { 1444 bool PrintWebViewHelper::PrintPreviewContext::IsReadyToRender() const {
1419 return state_ != UNINITIALIZED; 1445 return state_ != UNINITIALIZED;
1420 } 1446 }
1421 1447
1422 bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const { 1448 bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const {
1423 // TODO(vandebo) I think this should only return false if the content is a 1449 // TODO(vandebo) I think this should only return false if the content is a
1424 // PDF, just because we are printing a particular node does not mean it's 1450 // PDF, just because we are printing a particular node does not mean it's
1425 // a PDF (right?), we should check the mime type of the node. 1451 // a PDF (right?), we should check the mime type of the node.
1426 if (node()) 1452 if (node())
1427 return false; 1453 return false;
1428 std::string mime(frame()->dataSource()->response().mimeType().utf8()); 1454 std::string mime(frame()->dataSource()->response().mimeType().utf8());
1429 return mime != "application/pdf"; 1455 return mime != "application/pdf";
1430 } 1456 }
1431 1457
1458 bool PrintWebViewHelper::PrintPreviewContext::IsLastPageOfPrintReadyMetafile()
1459 const {
1460 return current_page_index_ == print_ready_metafile_page_count_;
1461 }
1462
1463 void PrintWebViewHelper::PrintPreviewContext::set_generate_draft_pages(
1464 bool generate_draft_pages) {
1465 generate_draft_pages_ = generate_draft_pages;
1466 }
1467
1432 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { 1468 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const {
1433 return frame_; 1469 return frame_;
1434 } 1470 }
1435 1471
1436 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { 1472 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const {
1437 return node_.get(); 1473 return node_.get();
1438 } 1474 }
1439 1475
1440 int PrintWebViewHelper::PrintPreviewContext::total_page_count() const { 1476 int PrintWebViewHelper::PrintPreviewContext::total_page_count() const {
1441 DCHECK(IsReadyToRender()); 1477 DCHECK(IsReadyToRender());
1442 return total_page_count_; 1478 return total_page_count_;
1443 } 1479 }
1444 1480
1481 bool PrintWebViewHelper::PrintPreviewContext::generate_draft_pages() {
1482 return generate_draft_pages_;
1483 }
1484
1445 printing::PreviewMetafile* 1485 printing::PreviewMetafile*
1446 PrintWebViewHelper::PrintPreviewContext::metafile() const { 1486 PrintWebViewHelper::PrintPreviewContext::metafile() const {
1447 return metafile_.get(); 1487 return metafile_.get();
1448 } 1488 }
1449 1489
1450 const PrintMsg_Print_Params& 1490 const PrintMsg_Print_Params&
1451 PrintWebViewHelper::PrintPreviewContext::print_params() const { 1491 PrintWebViewHelper::PrintPreviewContext::print_params() const {
1452 return *print_params_; 1492 return *print_params_;
1453 } 1493 }
1454 1494
1455 const gfx::Size& 1495 const gfx::Size&
1456 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { 1496 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const {
1457 return prep_frame_view_->GetPrintCanvasSize(); 1497 return prep_frame_view_->GetPrintCanvasSize();
1458 } 1498 }
1459 1499
1460 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1500 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1461 prep_frame_view_.reset(); 1501 prep_frame_view_.reset();
1462 metafile_.reset(); 1502 metafile_.reset();
1463 pages_to_render_.clear(); 1503 pages_to_render_.clear();
1464 } 1504 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698