| 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 f3369ecb1d37ebb10a89938fb290bf28bd1e0067..823edb8a1d167e82738ddab15e13d30d3af80014 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
|
| @@ -119,10 +119,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_queue_ =
|
| NewLoadingTaskQueue(TaskQueue::QueueType::DEFAULT_LOADING);
|
| default_timer_task_queue_ =
|
| @@ -202,9 +198,6 @@ RendererSchedulerImpl::MainThreadOnly::MainThreadOnly(
|
| expensive_task_policy(ExpensiveTaskPolicy::RUN),
|
| 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),
|
| timer_tasks_seem_expensive(false),
|
| @@ -530,17 +523,6 @@ void RendererSchedulerImpl::OnRendererBackgrounded() {
|
| base::TimeTicks now = tick_clock()->NowTicks();
|
| GetMainThreadOnly().foreground_main_thread_load_tracker.Pause(now);
|
| GetMainThreadOnly().background_main_thread_load_tracker.Resume(now);
|
| -
|
| - if (!GetMainThreadOnly().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_queue_->PostDelayedTask(
|
| - FROM_HERE, suspend_timers_when_backgrounded_closure_.GetCallback(),
|
| - suspend_timers_when_backgrounded_delay);
|
| }
|
|
|
| void RendererSchedulerImpl::OnRendererForegrounded() {
|
| @@ -551,16 +533,12 @@ void RendererSchedulerImpl::OnRendererForegrounded() {
|
| return;
|
|
|
| GetMainThreadOnly().renderer_backgrounded = false;
|
| - GetMainThreadOnly().renderer_suspended = false;
|
|
|
| UpdatePolicy();
|
|
|
| base::TimeTicks now = tick_clock()->NowTicks();
|
| GetMainThreadOnly().foreground_main_thread_load_tracker.Resume(now);
|
| GetMainThreadOnly().background_main_thread_load_tracker.Pause(now);
|
| -
|
| - suspend_timers_when_backgrounded_closure_.Cancel();
|
| - ResumeTimerQueueWhenForegroundedOrResumed();
|
| }
|
|
|
| void RendererSchedulerImpl::OnAudioStateChanged() {
|
| @@ -580,34 +558,6 @@ void RendererSchedulerImpl::OnAudioStateChanged() {
|
| UpdatePolicy();
|
| }
|
|
|
| -void RendererSchedulerImpl::SuspendRenderer() {
|
| - helper_.CheckOnValidThread();
|
| - if (helper_.IsShutdown())
|
| - return;
|
| - if (!GetMainThreadOnly().renderer_backgrounded)
|
| - return;
|
| - suspend_timers_when_backgrounded_closure_.Cancel();
|
| -
|
| - UMA_HISTOGRAM_COUNTS("PurgeAndSuspend.PendingTaskCount",
|
| - helper_.GetNumberOfPendingTasks());
|
| -
|
| - // TODO(hajimehoshi): We might need to suspend not only timer queue but also
|
| - // e.g. loading tasks or postMessage.
|
| - GetMainThreadOnly().renderer_suspended = true;
|
| - SuspendTimerQueueWhenBackgrounded();
|
| -}
|
| -
|
| -void RendererSchedulerImpl::ResumeRenderer() {
|
| - helper_.CheckOnValidThread();
|
| - if (helper_.IsShutdown())
|
| - return;
|
| - if (!GetMainThreadOnly().renderer_backgrounded)
|
| - return;
|
| - suspend_timers_when_backgrounded_closure_.Cancel();
|
| - GetMainThreadOnly().renderer_suspended = false;
|
| - ResumeTimerQueueWhenForegroundedOrResumed();
|
| -}
|
| -
|
| void RendererSchedulerImpl::EndIdlePeriod() {
|
| if (GetMainThreadOnly().in_idle_period_for_testing)
|
| return;
|
| @@ -1108,18 +1058,12 @@ void RendererSchedulerImpl::UpdatePolicyLocked(UpdateType update_type) {
|
| }
|
| GetMainThreadOnly().expensive_task_policy = expensive_task_policy;
|
|
|
| - if (GetMainThreadOnly().timer_queue_suspend_count != 0 ||
|
| - GetMainThreadOnly().timer_queue_suspended_when_backgrounded) {
|
| + if (GetMainThreadOnly().timer_queue_suspend_count != 0) {
|
| new_policy.timer_queue_policy.is_enabled = false;
|
| // TODO(alexclarke): Figure out if we really need to do this.
|
| new_policy.timer_queue_policy.time_domain_type = TimeDomainType::REAL;
|
| }
|
|
|
| - if (GetMainThreadOnly().renderer_suspended) {
|
| - new_policy.loading_queue_policy.is_enabled = false;
|
| - DCHECK(!new_policy.timer_queue_policy.is_enabled);
|
| - }
|
| -
|
| if (GetMainThreadOnly().use_virtual_time) {
|
| new_policy.compositor_queue_policy.time_domain_type =
|
| TimeDomainType::VIRTUAL;
|
| @@ -1371,13 +1315,6 @@ void RendererSchedulerImpl::ResumeTimerQueue() {
|
| ForceUpdatePolicy();
|
| }
|
|
|
| -void RendererSchedulerImpl::SetTimerQueueSuspensionWhenBackgroundedEnabled(
|
| - bool enabled) {
|
| - // Note that this will only take effect for the next backgrounded signal.
|
| - GetMainThreadOnly().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_);
|
| @@ -1452,9 +1389,6 @@ RendererSchedulerImpl::AsValueLocked(base::TimeTicks optional_now) const {
|
| GetMainThreadOnly().have_reported_blocking_intervention_since_navigation);
|
| state->SetBoolean("renderer_backgrounded",
|
| GetMainThreadOnly().renderer_backgrounded);
|
| - state->SetBoolean(
|
| - "timer_queue_suspended_when_backgrounded",
|
| - GetMainThreadOnly().timer_queue_suspended_when_backgrounded);
|
| state->SetInteger("timer_queue_suspend_count",
|
| GetMainThreadOnly().timer_queue_suspend_count);
|
| state->SetDouble("now", (optional_now - base::TimeTicks()).InMillisecondsF());
|
| @@ -1603,27 +1537,6 @@ void RendererSchedulerImpl::OnFirstMeaningfulPaint() {
|
| UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED);
|
| }
|
|
|
| -void RendererSchedulerImpl::SuspendTimerQueueWhenBackgrounded() {
|
| - DCHECK(GetMainThreadOnly().renderer_backgrounded);
|
| - if (GetMainThreadOnly().timer_queue_suspended_when_backgrounded)
|
| - return;
|
| -
|
| - GetMainThreadOnly().timer_queue_suspended_when_backgrounded = true;
|
| - ForceUpdatePolicy();
|
| - Platform::Current()->RequestPurgeMemory();
|
| -}
|
| -
|
| -void RendererSchedulerImpl::ResumeTimerQueueWhenForegroundedOrResumed() {
|
| - DCHECK(!GetMainThreadOnly().renderer_backgrounded ||
|
| - (GetMainThreadOnly().renderer_backgrounded &&
|
| - !GetMainThreadOnly().renderer_suspended));
|
| - if (!GetMainThreadOnly().timer_queue_suspended_when_backgrounded)
|
| - return;
|
| -
|
| - GetMainThreadOnly().timer_queue_suspended_when_backgrounded = false;
|
| - ForceUpdatePolicy();
|
| -}
|
| -
|
| void RendererSchedulerImpl::ResetForNavigationLocked() {
|
| helper_.CheckOnValidThread();
|
| any_thread_lock_.AssertAcquired();
|
| @@ -1737,8 +1650,7 @@ void RendererSchedulerImpl::OnTriedToExecuteBlockedTask(
|
| if (GetMainThreadOnly().current_use_case == UseCase::TOUCHSTART ||
|
| GetMainThreadOnly().longest_jank_free_task_duration <
|
| base::TimeDelta::FromMilliseconds(kRailsResponseTimeMillis) ||
|
| - GetMainThreadOnly().timer_queue_suspend_count ||
|
| - GetMainThreadOnly().timer_queue_suspended_when_backgrounded) {
|
| + GetMainThreadOnly().timer_queue_suspend_count) {
|
| return;
|
| }
|
| if (!GetMainThreadOnly().timer_tasks_seem_expensive &&
|
|
|