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

Unified Diff: content/browser/web_contents/web_contents_impl.h

Issue 297973002: Navigation transitions: Block first response until after transitions have run. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes from review. Created 6 years, 6 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/web_contents/web_contents_impl.h
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 8278efbefb179207529d871450e75c25602ab472..b35024a9d5909c20f2c1feedabfc8efd8730231d 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -328,6 +328,8 @@ class CONTENT_EXPORT WebContentsImpl
virtual void DidStartLoading(RenderFrameHost* render_frame_host,
bool to_different_document) OVERRIDE;
virtual void SwappedOut(RenderFrameHost* render_frame_host) OVERRIDE;
+ virtual void DidDeferAfterResponseStarted() OVERRIDE;
+ virtual bool WillHandleDeferAfterResponseStarted() OVERRIDE;
virtual void WorkerCrashed(RenderFrameHost* render_frame_host) OVERRIDE;
virtual void ShowContextMenu(RenderFrameHost* render_frame_host,
const ContextMenuParams& params) OVERRIDE;
@@ -625,6 +627,22 @@ class CONTENT_EXPORT WebContentsImpl
// currently focused frame.
void SelectRange(const gfx::Point& start, const gfx::Point& end);
+ // Notifies the TransitionRequestManager that the main frame navigation is
+ // a transition navigation.
+ void SetHasPendingTransitionRequest(bool has_pending_transition);
+
+ // Notifies the main frame that it can continue navigation (if it was deferred
+ // immediately at first response).
+ void ResumeResponseDeferredAtStart();
+
+ typedef base::Callback<void()> DidDeferCallback;
+
+ // Callback to be used when the WebContentsImpl handles a navigation
+ // transition.
+ void set_did_defer_callback_for_testing(const DidDeferCallback& callback) {
+ did_defer_callback_for_testing_ = callback;
shatch 2014/06/14 00:41:37 Wanted a way to get a callback for the browsertest
+ }
+
private:
friend class TestNavigationObserver;
friend class WebContentsAddedObserver;
@@ -1128,6 +1146,8 @@ class CONTENT_EXPORT WebContentsImpl
// Whether the last JavaScript dialog shown was suppressed. Used for testing.
bool last_dialog_suppressed_;
+ DidDeferCallback did_defer_callback_for_testing_;
+
scoped_ptr<GeolocationDispatcherHost> geolocation_dispatcher_host_;
DISALLOW_COPY_AND_ASSIGN(WebContentsImpl);
« no previous file with comments | « content/browser/transition_request_message_filter.cc ('k') | content/browser/web_contents/web_contents_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698