Index: content/browser/frame_host/render_frame_host_manager.cc |
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc |
index bb522575cc09a95770a8c444575c8ff2b8b6aba1..3a98b03f2430d58d029712a28d04846caf948f84 100644 |
--- a/content/browser/frame_host/render_frame_host_manager.cc |
+++ b/content/browser/frame_host/render_frame_host_manager.cc |
@@ -245,19 +245,7 @@ RenderFrameHostImpl* RenderFrameHostManager::Navigate( |
if (dest_render_frame_host->GetView()) |
dest_render_frame_host->GetView()->Hide(); |
} else { |
- // After a renderer crash we'd have marked the host as invisible, so we |
- // need to set the visibility of the new View to the correct value here |
- // after reload. |
- if (dest_render_frame_host->GetView() && |
- dest_render_frame_host->render_view_host() |
- ->GetWidget() |
- ->is_hidden() != delegate_->IsHidden()) { |
- if (delegate_->IsHidden()) { |
- dest_render_frame_host->GetView()->Hide(); |
- } else { |
- dest_render_frame_host->GetView()->Show(); |
- } |
- } |
+ EnsureRenderFrameHostVisibilityConsistent(); |
// TODO(nasko): This is a very ugly hack. The Chrome extensions process |
// manager still uses NotificationService and expects to see a |
@@ -461,6 +449,7 @@ void RenderFrameHostManager::CommitPendingIfNecessary( |
// We should only hear this from our current renderer. |
DCHECK_EQ(render_frame_host_.get(), render_frame_host); |
+ EnsureRenderFrameHostVisibilityConsistent(); |
// If the current RenderFrameHost has a pending WebUI it must be committed. |
// Note: When one tries to move same-site commit logic into RenderFrameHost |
@@ -2807,4 +2796,16 @@ bool RenderFrameHostManager::CanSubframeSwapProcess( |
return true; |
} |
+void RenderFrameHostManager::EnsureRenderFrameHostVisibilityConsistent() { |
+ if (render_frame_host_->GetView() && |
+ render_frame_host_->render_view_host()->GetWidget()->is_hidden() != |
+ delegate_->IsHidden()) { |
+ if (delegate_->IsHidden()) { |
+ render_frame_host_->GetView()->Hide(); |
+ } else { |
+ render_frame_host_->GetView()->Show(); |
+ } |
+ } |
+} |
+ |
} // namespace content |