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( |