| 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() | 
|  |