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