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

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc

Issue 2668663002: Purge memory before suspending timer queues when backgrounded. (Closed)
Patch Set: Remove mainThreadOnly's timer_queue_suspended_when_backgrounded Created 3 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: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
index cb4938dc6b74f1baa9047d51c1c9c05ee59111f0..1b51b3e8e6c8474468210c2a860dd9bcd0ae0b69 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
@@ -123,10 +123,6 @@ RendererSchedulerImpl::RendererSchedulerImpl(
end_renderer_hidden_idle_period_closure_.Reset(base::Bind(
&RendererSchedulerImpl::EndIdlePeriod, weak_factory_.GetWeakPtr()));
- suspend_timers_when_backgrounded_closure_.Reset(
- base::Bind(&RendererSchedulerImpl::SuspendTimerQueueWhenBackgrounded,
- weak_factory_.GetWeakPtr()));
-
default_loading_task_runner_ =
NewLoadingTaskRunner(TaskQueue::QueueType::DEFAULT_LOADING);
default_timer_task_runner_ =
@@ -206,7 +202,6 @@ RendererSchedulerImpl::MainThreadOnly::MainThreadOnly(
renderer_hidden(false),
renderer_backgrounded(false),
renderer_suspended(false),
- timer_queue_suspension_when_backgrounded_enabled(false),
timer_queue_suspended_when_backgrounded(false),
was_shutdown(false),
loading_tasks_seem_expensive(false),
@@ -500,17 +495,6 @@ void RendererSchedulerImpl::OnRendererBackgrounded() {
base::TimeTicks now = tick_clock()->NowTicks();
MainThreadOnly().foreground_main_thread_load_tracker.Pause(now);
MainThreadOnly().background_main_thread_load_tracker.Resume(now);
-
- if (!MainThreadOnly().timer_queue_suspension_when_backgrounded_enabled)
- return;
-
- suspend_timers_when_backgrounded_closure_.Cancel();
- base::TimeDelta suspend_timers_when_backgrounded_delay =
- base::TimeDelta::FromMilliseconds(
- kSuspendTimersWhenBackgroundedDelayMillis);
- control_task_runner_->PostDelayedTask(
- FROM_HERE, suspend_timers_when_backgrounded_closure_.callback(),
- suspend_timers_when_backgrounded_delay);
}
void RendererSchedulerImpl::OnRendererForegrounded() {
@@ -529,7 +513,6 @@ void RendererSchedulerImpl::OnRendererForegrounded() {
MainThreadOnly().foreground_main_thread_load_tracker.Resume(now);
MainThreadOnly().background_main_thread_load_tracker.Pause(now);
- suspend_timers_when_backgrounded_closure_.Cancel();
ResumeTimerQueueWhenForegroundedOrResumed();
}
@@ -556,7 +539,6 @@ void RendererSchedulerImpl::SuspendRenderer() {
return;
if (!MainThreadOnly().renderer_backgrounded)
return;
- suspend_timers_when_backgrounded_closure_.Cancel();
UMA_HISTOGRAM_COUNTS("PurgeAndSuspend.PendingTaskCount",
helper_.GetNumberOfPendingTasks());
@@ -573,7 +555,7 @@ void RendererSchedulerImpl::ResumeRenderer() {
return;
if (!MainThreadOnly().renderer_backgrounded)
return;
- suspend_timers_when_backgrounded_closure_.Cancel();
+
MainThreadOnly().renderer_suspended = false;
ResumeTimerQueueWhenForegroundedOrResumed();
}
@@ -1333,12 +1315,6 @@ void RendererSchedulerImpl::ResumeTimerQueue() {
ForceUpdatePolicy();
}
-void RendererSchedulerImpl::SetTimerQueueSuspensionWhenBackgroundedEnabled(
- bool enabled) {
- // Note that this will only take effect for the next backgrounded signal.
- MainThreadOnly().timer_queue_suspension_when_backgrounded_enabled = enabled;
-}
-
std::unique_ptr<base::trace_event::ConvertableToTraceFormat>
RendererSchedulerImpl::AsValue(base::TimeTicks optional_now) const {
base::AutoLock lock(any_thread_lock_);
@@ -1413,8 +1389,6 @@ RendererSchedulerImpl::AsValueLocked(base::TimeTicks optional_now) const {
MainThreadOnly().have_reported_blocking_intervention_since_navigation);
state->SetBoolean("renderer_backgrounded",
MainThreadOnly().renderer_backgrounded);
- state->SetBoolean("timer_queue_suspended_when_backgrounded",
- MainThreadOnly().timer_queue_suspended_when_backgrounded);
state->SetInteger("timer_queue_suspend_count",
MainThreadOnly().timer_queue_suspend_count);
state->SetDouble("now", (optional_now - base::TimeTicks()).InMillisecondsF());

Powered by Google App Engine
This is Rietveld 408576698