Index: chrome/browser/prerender/prerender_manager.h |
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h |
index 03f73f46f09e1d30f2c216ffb80477b49e57109a..516cffe56c1741f92307b9736ac0b782ab762229 100644 |
--- a/chrome/browser/prerender/prerender_manager.h |
+++ b/chrome/browser/prerender/prerender_manager.h |
@@ -121,6 +121,9 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
// Cancels all active prerenders. |
void CancelAllPrerenders(); |
+ // Cancels all active prerenders with the ORIGIN_OMNIBOX origin. |
+ void CancelOmniboxPrerenders(); |
+ |
// For a given WebContents that wants to navigate to the URL supplied, |
// determines whether a prerendered version of the URL can be used, |
// and substitutes the prerendered RVH into the WebContents. |opener_url| is |
@@ -221,6 +224,9 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
bool IsPendingEntry(const GURL& url) const; |
+ // Returns true if |url| matches any URLs being prerendered. |
+ bool IsPrerendering(const GURL& url) const; |
+ |
protected: |
void SetPrerenderContentsFactory( |
PrerenderContents::Factory* prerender_contents_factory); |
@@ -237,6 +243,11 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
// Test that needs needs access to internal functions. |
friend class PrerenderBrowserTest; |
FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, AliasURLTest); |
+ FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, CancelAllTest); |
+ FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, |
+ CancelOmniboxRemovesOmniboxTest); |
+ FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, |
+ CancelOmniboxDoesNotRemoveLinkTest); |
FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, ClearTest); |
FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, ControlGroup); |
FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, DropOldestRequestTest); |
@@ -259,6 +270,8 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
class MostVisitedSites; |
+ typedef std::list<PrerenderContentsData> PrerenderContentsDataList; |
+ |
// Adds a prerender for |url| from referrer |referrer| initiated from the |
// RenderViewHost specified by |child_route_id_pair|. The |origin| specifies |
// how the prerender was added. If the |session_storage_namespace| is NULL, |
@@ -271,14 +284,6 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
const content::Referrer& referrer, |
SessionStorageNamespace* session_storage_namespace); |
- // Adds a pending preload issued by the prerendering RenderView identified by |
- // |child_route_id_pair|. If and when that prerendering RenderView is used, |
- // the specified prerender will start. |
- void AddPendingPrerender(Origin origin, |
- const std::pair<int, int>& child_route_id_pair, |
- const GURL& url, |
- const content::Referrer& referrer); |
- |
// Retrieves the PrerenderContents object for the specified URL, if it |
// has been prerendered. The caller will then have ownership of the |
// PrerenderContents object and is responsible for freeing it. |
@@ -328,19 +333,14 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
// Finds the specified PrerenderContents and returns it, if it exists. |
// Returns NULL otherwise. Unlike GetEntry, the PrerenderManager maintains |
// ownership of the PrerenderContents. |
- PrerenderContents* FindEntry(const GURL& url); |
+ PrerenderContents* FindEntry(const GURL& url) const; |
// Returns the iterator to the PrerenderContentsData entry that is being |
// prerendered from the given child route id pair. |
- std::list<PrerenderContentsData>::iterator |
+ PrerenderContentsDataList::iterator |
FindPrerenderContentsForChildRouteIdPair( |
const std::pair<int, int>& child_route_id_pair); |
- // Returns whether the PrerenderManager is currently within the prerender |
- // window - effectively, up to 30 seconds after a prerender tag has been |
- // observed. |
- bool WithinWindow() const; |
- |
bool DoesRateLimitAllowPrerender() const; |
// Deletes old TabContents that have been replaced by prerendered ones. This |
@@ -399,7 +399,7 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, |
PrerenderTracker* prerender_tracker_; |
// List of prerendered elements. |
- std::list<PrerenderContentsData> prerender_list_; |
+ PrerenderContentsDataList prerender_list_; |
// List of recent navigations in this profile, sorted by ascending |
// navigate_time_. |