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

Unified Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 857213003: Refactor sudden termination (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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/renderer_host/render_process_host_impl.cc
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index fafd773952f52b74baab4d052d8c229f64407e8b..f7f1b82f1ff8e895f7ccd3be1b77ef0bad24bcad 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -451,7 +451,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()),
browser_context_(browser_context),
storage_partition_impl_(storage_partition_impl),
- sudden_termination_allowed_(true),
+ sudden_termination_disallows_(0),
+ sudden_termination_enabled_(true),
ignore_input_events_(false),
is_isolated_guest_(is_isolated_guest),
gpu_observer_registered_(false),
@@ -1486,7 +1487,7 @@ bool RenderProcessHostImpl::OnMessageReceived(const IPC::Message& msg) {
IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DumpHandlesDone,
OnDumpHandlesDone)
IPC_MESSAGE_HANDLER(ViewHostMsg_SuddenTerminationChanged,
- SuddenTerminationChanged)
+ OnSuddenTerminationChanged)
IPC_MESSAGE_HANDLER(ViewHostMsg_UserMetricsRecordAction,
OnUserMetricsRecordAction)
IPC_MESSAGE_HANDLER(ViewHostMsg_SavedPageAsMHTML, OnSavedPageAsMHTML)
@@ -1643,12 +1644,16 @@ void RenderProcessHostImpl::RemovePendingView() {
pending_views_--;
}
-void RenderProcessHostImpl::SetSuddenTerminationAllowed(bool enabled) {
- sudden_termination_allowed_ = enabled;
+void RenderProcessHostImpl::SuddenTerminationChangedForFrame(bool allowed) {
+ if (allowed)
+ --sudden_termination_disallows_;
+ else
+ ++sudden_termination_disallows_;
+ DCHECK(sudden_termination_disallows_ >= 0);
}
bool RenderProcessHostImpl::SuddenTerminationAllowed() const {
- return sudden_termination_allowed_;
+ return sudden_termination_disallows_ == 0 && sudden_termination_enabled_;
}
base::TimeDelta RenderProcessHostImpl::GetChildProcessIdleTime() const {
@@ -2149,8 +2154,8 @@ void RenderProcessHostImpl::OnShutdownRequest() {
Send(new ChildProcessMsg_Shutdown());
}
-void RenderProcessHostImpl::SuddenTerminationChanged(bool enabled) {
- SetSuddenTerminationAllowed(enabled);
+void RenderProcessHostImpl::OnSuddenTerminationChanged(bool enabled) {
+ sudden_termination_enabled_ = enabled;
}
void RenderProcessHostImpl::OnDumpHandlesDone() {

Powered by Google App Engine
This is Rietveld 408576698