Index: chrome/browser/printing/print_view_manager.h |
diff --git a/chrome/browser/printing/print_view_manager.h b/chrome/browser/printing/print_view_manager.h |
index 89cbc741a665b41c3b090159113a7e333711890f..7c6ddf2b397a8ecf48cd257b816b9926ccb51790 100644 |
--- a/chrome/browser/printing/print_view_manager.h |
+++ b/chrome/browser/printing/print_view_manager.h |
@@ -11,6 +11,7 @@ |
#include "printing/features/features.h" |
namespace content { |
+class RenderFrameHost; |
class RenderProcessHost; |
} |
@@ -31,14 +32,14 @@ class PrintViewManager : public PrintViewManagerBase, |
// Same as PrintNow(), but for the case where a user press "ctrl+shift+p" to |
// show the native system dialog. This can happen from both initiator and |
// preview dialog. |
- bool BasicPrint(); |
+ bool BasicPrint(content::RenderFrameHost* rfh); |
#endif // ENABLE_BASIC_PRINTING |
// Initiate print preview of the current document by first notifying the |
// renderer. Since this happens asynchronous, the print preview dialog |
// creation will not be completed on the return of this function. Returns |
// false if print preview is impossible at the moment. |
- bool PrintPreviewNow(bool selection_only); |
+ bool PrintPreviewNow(content::RenderFrameHost* rfh, bool has_selection); |
// Notify PrintViewManager that print preview is starting in the renderer for |
// a particular WebNode. |
@@ -49,14 +50,12 @@ class PrintViewManager : public PrintViewManagerBase, |
void PrintPreviewDone(); |
// content::WebContentsObserver implementation. |
- bool OnMessageReceived(const IPC::Message& message) override; |
- |
- // content::WebContentsObserver implementation. |
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override; |
+ void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override; |
+ bool OnMessageReceived(const IPC::Message& message, |
+ content::RenderFrameHost* render_frame_host) override; |
- // content::WebContentsObserver implementation. |
- // Terminates or cancels the print job if one was pending. |
- void RenderProcessGone(base::TerminationStatus status) override; |
+ content::RenderFrameHost* print_preview_rfh() { return print_preview_rfh_; } |
private: |
explicit PrintViewManager(content::WebContents* web_contents); |
@@ -69,9 +68,11 @@ class PrintViewManager : public PrintViewManagerBase, |
}; |
// IPC Message handlers. |
- void OnDidShowPrintDialog(); |
- void OnSetupScriptedPrintPreview(IPC::Message* reply_msg); |
- void OnShowScriptedPrintPreview(bool source_is_modifiable); |
+ void OnDidShowPrintDialog(content::RenderFrameHost* rfh); |
+ void OnSetupScriptedPrintPreview(content::RenderFrameHost* rfh, |
+ IPC::Message* reply_msg); |
+ void OnShowScriptedPrintPreview(content::RenderFrameHost* rfh, |
+ bool source_is_modifiable); |
void OnScriptedPrintPreviewReply(IPC::Message* reply_msg); |
base::Closure on_print_dialog_shown_callback_; |
@@ -79,6 +80,10 @@ class PrintViewManager : public PrintViewManagerBase, |
// Current state of print preview for this view. |
PrintPreviewState print_preview_state_; |
+ // The current RFH that is print previewing. It should be a nullptr when |
+ // |print_preview_state_| is NOT_PREVIEWING. |
+ content::RenderFrameHost* print_preview_rfh_; |
+ |
// Keeps track of the pending callback during scripted print preview. |
content::RenderProcessHost* scripted_print_preview_rph_; |