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

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: Rebased 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..9b15c9cc38e2041b3fadf35e118173d53c671cd7 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,11 @@ void RendererSchedulerImpl::UpdatePolicyLocked(UpdateType update_type) {
ShouldDisableThrottlingBecauseOfAudio(now) ||
MainThreadOnly().use_virtual_time;
+ // TODO(altimin): Consider adding default timer tq to background time
+ // budget pool.
+ if (MainThreadOnly().renderer_backgrounded)
+ new_policy.timer_queue_policy.time_domain_type = TimeDomainType::THROTTLED;
+
// Tracing is done before the early out check, because it's quite possible we
// will otherwise miss this information in traces.
CreateTraceEventObjectSnapshotLocked();
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698