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 22675dc154b3a1cefc19160f6bd2fb7bc86c8c37..d135cfd439c8baf85b90ecc8fabeb6f621f197ab 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,11 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
| bool AddPreload(const GURL& url, const std::vector<GURL>& alias_urls, |
| const GURL& referrer); |
| + void AddPendingPreload(const std::pair<int, int>& child_route_id_pair, |
| + 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 |
| @@ -107,6 +113,9 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
| void SetPrerenderContentsFactory( |
| PrerenderContents::Factory* prerender_contents_factory); |
| + struct PendingContentsData; |
|
cbentzel
2011/03/21 19:46:04
the struct declaration should go at top of protect
dominich
2011/03/21 20:25:51
Done.
|
| + PendingContentsData* FindPendingEntry(const GURL& url); |
| + |
| private: |
| // Test that needs needs access to internal functions. |
| friend class PrerenderBrowserTest; |
| @@ -140,6 +149,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_; |
| @@ -155,6 +168,11 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
| // (for the control group). |
| base::hash_set<TabContents*> would_be_prerendered_tc_set_; |
| + // Map of child/route id pairs to pending prerender data. |
| + typedef std::map<std::pair<int, int>, std::vector<PendingContentsData> > |
| + PendingPrerenderList; |
| + PendingPrerenderList pending_prerender_list_; |
| + |
| // Default maximum permitted elements to prerender. |
| static const unsigned int kDefaultMaxPrerenderElements = 1; |