Index: chrome/browser/prerender/prerender_manager.cc |
=================================================================== |
--- chrome/browser/prerender/prerender_manager.cc (revision 198752) |
+++ chrome/browser/prerender/prerender_manager.cc (working copy) |
@@ -380,6 +380,14 @@ |
session_storage_namespace); |
} |
+PrerenderHandle* PrerenderManager::AddPrerenderFromLocalPredictor( |
+ const GURL& url, |
+ SessionStorageNamespace* session_storage_namespace, |
+ const gfx::Size& size) { |
+ return AddPrerender(ORIGIN_LOCAL_PREDICTOR, -1, url, content::Referrer(), |
+ size, session_storage_namespace); |
+} |
+ |
void PrerenderManager::DestroyPrerenderForRenderView( |
int process_id, int view_id, FinalStatus final_status) { |
DCHECK(CalledOnValidThread()); |
@@ -1125,7 +1133,7 @@ |
DCHECK(prerender_contents); |
active_prerenders_.push_back( |
new PrerenderData(this, prerender_contents, |
- GetExpiryTimeForNewPrerender())); |
+ GetExpiryTimeForNewPrerender(origin))); |
if (!prerender_contents->Init()) { |
DCHECK(active_prerenders_.end() == |
FindIteratorForPrerenderContents(prerender_contents)); |
@@ -1202,8 +1210,12 @@ |
base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr())); |
} |
-base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender() const { |
- return GetCurrentTimeTicks() + config_.time_to_live; |
+base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( |
+ Origin origin) const { |
+ base::TimeDelta ttl = config_.time_to_live; |
+ if (origin == ORIGIN_LOCAL_PREDICTOR) |
+ ttl = base::TimeDelta::FromSeconds(180); |
+ return GetCurrentTimeTicks() + ttl; |
} |
base::TimeTicks PrerenderManager::GetExpiryTimeForNavigatedAwayPrerender() |