Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 2753093002: Ensure that with PlzNavigate, reloads after process crash display the RenderView. (Closed)
Patch Set: nit Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/frame_host/render_frame_host_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « content/browser/frame_host/render_frame_host_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698