Chromium Code Reviews| Index: chrome/browser/prerender/prerender_manager.h |
| diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h |
| index fa53ae79abb3395633baf76926cf30513bda4845..c95c6683310d8824b4e10ce09cbd41b7d9936851 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/hash_tables.h" |
| @@ -58,6 +59,10 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
| bool AddPreload(const GURL& url, const std::vector<GURL>& alias_urls, |
| const GURL& referrer); |
| + void AddPendingPreload(int child_id, 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 |
| @@ -136,6 +141,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_; |
| @@ -147,6 +156,23 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
| // Set of TabContents which are currently displaying a prerendered page. |
| base::hash_set<TabContents*> prerendered_tc_set_; |
| + struct PendingContentsData { |
| + PendingContentsData(int child_id, int route_id, |
| + const GURL& url, const std::vector<GURL>& alias_urls, |
| + const GURL& referrer) |
| + : child_id_(child_id), route_id_(route_id), |
| + url_(url), alias_urls_(alias_urls), referrer_(referrer) { } |
| + ~PendingContentsData() {} |
| + int child_id_; |
| + int route_id_; |
| + GURL url_; |
| + std::vector<GURL> alias_urls_; |
| + GURL referrer_; |
|
cbentzel
2011/03/14 18:06:13
It looks like default copy-constructor will work c
|
| + }; |
| + |
| + typedef std::vector<PendingContentsData> PendingPrerenderList; |
| + PendingPrerenderList pending_prerender_list_; |
|
cbentzel
2011/03/14 18:06:13
Why not map of pair<child_id, route_id> to vector<
dominich
2011/03/14 19:42:34
Done.
|
| + |
| // Default maximum permitted elements to prerender. |
| static const unsigned int kDefaultMaxPrerenderElements = 1; |