OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/printing/print_web_view_helper.h" | 5 #include "chrome/renderer/printing/print_web_view_helper.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 | 827 |
828 if (!IsScriptInitiatedPrintAllowed(frame, user_initiated)) | 828 if (!IsScriptInitiatedPrintAllowed(frame, user_initiated)) |
829 return; | 829 return; |
830 print_preview_context_.InitWithFrame(frame); | 830 print_preview_context_.InitWithFrame(frame); |
831 RequestPrintPreview(PRINT_PREVIEW_SCRIPTED); | 831 RequestPrintPreview(PRINT_PREVIEW_SCRIPTED); |
832 } | 832 } |
833 | 833 |
834 bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) { | 834 bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) { |
835 bool handled = true; | 835 bool handled = true; |
836 IPC_BEGIN_MESSAGE_MAP(PrintWebViewHelper, message) | 836 IPC_BEGIN_MESSAGE_MAP(PrintWebViewHelper, message) |
837 #if !defined(OS_WIN) | |
838 IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages) | 837 IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages) |
839 IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog) | 838 IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog) |
840 #endif // !OS_WIN | |
841 IPC_MESSAGE_HANDLER(PrintMsg_InitiatePrintPreview, OnInitiatePrintPreview) | 839 IPC_MESSAGE_HANDLER(PrintMsg_InitiatePrintPreview, OnInitiatePrintPreview) |
842 IPC_MESSAGE_HANDLER(PrintMsg_PrintPreview, OnPrintPreview) | 840 IPC_MESSAGE_HANDLER(PrintMsg_PrintPreview, OnPrintPreview) |
843 IPC_MESSAGE_HANDLER(PrintMsg_PrintForPrintPreview, OnPrintForPrintPreview) | 841 IPC_MESSAGE_HANDLER(PrintMsg_PrintForPrintPreview, OnPrintForPrintPreview) |
844 IPC_MESSAGE_HANDLER(PrintMsg_PrintingDone, OnPrintingDone) | 842 IPC_MESSAGE_HANDLER(PrintMsg_PrintingDone, OnPrintingDone) |
845 IPC_MESSAGE_HANDLER(PrintMsg_SetScriptedPrintingBlocked, | 843 IPC_MESSAGE_HANDLER(PrintMsg_SetScriptedPrintingBlocked, |
846 SetScriptedPrintBlocked) | 844 SetScriptedPrintBlocked) |
847 IPC_MESSAGE_UNHANDLED(handled = false) | 845 IPC_MESSAGE_UNHANDLED(handled = false) |
848 IPC_END_MESSAGE_MAP() | 846 IPC_END_MESSAGE_MAP() |
849 return handled; | 847 return handled; |
850 } | 848 } |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 // If the user has selected text in the currently focused frame we print | 925 // If the user has selected text in the currently focused frame we print |
928 // only that frame (this makes print selection work for multiple frames). | 926 // only that frame (this makes print selection work for multiple frames). |
929 blink::WebLocalFrame* focusedFrame = | 927 blink::WebLocalFrame* focusedFrame = |
930 webView->focusedFrame()->toWebLocalFrame(); | 928 webView->focusedFrame()->toWebLocalFrame(); |
931 *frame = focusedFrame->hasSelection() | 929 *frame = focusedFrame->hasSelection() |
932 ? focusedFrame | 930 ? focusedFrame |
933 : webView->mainFrame()->toWebLocalFrame(); | 931 : webView->mainFrame()->toWebLocalFrame(); |
934 return true; | 932 return true; |
935 } | 933 } |
936 | 934 |
937 #if !defined(OS_WIN) | |
938 void PrintWebViewHelper::OnPrintPages() { | 935 void PrintWebViewHelper::OnPrintPages() { |
939 blink::WebLocalFrame* frame; | 936 blink::WebLocalFrame* frame; |
940 if (GetPrintFrame(&frame)) | 937 if (GetPrintFrame(&frame)) |
941 Print(frame, blink::WebNode()); | 938 Print(frame, blink::WebNode()); |
942 } | 939 } |
943 | 940 |
944 void PrintWebViewHelper::OnPrintForSystemDialog() { | 941 void PrintWebViewHelper::OnPrintForSystemDialog() { |
945 blink::WebLocalFrame* frame = print_preview_context_.source_frame(); | 942 blink::WebLocalFrame* frame = print_preview_context_.source_frame(); |
946 if (!frame) { | 943 if (!frame) { |
947 NOTREACHED(); | 944 NOTREACHED(); |
948 return; | 945 return; |
949 } | 946 } |
| 947 |
950 Print(frame, print_preview_context_.source_node()); | 948 Print(frame, print_preview_context_.source_node()); |
951 } | 949 } |
952 #endif // !OS_WIN | |
953 | 950 |
954 void PrintWebViewHelper::GetPageSizeAndContentAreaFromPageLayout( | 951 void PrintWebViewHelper::GetPageSizeAndContentAreaFromPageLayout( |
955 const PageSizeMargins& page_layout_in_points, | 952 const PageSizeMargins& page_layout_in_points, |
956 gfx::Size* page_size, | 953 gfx::Size* page_size, |
957 gfx::Rect* content_area) { | 954 gfx::Rect* content_area) { |
958 *page_size = gfx::Size( | 955 *page_size = gfx::Size( |
959 page_layout_in_points.content_width + | 956 page_layout_in_points.content_width + |
960 page_layout_in_points.margin_right + | 957 page_layout_in_points.margin_right + |
961 page_layout_in_points.margin_left, | 958 page_layout_in_points.margin_left, |
962 page_layout_in_points.content_height + | 959 page_layout_in_points.content_height + |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1219 print_node_in_progress_ = true; | 1216 print_node_in_progress_ = true; |
1220 | 1217 |
1221 // Make a copy of the node, in case RenderView::OnContextMenuClosed resets | 1218 // Make a copy of the node, in case RenderView::OnContextMenuClosed resets |
1222 // its |context_menu_node_|. | 1219 // its |context_menu_node_|. |
1223 print_preview_context_.InitWithNode(node); | 1220 print_preview_context_.InitWithNode(node); |
1224 RequestPrintPreview(PRINT_PREVIEW_USER_INITIATED_CONTEXT_NODE); | 1221 RequestPrintPreview(PRINT_PREVIEW_USER_INITIATED_CONTEXT_NODE); |
1225 | 1222 |
1226 print_node_in_progress_ = false; | 1223 print_node_in_progress_ = false; |
1227 } | 1224 } |
1228 | 1225 |
1229 #if !defined(OS_WIN) | |
1230 void PrintWebViewHelper::Print(blink::WebLocalFrame* frame, | 1226 void PrintWebViewHelper::Print(blink::WebLocalFrame* frame, |
1231 const blink::WebNode& node) { | 1227 const blink::WebNode& node) { |
1232 // If still not finished with earlier print request simply ignore. | 1228 // If still not finished with earlier print request simply ignore. |
1233 if (prep_frame_view_) | 1229 if (prep_frame_view_) |
1234 return; | 1230 return; |
1235 | 1231 |
1236 FrameReference frame_ref(frame); | 1232 FrameReference frame_ref(frame); |
1237 | 1233 |
1238 int expected_page_count = 0; | 1234 int expected_page_count = 0; |
1239 if (!CalculateNumberOfPages(frame, node, &expected_page_count)) { | 1235 if (!CalculateNumberOfPages(frame, node, &expected_page_count)) { |
(...skipping 13 matching lines...) Expand all Loading... |
1253 DidFinishPrinting(OK); // Release resources and fail silently. | 1249 DidFinishPrinting(OK); // Release resources and fail silently. |
1254 return; | 1250 return; |
1255 } | 1251 } |
1256 | 1252 |
1257 // Render Pages for printing. | 1253 // Render Pages for printing. |
1258 if (!RenderPagesForPrint(frame_ref.GetFrame(), node)) { | 1254 if (!RenderPagesForPrint(frame_ref.GetFrame(), node)) { |
1259 LOG(ERROR) << "RenderPagesForPrint failed"; | 1255 LOG(ERROR) << "RenderPagesForPrint failed"; |
1260 DidFinishPrinting(FAIL_PRINT); | 1256 DidFinishPrinting(FAIL_PRINT); |
1261 } | 1257 } |
1262 } | 1258 } |
1263 #endif // !OS_WIN | |
1264 | 1259 |
1265 void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) { | 1260 void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) { |
1266 switch (result) { | 1261 switch (result) { |
1267 case OK: | 1262 case OK: |
1268 break; | 1263 break; |
1269 | 1264 |
1270 case FAIL_PRINT_INIT: | 1265 case FAIL_PRINT_INIT: |
1271 DCHECK(!notify_browser_of_print_failure_); | 1266 DCHECK(!notify_browser_of_print_failure_); |
1272 break; | 1267 break; |
1273 | 1268 |
(...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1964 } | 1959 } |
1965 | 1960 |
1966 void PrintWebViewHelper::SetPrintPagesParams( | 1961 void PrintWebViewHelper::SetPrintPagesParams( |
1967 const PrintMsg_PrintPages_Params& settings) { | 1962 const PrintMsg_PrintPages_Params& settings) { |
1968 print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings)); | 1963 print_pages_params_.reset(new PrintMsg_PrintPages_Params(settings)); |
1969 Send(new PrintHostMsg_DidGetDocumentCookie(routing_id(), | 1964 Send(new PrintHostMsg_DidGetDocumentCookie(routing_id(), |
1970 settings.params.document_cookie)); | 1965 settings.params.document_cookie)); |
1971 } | 1966 } |
1972 | 1967 |
1973 } // namespace printing | 1968 } // namespace printing |
OLD | NEW |