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

Unified Diff: chrome/browser/prerender/prerender_contents.h

Issue 11316311: Make PrerenderHandle an observer of PrerenderContents. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: prerender tracker test fix Created 8 years 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: chrome/browser/prerender/prerender_contents.h
diff --git a/chrome/browser/prerender/prerender_contents.h b/chrome/browser/prerender/prerender_contents.h
index d171ef47d32494ea203ee5338ea8fb729e3a4917..242ddc4852bc0b614869e22e0bec809c37c8beae 100644
--- a/chrome/browser/prerender/prerender_contents.h
+++ b/chrome/browser/prerender/prerender_contents.h
@@ -79,6 +79,15 @@ class PrerenderContents : public content::NotificationObserver,
// Signals that the prerender has stopped running.
virtual void OnPrerenderStop(PrerenderContents* contents) = 0;
+ // Signals the discovery, through redirects, of a new alias for this
+ // prerender.
+ virtual void OnPrerenderAddAlias(PrerenderContents* contents,
+ const GURL& alias_url);
+
+ // Signals that this prerender has just become a MatchComplete replacement.
+ virtual void OnPrerenderCreatedMatchCompleteReplacement(
+ PrerenderContents* contents, PrerenderContents* replacement);
+
protected:
Observer();
virtual ~Observer() = 0;
@@ -129,13 +138,15 @@ class PrerenderContents : public content::NotificationObserver,
virtual ~PrerenderContents();
// All observers of a PrerenderContents are removed after the OnPrerenderStop
- // event is sent, so there is no need for a RemoveObserver() method.
+ // event is sent, so there is no need to call RemoveObserver() in the normal
+ // use case.
void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
// For MatchComplete correctness, create a dummy replacement prerender
// contents to stand in for this prerender contents that (which we are about
// to destroy).
- PrerenderContents* CreateMatchCompleteReplacement() const;
+ PrerenderContents* CreateMatchCompleteReplacement();
bool Init();
@@ -268,8 +279,8 @@ class PrerenderContents : public content::NotificationObserver,
scoped_ptr<PendingPrerenderInfo> pending_prerender_info);
// Reissues any pending prerender requests from the prerendered page. Also
- // clears the list of pending requests.
- void StartPendingPrerenders();
+ // clears the list of pending requests. Sends notifications.
+ void PrepareForUse();
protected:
PrerenderContents(PrerenderManager* prerender_manager,
@@ -283,6 +294,9 @@ class PrerenderContents : public content::NotificationObserver,
// that NotifyPrerenderStop() also clears the observer list.
void NotifyPrerenderStart();
void NotifyPrerenderStop();
+ void NotifyPrerenderAddAlias(const GURL& alias_url);
+ void NotifyPrerenderCreatedMatchCompleteReplacement(
+ PrerenderContents* replacement);
// Called whenever a RenderViewHost is created for prerendering. Only called
// once the RenderViewHost has a RenderView and RenderWidgetHostView.
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_contents.cc » ('j') | chrome/browser/prerender/prerender_handle.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698