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

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

Issue 2555623004: [scheduler] Throttle default timer queue when renderer is backgrounded. (Closed)
Patch Set: Integrate throttling into policy Created 4 years 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 752e9a102cc6901281170bdc04c686c9ba2dd829..0a60891164c5c436411f60166cab109c7f78eafc 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
@@ -487,6 +487,8 @@ void RendererSchedulerImpl::OnRendererBackgrounded() {
MainThreadOnly().renderer_backgrounded = true;
+ UpdatePolicy();
+
base::TimeTicks now = tick_clock()->NowTicks();
MainThreadOnly().foreground_main_thread_load_tracker.Pause(now);
MainThreadOnly().background_main_thread_load_tracker.Resume(now);
@@ -513,6 +515,8 @@ void RendererSchedulerImpl::OnRendererForegrounded() {
MainThreadOnly().renderer_backgrounded = false;
MainThreadOnly().renderer_suspended = false;
+ UpdatePolicy();
+
base::TimeTicks now = tick_clock()->NowTicks();
MainThreadOnly().foreground_main_thread_load_tracker.Resume(now);
MainThreadOnly().background_main_thread_load_tracker.Pause(now);
@@ -1073,6 +1077,9 @@ void RendererSchedulerImpl::UpdatePolicyLocked(UpdateType update_type) {
ShouldDisableThrottlingBecauseOfAudio(now) ||
MainThreadOnly().use_virtual_time;
+ if (MainThreadOnly().renderer_backgrounded)
+ new_policy.timer_queue_policy.time_domain_type = TimeDomainType::THROTTLED;
Sami 2016/12/06 19:09:10 Should we have a TODO around making this also use
altimin 2016/12/07 11:20:09 Done. (And I want to state that I don't really lik
Sami 2016/12/07 19:24:49 (Why would it prevent throttling? The foreground p
+
// Tracing is done before the early out check, because it's quite possible we
// will otherwise miss this information in traces.
CreateTraceEventObjectSnapshotLocked();

Powered by Google App Engine
This is Rietveld 408576698