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

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: signal stop on match complete 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 b978c36ff00c47dd02360849ffd44fef923f86b1..e264906eba7e2f77c9e4b10cad0a2443fe3e2773 100644
--- a/chrome/browser/prerender/prerender_contents.h
+++ b/chrome/browser/prerender/prerender_contents.h
@@ -78,6 +78,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;
@@ -128,13 +137,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();
@@ -267,8 +278,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,
@@ -282,6 +293,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.

Powered by Google App Engine
This is Rietveld 408576698