Index: content/browser/frame_host/frame_tree.cc |
diff --git a/content/browser/frame_host/frame_tree.cc b/content/browser/frame_host/frame_tree.cc |
index 90c1f8d343f56497862403d4ee851bc913ea3480..27ed57ff1a32d0cfdabf81af901f6e28b2e0d496 100644 |
--- a/content/browser/frame_host/frame_tree.cc |
+++ b/content/browser/frame_host/frame_tree.cc |
@@ -54,7 +54,12 @@ bool ResetNodesForNewProcess(RenderViewHost* render_view_host, |
bool CreateProxyForSiteInstance(const scoped_refptr<SiteInstance>& instance, |
FrameTreeNode* node) { |
- node->render_manager()->CreateRenderFrameProxy(instance.get()); |
+ // If a new frame is created in the current SiteInstance, other frames in |
+ // that SiteInstance don't need a proxy for the new frame. |
+ SiteInstance* current_instance = |
+ node->render_manager()->current_frame_host()->GetSiteInstance(); |
+ if (current_instance != instance.get()) |
+ node->render_manager()->CreateRenderFrameProxy(instance.get()); |
return true; |
} |