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

Unified Diff: content/browser/frame_host/render_frame_host_impl.h

Issue 2783723002: Keep track in the browser of which frames have onunload and onbeforeunload handlers. (Closed)
Patch Set: fix content_browsertests with plznavigate and also remove now unnecessary unloadcontroller change Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698