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 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
695 PrintHostMsg_DidGetPreviewPageCount_Params params; | 695 PrintHostMsg_DidGetPreviewPageCount_Params params; |
696 params.page_count = print_preview_context_.total_page_count(); | 696 params.page_count = print_preview_context_.total_page_count(); |
697 params.is_modifiable = print_preview_context_.IsModifiable(); | 697 params.is_modifiable = print_preview_context_.IsModifiable(); |
698 params.document_cookie = print_pages_params_->params.document_cookie; | 698 params.document_cookie = print_pages_params_->params.document_cookie; |
699 params.preview_request_id = print_pages_params_->params.preview_request_id; | 699 params.preview_request_id = print_pages_params_->params.preview_request_id; |
700 params.clear_preview_data = print_preview_context_.generate_draft_pages(); | 700 params.clear_preview_data = print_preview_context_.generate_draft_pages(); |
701 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), params)); | 701 Send(new PrintHostMsg_DidGetPreviewPageCount(routing_id(), params)); |
702 if (CheckForCancel()) | 702 if (CheckForCancel()) |
703 return false; | 703 return false; |
704 | 704 |
705 int page_number; | 705 while (!print_preview_context_.IsFinalPageRendered()) { |
kmadhusu
2011/09/01 18:40:20
GetNextPageNumber() function needs to be called wh
| |
706 while ((page_number = print_preview_context_.GetNextPageNumber()) >= 0) { | 706 int page_number = print_preview_context_.GetNextPageNumber(); |
707 DCHECK(page_number >= 0); | |
707 if (!RenderPreviewPage(page_number)) | 708 if (!RenderPreviewPage(page_number)) |
708 return false; | 709 return false; |
710 | |
709 if (CheckForCancel()) | 711 if (CheckForCancel()) |
710 return false; | 712 return false; |
713 | |
714 // AllPagesRendered() will be called only once i.e., after rendering the | |
vandebo (ex-Chrome)
2011/09/01 18:53:56
I wouldn't include the second part of this comment
kmadhusu
2011/09/01 20:07:14
Done..
| |
715 // required pages. This code is here because if we are previewing a PDF | |
716 // file, we need to invoke PrepareFrameAndViewForPrint::FinishPrinting() | |
717 // before calling PreviewMetafile::FinishDocument(). | |
718 // | |
719 // This function call ordering is not required if we are previewing a | |
720 // normal html page. We can invoke PreviewMetafile::FinishDocument() as | |
721 // soon as the print ready doucment is available. | |
722 if (print_preview_context_.IsFinalPageRendered()) | |
723 print_preview_context_.AllPagesRendered(); | |
724 | |
711 if (print_preview_context_.IsLastPageOfPrintReadyMetafile()) { | 725 if (print_preview_context_.IsLastPageOfPrintReadyMetafile()) { |
vandebo (ex-Chrome)
2011/09/01 18:53:56
To help enforce the comment, you can add a DCHECK
kmadhusu
2011/09/01 20:07:14
Done.
| |
712 // Finished generating preview. Finalize the document. | |
713 if (!FinalizePrintReadyDocument()) | 726 if (!FinalizePrintReadyDocument()) |
714 return false; | 727 return false; |
715 } | 728 } |
716 } | 729 } |
717 print_preview_context_.AllPagesRendered(); | |
718 print_preview_context_.Finished(); | 730 print_preview_context_.Finished(); |
719 return true; | 731 return true; |
720 } | 732 } |
721 | 733 |
722 bool PrintWebViewHelper::FinalizePrintReadyDocument() { | 734 bool PrintWebViewHelper::FinalizePrintReadyDocument() { |
723 DCHECK(!is_print_ready_metafile_sent_); | 735 DCHECK(!is_print_ready_metafile_sent_); |
724 print_preview_context_.FinalizePrintReadyDocument(); | 736 print_preview_context_.FinalizePrintReadyDocument(); |
725 | 737 |
726 // Get the size of the resulting metafile. | 738 // Get the size of the resulting metafile. |
727 printing::PreviewMetafile* metafile = print_preview_context_.metafile(); | 739 printing::PreviewMetafile* metafile = print_preview_context_.metafile(); |
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1463 return false; | 1475 return false; |
1464 std::string mime(frame()->dataSource()->response().mimeType().utf8()); | 1476 std::string mime(frame()->dataSource()->response().mimeType().utf8()); |
1465 return mime != "application/pdf"; | 1477 return mime != "application/pdf"; |
1466 } | 1478 } |
1467 | 1479 |
1468 bool PrintWebViewHelper::PrintPreviewContext::IsLastPageOfPrintReadyMetafile() | 1480 bool PrintWebViewHelper::PrintPreviewContext::IsLastPageOfPrintReadyMetafile() |
1469 const { | 1481 const { |
1470 return current_page_index_ == print_ready_metafile_page_count_; | 1482 return current_page_index_ == print_ready_metafile_page_count_; |
1471 } | 1483 } |
1472 | 1484 |
1485 bool PrintWebViewHelper::PrintPreviewContext::IsFinalPageRendered() const { | |
1486 return (size_t)current_page_index_ == pages_to_render_.size(); | |
vandebo (ex-Chrome)
2011/09/01 18:53:56
static_cast<size_t>
kmadhusu
2011/09/01 20:07:14
Done.
| |
1487 } | |
1488 | |
1473 void PrintWebViewHelper::PrintPreviewContext::set_generate_draft_pages( | 1489 void PrintWebViewHelper::PrintPreviewContext::set_generate_draft_pages( |
1474 bool generate_draft_pages) { | 1490 bool generate_draft_pages) { |
1475 generate_draft_pages_ = generate_draft_pages; | 1491 generate_draft_pages_ = generate_draft_pages; |
1476 } | 1492 } |
1477 | 1493 |
1478 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { | 1494 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { |
1479 return frame_; | 1495 return frame_; |
1480 } | 1496 } |
1481 | 1497 |
1482 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { | 1498 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { |
(...skipping 22 matching lines...) Expand all Loading... | |
1505 const gfx::Size& | 1521 const gfx::Size& |
1506 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { | 1522 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { |
1507 return prep_frame_view_->GetPrintCanvasSize(); | 1523 return prep_frame_view_->GetPrintCanvasSize(); |
1508 } | 1524 } |
1509 | 1525 |
1510 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { | 1526 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { |
1511 prep_frame_view_.reset(); | 1527 prep_frame_view_.reset(); |
1512 metafile_.reset(); | 1528 metafile_.reset(); |
1513 pages_to_render_.clear(); | 1529 pages_to_render_.clear(); |
1514 } | 1530 } |
OLD | NEW |