Index: chrome/browser/prerender/prerender_contents.cc |
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
index c148908ae8bd7b5b1f28d850d4460de8afc90e3d..319e14b9ded99db7b9754dda9e936c3628227f62 100644 |
--- a/chrome/browser/prerender/prerender_contents.cc |
+++ b/chrome/browser/prerender/prerender_contents.cc |
@@ -211,8 +211,12 @@ bool PrerenderContents::IsPendingEntry( |
void PrerenderContents::StartPendingPrerenders() { |
SessionStorageNamespace* session_storage_namespace = NULL; |
- if (RenderViewHost* render_view_host = GetRenderViewHostMutable()) |
- session_storage_namespace = render_view_host->GetSessionStorageNamespace(); |
+ if (prerender_contents_.get()) { |
+ // TODO(ajwong): This does not correctly handle storage for isolated apps. |
+ session_storage_namespace = |
+ prerender_contents_->web_contents()->GetController() |
+ .GetSessionStorageNamespaceMap().find("")->second; |
+ } |
DCHECK(child_id_ == -1 || session_storage_namespace); |
std::vector<PendingPrerenderInfo> pending_prerender_list; |
@@ -500,8 +504,12 @@ void PrerenderContents::OnRenderViewHostCreated( |
WebContents* PrerenderContents::CreateWebContents( |
SessionStorageNamespace* session_storage_namespace) { |
- return WebContents::Create(profile_, NULL, MSG_ROUTING_NONE, NULL, |
- session_storage_namespace); |
+ // TODO(ajwong): Remove the temporary map once prerendering is aware of |
+ // multiple session storage namespaces per tab. |
+ content::SessionStorageNamespaceMap session_storage_namespace_map; |
+ session_storage_namespace_map[""] = session_storage_namespace; |
+ return WebContents::CreateWithSessionStorage( |
+ profile_, NULL, MSG_ROUTING_NONE, NULL, session_storage_namespace_map); |
} |
void PrerenderContents::OnUpdateFaviconURL( |