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

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1014623002: Revert "Refactor sudden termination" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + fixed compilation error Created 5 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
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 906e19a8051303833ff54cbacddf6a03dcfe3304..9fb8cacb4d6b54e30c79a99b5d674ff53ad2378e 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -236,30 +236,6 @@ void SetAccessibilityModeOnFrame(AccessibilityMode mode,
static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode);
}
-// Enable sudden termination for the current RenderFrameHost of
-// |frame_tree_node| if the ID of its SiteInstance is |site_instance_id|. Used
-// with FrameTree::ForEach.
-bool EnableSuddenTermination(int32 site_instance_id,
- FrameTreeNode* frame_tree_node) {
- if (frame_tree_node->current_frame_host()->GetSiteInstance()->GetId()
- == site_instance_id) {
- frame_tree_node->current_frame_host()
- ->set_override_sudden_termination_status(true);
- }
- return true;
-}
-
-// Returns false and sets |sudden_termination_allowed| to false if sudden
-// termination is not allowed for the current RenderFrameHost of
-// |frame_tree_node|. Used with FrameTree::ForEach.
-bool SuddenTerminationAllowed(bool* sudden_termination_allowed,
- FrameTreeNode* frame_tree_node) {
- if (frame_tree_node->current_frame_host()->SuddenTerminationAllowed())
- return true;
- *sudden_termination_allowed = false;
- return false;
-}
-
// Returns true if at least one of the nodes in the |frame_tree| is loading.
bool IsFrameTreeLoading(FrameTree& frame_tree) {
bool is_loading = false;
@@ -855,7 +831,7 @@ bool WebContentsImpl::IsFullAccessibilityModeForTesting() const {
void WebContentsImpl::SetParentNativeViewAccessible(
gfx::NativeViewAccessible accessible_parent) {
accessible_parent_ = accessible_parent;
- RenderFrameHostImpl* rfh = GetMainFrame();
+ RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
if (rfh)
rfh->SetParentNativeViewAccessible(accessible_parent);
}
@@ -1189,17 +1165,16 @@ void WebContentsImpl::WasUnOccluded() {
}
bool WebContentsImpl::NeedToFireBeforeUnload() {
- bool sudden_termination_allowed = true;
- frame_tree_.ForEach(base::Bind(
- &SuddenTerminationAllowed, &sudden_termination_allowed));
// TODO(creis): Should we fire even for interstitial pages?
return WillNotifyDisconnection() &&
!ShowingInterstitialPage() &&
- !sudden_termination_allowed;
+ !static_cast<RenderViewHostImpl*>(
+ GetRenderViewHost())->SuddenTerminationAllowed();
}
void WebContentsImpl::DispatchBeforeUnload(bool for_cross_site_transition) {
- GetMainFrame()->DispatchBeforeUnload(for_cross_site_transition);
+ static_cast<RenderFrameHostImpl*>(GetMainFrame())->DispatchBeforeUnload(
+ for_cross_site_transition);
}
void WebContentsImpl::Stop() {
@@ -1448,7 +1423,7 @@ void WebContentsImpl::RenderWidgetGotFocus(
void WebContentsImpl::RenderWidgetWasResized(
RenderWidgetHostImpl* render_widget_host,
bool width_changed) {
- RenderFrameHostImpl* rfh = GetMainFrame();
+ RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
if (!rfh || render_widget_host != rfh->GetRenderWidgetHost())
return;
@@ -1881,7 +1856,7 @@ WebContentsImpl* WebContentsImpl::GetCreatedWindow(int route_id) {
// Resume blocked requests for both the RenderViewHost and RenderFrameHost.
// TODO(brettw): It seems bogus to reach into here and initialize the host.
static_cast<RenderViewHostImpl*>(new_contents->GetRenderViewHost())->Init();
- new_contents->GetMainFrame()->Init();
+ static_cast<RenderFrameHostImpl*>(new_contents->GetMainFrame())->Init();
return new_contents;
}
@@ -1999,13 +1974,13 @@ void WebContentsImpl::DidSendScreenRects(RenderWidgetHostImpl* rwh) {
BrowserAccessibilityManager*
WebContentsImpl::GetRootBrowserAccessibilityManager() {
- RenderFrameHostImpl* rfh = GetMainFrame();
+ RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
return rfh ? rfh->browser_accessibility_manager() : NULL;
}
BrowserAccessibilityManager*
WebContentsImpl::GetOrCreateRootBrowserAccessibilityManager() {
- RenderFrameHostImpl* rfh = GetMainFrame();
+ RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
return rfh ? rfh->GetOrCreateBrowserAccessibilityManager() : NULL;
}
@@ -4209,8 +4184,7 @@ void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) {
rfhi->IsWaitingForUnloadACK()) {
// Hang occurred while firing the beforeunload/unload handler.
// Pretend the handler fired so tab closing continues as if it had.
- frame_tree_.ForEach(base::Bind(
- &EnableSuddenTermination, rvhi->GetSiteInstance()->GetId()));
+ rvhi->set_sudden_termination_allowed(true);
if (!GetRenderManager()->ShouldCloseTabOnUnresponsiveRenderer())
return;
« no previous file with comments | « content/browser/renderer_host/render_view_host_impl.cc ('k') | content/browser/web_contents/web_contents_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698