Index: chrome/renderer/render_view.cc |
=================================================================== |
--- chrome/renderer/render_view.cc (revision 74317) |
+++ chrome/renderer/render_view.cc (working copy) |
@@ -976,6 +976,8 @@ |
IPC_MESSAGE_HANDLER(ViewMsg_PrintPreview, OnPrintPreview) |
IPC_MESSAGE_HANDLER(ViewMsg_PrintNodeUnderContextMenu, |
OnPrintNodeUnderContextMenu) |
+ IPC_MESSAGE_HANDLER(ViewMsg_PrintForPrintPreview, |
+ OnPrintForPrintPreview) |
IPC_MESSAGE_HANDLER(ViewMsg_Navigate, OnNavigate) |
IPC_MESSAGE_HANDLER(ViewMsg_Stop, OnStop) |
IPC_MESSAGE_HANDLER(ViewMsg_ReloadFrame, OnReloadFrame) |
@@ -1180,6 +1182,23 @@ |
GetPrintWebViewHelper()->PrintNode(&context_menu_node, false, false); |
} |
+void RenderView::OnPrintForPrintPreview() { |
+ WebFrame* main_frame = webview() ? webview()->mainFrame() : NULL; |
+ if (!main_frame) |
+ return; |
+ |
+ WebDocument document = main_frame->document(); |
+ // <object> with id="pdf-viewer" is created in |
+ // chrome/browser/resources/print_preview.js |
+ WebElement element = document.getElementById("pdf-viewer"); |
+ if (element.isNull()) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ |
+ GetPrintWebViewHelper()->PrintNode(&element, false, false); |
+} |
+ |
void RenderView::CapturePageInfo(int load_id, bool preliminary_capture) { |
if (load_id != page_id_) |
return; // this capture call is no longer relevant due to navigation |