Index: content/browser/renderer_host/render_widget_host_impl.cc |
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
index c89bba6c56f4cf3c9c60626f85bef724b0c5b06e..c835063e3b730f3d2ddd30d9d4990de63d9dcd8c 100644 |
--- a/content/browser/renderer_host/render_widget_host_impl.cc |
+++ b/content/browser/renderer_host/render_widget_host_impl.cc |
@@ -705,6 +705,11 @@ void RenderWidgetHostImpl::Focus() { |
is_focused_ = true; |
Send(new InputMsg_SetFocus(routing_id_, true)); |
+ |
+ // Also send page-level focus state to other SiteInstances involved in |
+ // rendering the current FrameTree. |
+ if (IsRenderView() && delegate_) |
+ delegate_->ReplicatePageFocus(true); |
} |
void RenderWidgetHostImpl::Blur() { |
@@ -720,6 +725,11 @@ void RenderWidgetHostImpl::Blur() { |
touch_emulator_->CancelTouch(); |
Send(new InputMsg_SetFocus(routing_id_, false)); |
+ |
+ // Also send page-level focus state to other SiteInstances involved in |
+ // rendering the current FrameTree. |
+ if (IsRenderView() && delegate_) |
+ delegate_->ReplicatePageFocus(false); |
} |
void RenderWidgetHostImpl::LostCapture() { |