Index: content/browser/frame_host/render_frame_host_impl.h |
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h |
index ae2bfccdee8ab421771f1e479b43f6be583a0a0c..fd4505bed45df5077206dbfb11bfc0b37f17be93 100644 |
--- a/content/browser/frame_host/render_frame_host_impl.h |
+++ b/content/browser/frame_host/render_frame_host_impl.h |
@@ -431,6 +431,10 @@ class CONTENT_EXPORT RenderFrameHostImpl |
// frame is the main frame. |
bool ShouldDispatchBeforeUnload(); |
+ // Returns true if the frame or any of its descendents have an onunload |
+ // handler. |
+ bool ShouldDispatchUnload(); |
nasko
2017/03/29 23:31:26
Since there is no dispatching of unload handler ha
jam
2017/03/30 14:53:22
Done.
|
+ |
// Update the frame's opener in the renderer process in response to the |
// opener being modified (e.g., with window.open or being set to null) in |
// another renderer process. |
@@ -763,6 +767,8 @@ class CONTENT_EXPORT RenderFrameHostImpl |
base::string16 text, |
base::string16 html); |
void OnToggleFullscreen(bool enter_fullscreen); |
+ void OnBeforeUnloadHandlersPresent(bool present); |
+ void OnUnloadHandlersPresent(bool present); |
void OnDidStartLoading(bool to_different_document); |
void OnDidStopLoading(); |
void OnDidChangeLoadProgress(double load_progress); |
@@ -994,6 +1000,10 @@ class CONTENT_EXPORT RenderFrameHostImpl |
// When the last BeforeUnload message was sent. |
base::TimeTicks send_before_unload_start_time_; |
+ // Used to track whether the frame has onbeforeunload and onunload handlers |
+ bool has_beforeunload_handlers_; |
+ bool has_unload_handlers_; |
+ |
// Set to true when there is a pending FrameMsg_BeforeUnload message. This |
// ensures we don't spam the renderer with multiple beforeunload requests. |
// When either this value or IsWaitingForUnloadACK is true, the value of |