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

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

Issue 10831116: Move SessionStorageNamespace entirely into NavigationController and support StoragePartitions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add some rudimentary testing. Created 8 years, 5 months 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
Index: chrome/browser/prerender/prerender_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index bebccf23d64c5ad37b08a4b28ffda2c9541a4360..7daa0212e0135c2c699398337e5e986c9805e07e 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -234,8 +234,14 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromLinkRelPrerender(
RenderViewHost::FromID(process_id, route_id);
if (!source_render_view_host)
return NULL;
+ WebContents* source_web_contents =
+ WebContents::FromRenderViewHost(source_render_view_host);
+ if (!source_web_contents)
+ return NULL;
+ // TODO(ajwong): This does not correctly handle storage for isolated apps.
session_storage_namespace =
- source_render_view_host->GetSessionStorageNamespace();
+ source_web_contents->GetController()
+ .GetSessionStorageNamespaceMap().find("")->second;
}
return AddPrerender(ORIGIN_LINK_REL_PRERENDER,
@@ -277,12 +283,13 @@ bool PrerenderManager::MaybeUsePrerenderedPage(WebContents* web_contents,
DCHECK(CalledOnValidThread());
DCHECK(!IsWebContentsPrerendering(web_contents));
- RenderViewHost* old_render_view_host = web_contents->GetRenderViewHost();
-
DeleteOldEntries();
DeletePendingDeleteEntries();
+ // TODO(ajwong): This doesn't handle isolated apps correctly.
PrerenderData* prerender_data = FindPrerenderData(
- url, old_render_view_host->GetSessionStorageNamespace());
+ url,
+ web_contents->GetController().GetSessionStorageNamespaceMap()
+ .find("")->second);
if (!prerender_data)
return false;
DCHECK(prerender_data->contents_);

Powered by Google App Engine
This is Rietveld 408576698