| 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;
|
|
|
|
|