| Index: content/browser/frame_host/render_frame_proxy_host.cc
 | 
| diff --git a/content/browser/frame_host/render_frame_proxy_host.cc b/content/browser/frame_host/render_frame_proxy_host.cc
 | 
| index f0f5808f74fecacce8b0224e4fb4b311ec91de8d..b78fb2002143db5a7c72ff5b19dbe6139af96544 100644
 | 
| --- a/content/browser/frame_host/render_frame_proxy_host.cc
 | 
| +++ b/content/browser/frame_host/render_frame_proxy_host.cc
 | 
| @@ -60,11 +60,17 @@ RenderFrameProxyHost::RenderFrameProxyHost(SiteInstance* site_instance,
 | 
|    CHECK(render_view_host_);
 | 
|    frame_tree_node_->frame_tree()->AddRenderViewHostRef(render_view_host_);
 | 
|  
 | 
| -  if (!frame_tree_node_->IsMainFrame() &&
 | 
| -      frame_tree_node_->parent()
 | 
| -              ->render_manager()
 | 
| -              ->current_frame_host()
 | 
| -              ->GetSiteInstance() == site_instance) {
 | 
| +  bool is_proxy_to_parent = !frame_tree_node_->IsMainFrame() &&
 | 
| +                            frame_tree_node_->parent()
 | 
| +                                    ->render_manager()
 | 
| +                                    ->current_frame_host()
 | 
| +                                    ->GetSiteInstance() == site_instance;
 | 
| +
 | 
| +  // If this is a proxy to parent frame or this proxy is for the inner
 | 
| +  // WebContents's FrameTreeNode in outer WebContents's process, then we need a
 | 
| +  // CrossProcessFrameConnector.
 | 
| +  if (is_proxy_to_parent ||
 | 
| +      frame_tree_node_->render_manager()->ForInnerDelegate()) {
 | 
|      // The RenderFrameHost navigating cross-process is destroyed and a proxy for
 | 
|      // it is created in the parent's process. CrossProcessFrameConnector
 | 
|      // initialization only needs to happen on an initial cross-process
 | 
| 
 |