| Index: chrome/browser/prerender/prerender_manager.cc
|
| diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
|
| index 954edb55bb6d2bfff58f8189336f8b0ef0ab520a..7a3efcf6f231ff395427ee73f20d1e099fe83899 100644
|
| --- a/chrome/browser/prerender/prerender_manager.cc
|
| +++ b/chrome/browser/prerender/prerender_manager.cc
|
| @@ -392,6 +392,15 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromLocalPredictor(
|
| size, session_storage_namespace);
|
| }
|
|
|
| +PrerenderHandle* PrerenderManager::AddPrerenderFromExternalRequest(
|
| + const GURL& url,
|
| + const content::Referrer& referrer,
|
| + SessionStorageNamespace* session_storage_namespace,
|
| + const gfx::Size& size) {
|
| + return AddPrerender(ORIGIN_EXTERNAL_REQUEST, -1, url, referrer, size,
|
| + session_storage_namespace);
|
| +}
|
| +
|
| void PrerenderManager::DestroyPrerenderForRenderView(
|
| int process_id, int view_id, FinalStatus final_status) {
|
| DCHECK(CalledOnValidThread());
|
| @@ -785,6 +794,23 @@ bool PrerenderManager::IsWebContentsPrerendering(
|
| return false;
|
| }
|
|
|
| +bool PrerenderManager::HasPrerenderedUrl(
|
| + GURL url,
|
| + content::WebContents* web_contents) const {
|
| + content::SessionStorageNamespace* session_storage_namespace = web_contents->
|
| + GetController().GetDefaultSessionStorageNamespace();
|
| +
|
| + for (ScopedVector<PrerenderData>::const_iterator it =
|
| + active_prerenders_.begin();
|
| + it != active_prerenders_.end(); ++it) {
|
| + PrerenderContents* prerender_contents = (*it)->contents();
|
| + if (prerender_contents->Matches(url, session_storage_namespace)) {
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| +}
|
| +
|
| PrerenderContents* PrerenderManager::GetPrerenderContents(
|
| const content::WebContents* web_contents) const {
|
| DCHECK(CalledOnValidThread());
|
|
|