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

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

Issue 6479004: Print Preview: Hook up the print button to initiate a normal print operation.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: add a comment Created 9 years, 10 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
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/logging.h" 9 #include "base/logging.h"
10 #include "base/process_util.h" 10 #include "base/process_util.h"
(...skipping 14 matching lines...) Expand all
25 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" 25 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
26 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 26 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
27 #include "ui/base/l10n/l10n_util.h" 27 #include "ui/base/l10n/l10n_util.h"
28 #include "webkit/glue/webkit_glue.h" 28 #include "webkit/glue/webkit_glue.h"
29 29
30 using printing::ConvertPixelsToPoint; 30 using printing::ConvertPixelsToPoint;
31 using printing::ConvertPixelsToPointDouble; 31 using printing::ConvertPixelsToPointDouble;
32 using printing::ConvertUnit; 32 using printing::ConvertUnit;
33 using printing::ConvertUnitDouble; 33 using printing::ConvertUnitDouble;
34 using WebKit::WebConsoleMessage; 34 using WebKit::WebConsoleMessage;
35 using WebKit::WebDocument;
36 using WebKit::WebElement;
35 using WebKit::WebFrame; 37 using WebKit::WebFrame;
36 using WebKit::WebNode; 38 using WebKit::WebNode;
37 using WebKit::WebRect; 39 using WebKit::WebRect;
38 using WebKit::WebSize; 40 using WebKit::WebSize;
39 using WebKit::WebScreenInfo; 41 using WebKit::WebScreenInfo;
40 using WebKit::WebString; 42 using WebKit::WebString;
41 using WebKit::WebURLRequest; 43 using WebKit::WebURLRequest;
42 using WebKit::WebView; 44 using WebKit::WebView;
43 45
44 namespace { 46 namespace {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 116
115 void PrintWebViewHelper::PrintNode(WebNode* node, 117 void PrintWebViewHelper::PrintNode(WebNode* node,
116 bool script_initiated, 118 bool script_initiated,
117 bool is_preview) { 119 bool is_preview) {
118 Print(node->document().frame(), node, script_initiated, is_preview); 120 Print(node->document().frame(), node, script_initiated, is_preview);
119 } 121 }
120 122
121 bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) { 123 bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) {
122 bool handled = true; 124 bool handled = true;
123 IPC_BEGIN_MESSAGE_MAP(PrintWebViewHelper, message) 125 IPC_BEGIN_MESSAGE_MAP(PrintWebViewHelper, message)
126 IPC_MESSAGE_HANDLER(ViewMsg_PrintForPrintPreview,
127 OnPrintForPrintPreview)
124 IPC_MESSAGE_HANDLER(ViewMsg_PrintPages, OnPrintPages) 128 IPC_MESSAGE_HANDLER(ViewMsg_PrintPages, OnPrintPages)
125 IPC_MESSAGE_HANDLER(ViewMsg_PrintingDone, OnPrintingDone) 129 IPC_MESSAGE_HANDLER(ViewMsg_PrintingDone, OnPrintingDone)
126 IPC_MESSAGE_HANDLER(ViewMsg_PrintPreview, OnPrintPreview) 130 IPC_MESSAGE_HANDLER(ViewMsg_PrintPreview, OnPrintPreview)
127 IPC_MESSAGE_HANDLER(ViewMsg_PrintNodeUnderContextMenu, 131 IPC_MESSAGE_HANDLER(ViewMsg_PrintNodeUnderContextMenu,
128 OnPrintNodeUnderContextMenu) 132 OnPrintNodeUnderContextMenu)
129 IPC_MESSAGE_UNHANDLED(handled = false) 133 IPC_MESSAGE_UNHANDLED(handled = false)
130 IPC_END_MESSAGE_MAP() 134 IPC_END_MESSAGE_MAP()
131 return handled; 135 return handled;
132 } 136 }
133 137
138 void PrintWebViewHelper::OnPrintForPrintPreview() {
139 if (!render_view()->webview())
140 return;
141 WebFrame* main_frame = render_view()->webview()->mainFrame();
142 if (!main_frame)
143 return;
144
145 WebDocument document = main_frame->document();
146 // <object> with id="pdf-viewer" is created in
147 // chrome/browser/resources/print_preview.js
148 WebElement element = document.getElementById("pdf-viewer");
149 if (element.isNull()) {
150 NOTREACHED();
151 return;
152 }
153
154 PrintNode(&element, false, false);
155 }
156
134 void PrintWebViewHelper::OnPrint(bool is_preview) { 157 void PrintWebViewHelper::OnPrint(bool is_preview) {
135 DCHECK(render_view()->webview()); 158 DCHECK(render_view()->webview());
136 if (!render_view()->webview()) 159 if (!render_view()->webview())
137 return; 160 return;
138 161
139 // If the user has selected text in the currently focused frame we print 162 // If the user has selected text in the currently focused frame we print
140 // only that frame (this makes print selection work for multiple frames). 163 // only that frame (this makes print selection work for multiple frames).
141 if (render_view()->webview()->focusedFrame()->hasSelection()) 164 if (render_view()->webview()->focusedFrame()->hasSelection())
142 PrintFrame(render_view()->webview()->focusedFrame(), false, is_preview); 165 PrintFrame(render_view()->webview()->focusedFrame(), false, is_preview);
143 else 166 else
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), 598 shared_buf.GiveToProcess(base::GetCurrentProcessHandle(),
576 shared_mem_handle); 599 shared_mem_handle);
577 return true; 600 return true;
578 } 601 }
579 } 602 }
580 } 603 }
581 NOTREACHED(); 604 NOTREACHED();
582 return false; 605 return false;
583 } 606 }
584 #endif 607 #endif
OLDNEW
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698