Index: content/browser/frame_host/cross_process_frame_connector.cc |
diff --git a/content/browser/frame_host/cross_process_frame_connector.cc b/content/browser/frame_host/cross_process_frame_connector.cc |
index fef7ff7a621f0f0362efa0d9e2ce52191dee9aff..0f3c832181e959f0a48ef5b28a36a6c02e062964 100644 |
--- a/content/browser/frame_host/cross_process_frame_connector.cc |
+++ b/content/browser/frame_host/cross_process_frame_connector.cc |
@@ -233,6 +233,19 @@ void CrossProcessFrameConnector::OnVisibilityChanged(bool visible) { |
if (!view_) |
return; |
+ // If there is an inner WebContents, it should be notified of the change in |
+ // the visibility. The Show/Hide methods will not be called if an inner |
+ // WebContents exists since the corresponding WebContents will itself call |
+ // Show/Hide on all the RenderWidgetHostViews (including this) one. |
+ if (frame_proxy_in_parent_renderer_->frame_tree_node() |
+ ->render_manager() |
+ ->ForInnerDelegate()) { |
+ RenderWidgetHostImpl::From(view_->GetRenderWidgetHost()) |
+ ->delegate() |
+ ->OnRenderFrameProxyVisibilityChanged(visible); |
+ return; |
+ } |
+ |
if (visible) |
view_->Show(); |
else |