summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/renderer_webkitclient_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/renderer_webkitclient_impl.cc')
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc
index 3907b53..2a2ae60 100644
--- a/chrome/renderer/renderer_webkitclient_impl.cc
+++ b/chrome/renderer/renderer_webkitclient_impl.cc
@@ -132,6 +132,19 @@ WebString RendererWebKitClientImpl::defaultLocale() {
}
void RendererWebKitClientImpl::suddenTerminationChanged(bool enabled) {
+ if (enabled) {
+ // We should not get more enables than disables, but we want it to be a
+ // non-fatal error if it does happen.
+ DCHECK_GT(sudden_termination_disables_, 0);
+ sudden_termination_disables_ = std::max(--sudden_termination_disables_, 0);
+ if (sudden_termination_disables_ != 0)
+ return;
+ } else {
+ sudden_termination_disables_++;
+ if (sudden_termination_disables_ != 1)
+ return;
+ }
+
RenderThread* thread = RenderThread::current();
if (thread) // NULL in unittests.
thread->Send(new ViewHostMsg_SuddenTerminationChanged(enabled));