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

Unified Diff: components/scheduler/base/time_domain.cc

Issue 1441073006: Move throttling of background timers into the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 1 month 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: components/scheduler/base/time_domain.cc
diff --git a/components/scheduler/base/time_domain.cc b/components/scheduler/base/time_domain.cc
index 2abfb522ce86f0d788285b03eb3127d4f1f56de9..4d94add6d04e5bbe241a39b42d7cdc338c6ee986 100644
--- a/components/scheduler/base/time_domain.cc
+++ b/components/scheduler/base/time_domain.cc
@@ -12,7 +12,7 @@
namespace scheduler {
-TimeDomain::TimeDomain() {}
+TimeDomain::TimeDomain(Observer* observer) : observer_(observer) {}
TimeDomain::~TimeDomain() {}
@@ -72,13 +72,19 @@ void TimeDomain::ScheduleDelayedWork(internal::TaskQueueImpl* queue,
base::TimeDelta delay =
std::max(base::TimeDelta(), delayed_run_time - lazy_now->Now());
RequestWakeup(lazy_now, delay);
+ if (observer_)
+ observer_->OnTimeDomainHasDelayedWork();
}
delayed_wakeup_multimap_.insert(std::make_pair(delayed_run_time, queue));
}
void TimeDomain::RegisterAsUpdatableTaskQueue(internal::TaskQueueImpl* queue) {
- base::AutoLock lock(newly_updatable_lock_);
- newly_updatable_.push_back(queue);
+ {
+ base::AutoLock lock(newly_updatable_lock_);
+ newly_updatable_.push_back(queue);
+ }
+ if (observer_)
+ observer_->OnTimeDomainHasImmediateWork();
}
void TimeDomain::UnregisterAsUpdatableTaskQueue(

Powered by Google App Engine
This is Rietveld 408576698