Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4291)

Unified Diff: chrome/browser/prerender/prerender_manager.cc

Issue 45693002: Add ExternalPrerenderRequestHandler and related API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed imports Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/browser/prerender/prerender_origin.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 14f93c2d765ae37af23c391889f561f34bb775bd..6e393b4632843417b4da9b312c2e4544ff6341e1 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -400,6 +400,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());
@@ -794,6 +803,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());
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/browser/prerender/prerender_origin.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698