Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index 381ddeab136219540eabb3c847d5c58d4c6247b9..cdc82e9fd70e405aa7aaa81a6964cbe4ebbae1fa 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -126,19 +126,6 @@ void DismissVirtualKeyboardTask() { |
} |
#endif |
-// 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; |
-} |
- |
} // namespace |
// static |
@@ -195,6 +182,7 @@ RenderViewHostImpl::RenderViewHostImpl( |
is_swapped_out_(swapped_out), |
main_frame_routing_id_(main_frame_routing_id), |
is_waiting_for_close_ack_(false), |
+ sudden_termination_allowed_(false), |
render_view_termination_status_(base::TERMINATION_STATUS_STILL_RUNNING), |
virtual_keyboard_requested_(false), |
is_focused_element_editable_(false), |
@@ -530,10 +518,7 @@ void RenderViewHostImpl::ClosePageIgnoringUnloadEvents() { |
StopHangMonitorTimeout(); |
is_waiting_for_close_ack_ = false; |
- // Enable sudden termination for all RenderFrameHosts in the FrameTree. |
- FrameTree* frame_tree = static_cast<RenderFrameHostImpl*>(GetMainFrame()) |
- ->frame_tree_node()->frame_tree(); |
- frame_tree->ForEach(base::Bind(&EnableSuddenTermination, instance_->GetId())); |
+ sudden_termination_allowed_ = true; |
delegate_->Close(this); |
} |
@@ -822,6 +807,11 @@ void RenderViewHostImpl::LoadStateChanged( |
delegate_->LoadStateChanged(url, load_state, upload_position, upload_size); |
} |
+bool RenderViewHostImpl::SuddenTerminationAllowed() const { |
+ return sudden_termination_allowed_ || |
+ GetProcess()->SuddenTerminationAllowed(); |
+} |
+ |
/////////////////////////////////////////////////////////////////////////////// |
// RenderViewHostImpl, IPC message handlers: |