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

Unified Diff: content/public/browser/web_contents_observer.h

Issue 1350673003: Remove WebContentsObserver::DidCommitNavigation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 3 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
« no previous file with comments | « content/public/browser/navigation_handle.h ('k') | content/test/web_contents_observer_sanity_checker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/public/browser/web_contents_observer.h
diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h
index 6a2b1acdd7976fa13a5855cae2faa574cabb1530..c4fc6bfab09f1bec85254aee6bb3a71660043333 100644
--- a/content/public/browser/web_contents_observer.h
+++ b/content/public/browser/web_contents_observer.h
@@ -122,8 +122,8 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener,
// Called when a navigation started in the WebContents. |navigation_handle|
// is unique to a specific navigation. The same |navigation_handle| will be
// provided on subsequent calls to
- // DidRedirect/Commit/FinishNavigation/ReadyToCommitNavigation related to
- // this navigation.
+ // DidRedirect/FinishNavigation/ReadyToCommitNavigation related to this
+ // navigation.
//
// Note that this is fired by navigations in any frame of the WebContents,
// not just the main frame.
@@ -141,22 +141,69 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener,
virtual void DidRedirectNavigation(NavigationHandle* navigation_handle) {}
// PlzNavigate
- // Called when the navigation is ready to be committed in a renderer. This is
- // the first point in time where a RenderFrameHost is associated with the
- // navigation. Observers that want to initialize any renderer side
- // structures/state before the RenderFrame is navigated, should use this
- // method as opposed to DidCommitNavigation, which is after the fact.
+ // Called when the navigation is ready to be committed in a renderer. Most
+ // observers should use DidFinishNavigation instead, which happens right
+ // after the navigation commits. This method is for observers that want to
+ // initialize renderer-side state just before the RenderFrame commits the
+ // navigation.
+ //
+ // This is the first point in time where a RenderFrameHost is associated with
+ // the navigation.
virtual void ReadyToCommitNavigation(NavigationHandle* navigation_handle) {}
- // Called when a navigation was committed.
- virtual void DidCommitNavigation(NavigationHandle* navigation_handle) {}
-
- // Called when a navigation stopped in the WebContents. This happens when a
- // navigation is either aborted, replaced by a new one, or the document load
- // finishes. Note that |navigation_handle| will be destroyed at the end of
- // this call, so do not keep a reference to it afterward.
+ // Called when a navigation finished in the WebContents. This happens when a
+ // navigation is committed, aborted or replaced by a new one. To know if the
+ // navigation has committed, use NavigationHandle::HasCommited; use
+ // NavigationHandle::IsErrorPage to know if the navigation resulted in an
+ // error page.
+ //
+ // If this is called because the navigation committed, then the document load
+ // will still be ongoing in the RenderFrameHost returned by
+ // |navigation_handle|. Use the document loads events such as DidStopLoading
+ // and related methods to listen for continued events from this
+ // RenderFrameHost.
+ //
+ // Note that |navigation_handle| will be destroyed at the end of this call,
+ // so do not keep a reference to it afterward.
virtual void DidFinishNavigation(NavigationHandle* navigation_handle) {}
+ // Document load events ------------------------------------------------------
+
+ // These two methods correspond to the points in time when the spinner of the
+ // tab starts and stops spinning.
+ virtual void DidStartLoading() {}
+ virtual void DidStopLoading() {}
+
+ // This method is invoked once the window.document object of the main frame
+ // was created.
+ virtual void DocumentAvailableInMainFrame() {}
+
+ // This method is invoked once the onload handler of the main frame has
+ // completed.
+ virtual void DocumentOnLoadCompletedInMainFrame() {}
+
+ // This method is invoked when the document in the given frame finished
+ // loading. At this point, scripts marked as defer were executed, and
+ // content scripts marked "document_end" get injected into the frame.
+ virtual void DocumentLoadedInFrame(RenderFrameHost* render_frame_host) {}
+
+ // This method is invoked when the navigation is done, i.e. the spinner of
+ // the tab will stop spinning, and the onload event was dispatched.
+ //
+ // If the WebContents is displaying replacement content, e.g. network error
+ // pages, DidFinishLoad is invoked for frames that were not sending
+ // navigational events before. It is safe to ignore these events.
+ virtual void DidFinishLoad(RenderFrameHost* render_frame_host,
+ const GURL& validated_url) {}
+
+ // This method is like DidFinishLoad, but when the load failed or was
+ // cancelled, e.g. window.stop() is invoked.
+ virtual void DidFailLoad(RenderFrameHost* render_frame_host,
+ const GURL& validated_url,
+ int error_code,
+ const base::string16& error_description,
+ bool was_ignored_by_handler) {}
+
// ---------------------------------------------------------------------------
// This method is invoked after the WebContents decides which RenderFrameHost
@@ -233,36 +280,6 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener,
SecurityStyle security_style,
const SecurityStyleExplanations& security_style_explanations) {}
- // This method is invoked once the window.document object of the main frame
- // was created.
- virtual void DocumentAvailableInMainFrame() {}
-
- // This method is invoked once the onload handler of the main frame has
- // completed.
- virtual void DocumentOnLoadCompletedInMainFrame() {}
-
- // This method is invoked when the document in the given frame finished
- // loading. At this point, scripts marked as defer were executed, and
- // content scripts marked "document_end" get injected into the frame.
- virtual void DocumentLoadedInFrame(RenderFrameHost* render_frame_host) {}
-
- // This method is invoked when the navigation is done, i.e. the spinner of
- // the tab will stop spinning, and the onload event was dispatched.
- //
- // If the WebContents is displaying replacement content, e.g. network error
- // pages, DidFinishLoad is invoked for frames that were not sending
- // navigational events before. It is safe to ignore these events.
- virtual void DidFinishLoad(RenderFrameHost* render_frame_host,
- const GURL& validated_url) {}
-
- // This method is like DidFinishLoad, but when the load failed or was
- // cancelled, e.g. window.stop() is invoked.
- virtual void DidFailLoad(RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- int error_code,
- const base::string16& error_description,
- bool was_ignored_by_handler) {}
-
// This method is invoked when content was loaded from an in-memory cache.
virtual void DidLoadResourceFromMemoryCache(
const LoadFromMemoryCacheDetails& details) {}
@@ -300,11 +317,6 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener,
// paint after a non-empty layout.
virtual void DidFirstVisuallyNonEmptyPaint() {}
- // These two methods correspond to the points in time when the spinner of the
- // tab starts and stops spinning.
- virtual void DidStartLoading() {}
- virtual void DidStopLoading() {}
-
// When WebContents::Stop() is called, the WebContents stops loading and then
// invokes this method. If there are ongoing navigations, their respective
// failure methods will also be invoked.
« no previous file with comments | « content/public/browser/navigation_handle.h ('k') | content/test/web_contents_observer_sanity_checker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698