| 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 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 Send(new PrintHostMsg_DidGetPrintedPagesCount(routing_id(), | 575 Send(new PrintHostMsg_DidGetPrintedPagesCount(routing_id(), |
| 576 print_params.document_cookie, | 576 print_params.document_cookie, |
| 577 page_count)); | 577 page_count)); |
| 578 | 578 |
| 579 const gfx::Size& canvas_size = prepare->GetPrintCanvasSize(); | 579 const gfx::Size& canvas_size = prepare->GetPrintCanvasSize(); |
| 580 PrintMsg_PrintPage_Params page_params; | 580 PrintMsg_PrintPage_Params page_params; |
| 581 page_params.params = print_params; | 581 page_params.params = print_params; |
| 582 if (params.pages.empty()) { | 582 if (params.pages.empty()) { |
| 583 for (int i = 0; i < page_count; ++i) { | 583 for (int i = 0; i < page_count; ++i) { |
| 584 page_params.page_number = i; | 584 page_params.page_number = i; |
| 585 page_params.page_slot = i; | |
| 586 PrintPageInternal(page_params, canvas_size, frame); | 585 PrintPageInternal(page_params, canvas_size, frame); |
| 587 } | 586 } |
| 588 } else { | 587 } else { |
| 589 for (size_t i = 0; i < params.pages.size(); ++i) { | 588 for (size_t i = 0; i < params.pages.size(); ++i) { |
| 590 if (params.pages[i] >= page_count) | 589 if (params.pages[i] >= page_count) |
| 591 break; | 590 break; |
| 592 page_params.page_number = params.pages[i]; | 591 page_params.page_number = params.pages[i]; |
| 593 page_params.page_slot = i; | |
| 594 PrintPageInternal(page_params, canvas_size, frame); | 592 PrintPageInternal(page_params, canvas_size, frame); |
| 595 } | 593 } |
| 596 } | 594 } |
| 597 return true; | 595 return true; |
| 598 } | 596 } |
| 599 #endif // OS_MACOSX || OS_WIN | 597 #endif // OS_MACOSX || OS_WIN |
| 600 | 598 |
| 601 void PrintWebViewHelper::didStopLoading() { | 599 void PrintWebViewHelper::didStopLoading() { |
| 602 PrintMsg_PrintPages_Params* params = print_pages_params_.get(); | 600 PrintMsg_PrintPages_Params* params = print_pages_params_.get(); |
| 603 DCHECK(params != NULL); | 601 DCHECK(params != NULL); |
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1087 bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const { | 1085 bool PrintWebViewHelper::PrintPreviewContext::IsModifiable() const { |
| 1088 // TODO(vandebo) I think this should only return false if the content is a | 1086 // TODO(vandebo) I think this should only return false if the content is a |
| 1089 // PDF, just because we are printing a particular node does not mean it's | 1087 // PDF, just because we are printing a particular node does not mean it's |
| 1090 // a PDF (right?), we should check the mime type of the node. | 1088 // a PDF (right?), we should check the mime type of the node. |
| 1091 if (node()) | 1089 if (node()) |
| 1092 return false; | 1090 return false; |
| 1093 std::string mime(frame()->dataSource()->response().mimeType().utf8()); | 1091 std::string mime(frame()->dataSource()->response().mimeType().utf8()); |
| 1094 return mime != "application/pdf"; | 1092 return mime != "application/pdf"; |
| 1095 } | 1093 } |
| 1096 | 1094 |
| 1097 int PrintWebViewHelper::PrintPreviewContext::GetPageSlotForPage( | |
| 1098 int page_number) const { | |
| 1099 int page_slot = rendered_pages_[page_number].second; | |
| 1100 return page_slot == -1 ? page_number : page_slot; | |
| 1101 } | |
| 1102 | |
| 1103 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { | 1095 WebKit::WebFrame* PrintWebViewHelper::PrintPreviewContext::frame() const { |
| 1104 return frame_; | 1096 return frame_; |
| 1105 } | 1097 } |
| 1106 | 1098 |
| 1107 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { | 1099 WebKit::WebNode* PrintWebViewHelper::PrintPreviewContext::node() const { |
| 1108 return node_.get(); | 1100 return node_.get(); |
| 1109 } | 1101 } |
| 1110 | 1102 |
| 1111 int PrintWebViewHelper::PrintPreviewContext::total_page_count() const { | 1103 int PrintWebViewHelper::PrintPreviewContext::total_page_count() const { |
| 1112 return total_page_count_; | 1104 return total_page_count_; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1124 const gfx::Size& | 1116 const gfx::Size& |
| 1125 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { | 1117 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { |
| 1126 return prep_frame_view_->GetPrintCanvasSize(); | 1118 return prep_frame_view_->GetPrintCanvasSize(); |
| 1127 } | 1119 } |
| 1128 | 1120 |
| 1129 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { | 1121 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { |
| 1130 prep_frame_view_.reset(); | 1122 prep_frame_view_.reset(); |
| 1131 metafile_.reset(); | 1123 metafile_.reset(); |
| 1132 rendered_pages_.clear(); | 1124 rendered_pages_.clear(); |
| 1133 } | 1125 } |
| OLD | NEW |