Index: content/browser/web_contents/render_view_host_manager.cc |
diff --git a/content/browser/web_contents/render_view_host_manager.cc b/content/browser/web_contents/render_view_host_manager.cc |
index 4201eb8f83dd7f9b9dceb68c00eea7b31f4e4d69..17d102e59842f4b3494d2bdbfe4c6c22e7bfa9b5 100644 |
--- a/content/browser/web_contents/render_view_host_manager.cc |
+++ b/content/browser/web_contents/render_view_host_manager.cc |
@@ -149,7 +149,13 @@ RenderViewHostImpl* RenderViewHostManager::Navigate( |
// If the renderer crashed, then try to create a new one to satisfy this |
// navigation request. |
if (!dest_render_view_host->IsRenderViewLive()) { |
- if (!InitRenderView(dest_render_view_host, MSG_ROUTING_NONE)) |
+ // Ensure that we have created RVHs for the new RVH's opener chain if |
Charlie Reis
2013/07/30 01:26:30
I think this makes sense, but I would be very surp
jochen (gone - plz use gerrit)
2013/07/30 14:50:39
done.
|
+ // we are staying in the same BrowsingInstance. This allows the pending RVH |
+ // to send cross-process script calls to its opener(s). |
+ int opener_route_id = delegate_->CreateOpenerRenderViewsForRenderManager( |
+ dest_render_view_host->GetSiteInstance()); |
+ |
+ if (!InitRenderView(dest_render_view_host, opener_route_id)) |
return NULL; |
// Now that we've created a new renderer, be sure to hide it if it isn't |