| 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 756416e142dbe5008711b3f87b56d4b43bd8dd7c..30c022e6ee0f5a92676c7376c4e4ee646ff4406f 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
|
| @@ -218,9 +218,10 @@
|
|
|
| void TaskQueueManager::MaybeScheduleDelayedWork(
|
| const tracked_objects::Location& from_here,
|
| - LazyNow* lazy_now,
|
| - base::TimeTicks run_time) {
|
| - DCHECK(main_thread_checker_.CalledOnValidThread());
|
| + base::TimeTicks now,
|
| + base::TimeDelta delay) {
|
| + DCHECK(main_thread_checker_.CalledOnValidThread());
|
| + DCHECK_GE(delay, base::TimeDelta());
|
| {
|
| base::AutoLock lock(any_thread_lock_);
|
|
|
| @@ -235,29 +236,17 @@
|
| }
|
|
|
| // De-duplicate DoWork posts.
|
| + base::TimeTicks run_time = now + delay;
|
| if (next_delayed_do_work_ <= run_time && !next_delayed_do_work_.is_null())
|
| return;
|
|
|
| - cancelable_delayed_do_work_closure_.Reset(delayed_do_work_closure_);
|
| -
|
| - base::TimeDelta delay =
|
| - std::max(base::TimeDelta(), run_time - lazy_now->Now());
|
| - next_delayed_do_work_ = lazy_now->Now() + delay;
|
| -
|
| TRACE_EVENT1(tracing_category_, "MaybeScheduleDelayedWorkInternal",
|
| "delay_ms", delay.InMillisecondsF());
|
|
|
| + cancelable_delayed_do_work_closure_.Reset(delayed_do_work_closure_);
|
| + next_delayed_do_work_ = run_time;
|
| delegate_->PostDelayedTask(
|
| from_here, cancelable_delayed_do_work_closure_.callback(), delay);
|
| -}
|
| -
|
| -void TaskQueueManager::CancelDelayedWork(base::TimeTicks run_time) {
|
| - DCHECK(main_thread_checker_.CalledOnValidThread());
|
| - if (next_delayed_do_work_ != run_time)
|
| - return;
|
| -
|
| - cancelable_delayed_do_work_closure_.Cancel();
|
| - next_delayed_do_work_ = base::TimeTicks();
|
| }
|
|
|
| void TaskQueueManager::DoWork(bool delayed) {
|
|
|