Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 232504b30c18a519fdeaf99001d086fc1f39f8e9..fdce9648ed1acba35818b3218122321255de78ec 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -1451,11 +1451,14 @@ void WebContentsImpl::AttachToOuterWebContentsFrame( |
if (!render_manager->GetRenderWidgetHostView()) |
CreateRenderWidgetHostViewForRenderManager(GetRenderViewHost()); |
+ auto* outer_web_contents_impl = |
+ static_cast<WebContentsImpl*>(outer_web_contents); |
+ auto* outer_contents_frame_impl = |
+ static_cast<RenderFrameHostImpl*>(outer_contents_frame); |
// Create a link to our outer WebContents. |
node_.reset(new WebContentsTreeNode()); |
- node_->ConnectToOuterWebContents( |
- this, static_cast<WebContentsImpl*>(outer_web_contents), |
- static_cast<RenderFrameHostImpl*>(outer_contents_frame)); |
+ node_->ConnectToOuterWebContents(this, outer_web_contents_impl, |
+ outer_contents_frame_impl); |
DCHECK(outer_contents_frame); |
@@ -1463,8 +1466,7 @@ void WebContentsImpl::AttachToOuterWebContentsFrame( |
// SiteInstance of the outer WebContents. The proxy will be used to send |
// postMessage to the inner WebContents. |
render_manager->CreateOuterDelegateProxy( |
- outer_contents_frame->GetSiteInstance(), |
- static_cast<RenderFrameHostImpl*>(outer_contents_frame)); |
+ outer_contents_frame->GetSiteInstance(), outer_contents_frame_impl); |
render_manager->SetRWHViewForInnerContents( |
render_manager->GetRenderWidgetHostView()); |
@@ -1473,6 +1475,11 @@ void WebContentsImpl::AttachToOuterWebContentsFrame( |
render_manager->GetRenderWidgetHostView()) |
->RegisterFrameSinkId(); |
+ if (outer_web_contents_impl->frame_tree_.GetFocusedFrame() == |
+ outer_contents_frame_impl->frame_tree_node()) { |
+ SetFocusedFrame(frame_tree_.root(), nullptr); |
alexmos
2017/03/04 01:12:16
I'm curious if this makes the code that returns th
avallee
2017/03/15 02:55:20
This will end up calling focus on the widget which
|
+ } |
+ |
// Set up the the guest's AX tree to point back at the embedder's AX tree. |
auto* parent_frame = outer_contents_frame->GetParent(); |
GetMainFrame()->set_browser_plugin_embedder_ax_tree_id( |