Index: chrome/browser/prerender/prerender_manager.h |
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h |
index 64adb11ce0e8569e371e3ba572f58775666a6d79..22469987a14aeb9b538d6e623d62ddbfe0d1b1f5 100644 |
--- a/chrome/browser/prerender/prerender_manager.h |
+++ b/chrome/browser/prerender/prerender_manager.h |
@@ -7,6 +7,7 @@ |
#pragma once |
#include <list> |
+#include <map> |
#include <vector> |
#include "base/ref_counted.h" |
@@ -44,6 +45,10 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
bool AddPreload(const GURL& url, const std::vector<GURL>& alias_urls, |
const GURL& referrer); |
+ void AddPendingPreload(int route_id, const GURL& url, |
+ const std::vector<GURL>& alias_urls, |
+ const GURL& referrer); |
+ |
// For a given TabContents that wants to navigate to the URL supplied, |
// determines whether a preloaded version of the URL can be used, |
// and substitutes the prerendered RVH into the TabContents. Returns |
@@ -116,6 +121,10 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
static void RecordPrefetchTagObservedOnUIThread(); |
+ // Called when removing a preload to ensure we clean up any pending preloads |
+ // that might remain in the map. |
+ void RemovePendingPreload(PrerenderContents* entry); |
+ |
Profile* profile_; |
base::TimeDelta max_prerender_age_; |
@@ -124,6 +133,19 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
// List of prerendered elements. |
std::list<PrerenderContentsData> prerender_list_; |
+ struct PendingContentsData { |
+ PendingContentsData(const GURL& url, const std::vector<GURL>& alias_urls, |
+ const GURL& referrer) |
+ : url_(url), alias_urls_(alias_urls), referrer_(referrer) { |
+ } |
+ ~PendingContentsData() {} |
+ const GURL url_; |
+ const std::vector<GURL> alias_urls_; |
+ const GURL referrer_; |
+ }; |
+ |
+ std::map<int, PendingContentsData> pending_prerender_map_; |
+ |
// Default maximum permitted elements to prerender. |
static const unsigned int kDefaultMaxPrerenderElements = 1; |