| Index: components/scheduler/base/time_domain.cc | 
| diff --git a/components/scheduler/base/time_domain.cc b/components/scheduler/base/time_domain.cc | 
| index 825812e43744907799923364dfc5c182a29548ec..73904ffa366fef87eb5c9fd54f8d07e07ee40f88 100644 | 
| --- a/components/scheduler/base/time_domain.cc | 
| +++ b/components/scheduler/base/time_domain.cc | 
| @@ -31,7 +31,7 @@ void TimeDomain::UnregisterQueue(internal::TaskQueueImpl* queue) { | 
| } | 
| } | 
|  | 
| -  // |newly_updatable_| might contain |task_queue|, we use | 
| +  // |newly_updatable_| might contain |queue|, we use | 
| // MoveNewlyUpdatableQueuesIntoUpdatableQueueSet to flush it out. | 
| MoveNewlyUpdatableQueuesIntoUpdatableQueueSet(); | 
| updatable_queue_set_.erase(queue); | 
| @@ -66,12 +66,12 @@ void TimeDomain::ScheduleDelayedWork(internal::TaskQueueImpl* queue, | 
| base::TimeTicks delayed_run_time, | 
| LazyNow* lazy_now) { | 
| DCHECK(main_thread_checker_.CalledOnValidThread()); | 
| -  // Dedupe wakeups. | 
| -  if (delayed_wakeup_multimap_.find(delayed_run_time) == | 
| -      delayed_wakeup_multimap_.end()) { | 
| + | 
| +  if (delayed_wakeup_multimap_.empty() || | 
| +      delayed_run_time < delayed_wakeup_multimap_.begin()->first) { | 
| base::TimeDelta delay = | 
| std::max(base::TimeDelta(), delayed_run_time - lazy_now->Now()); | 
| -    RequestWakeup(delay); | 
| +    RequestWakeup(lazy_now, delay); | 
| } | 
| delayed_wakeup_multimap_.insert(std::make_pair(delayed_run_time, queue)); | 
| } | 
|  |