| Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| index db351c79c3fe52a81049d8c2679f2e014581a695..bcc4f868aac5fbc1a99520620306b20366349773 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| @@ -190,10 +190,14 @@ void TaskQueueManager::MaybeScheduleDelayedWork(
|
| return;
|
| }
|
|
|
| - // De-duplicate DoWork posts.
|
| + // Only request the wake up if, either there are no wake ups scheduled, or if
|
| + // its sooner than any previously requested wake up.
|
| base::TimeTicks run_time = now + delay;
|
| - if (!main_thread_pending_wakeups_.insert(run_time).second)
|
| + if (!main_thread_pending_wakeups_.empty() &&
|
| + *main_thread_pending_wakeups_.begin() <= run_time) {
|
| return;
|
| + }
|
| + main_thread_pending_wakeups_.insert(run_time);
|
| delegate_->PostDelayedTask(
|
| from_here, base::Bind(&TaskQueueManager::DoWork,
|
| weak_factory_.GetWeakPtr(), run_time, true),
|
|
|