| Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc
|
| index 83a2476b3a7e19a4ebb3569b508c7c78177d9092..edd7ad475f170df66da22aafa4beb088ec11ff18 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc
|
| @@ -2075,5 +2075,35 @@ TEST_F(TaskQueueManagerTest, TimeDomainWakeUpOnlyCancelledIfAllUsesCancelled) {
|
| EXPECT_THAT(run_times, ElementsAre(start_time + delay3, start_time + delay4));
|
| }
|
|
|
| +TEST_F(TaskQueueManagerTest, DeferredTaskTimeObservation) {
|
| + InitializeWithRealMessageLoop(1u);
|
| + now_src_->SetNowTicks(base::TimeTicks() +
|
| + base::TimeDelta::FromMicroseconds(10000));
|
| +
|
| + TestTaskTimeObserver test_task_time_observer;
|
| + manager_->AddTaskTimeObserver(&test_task_time_observer);
|
| +
|
| + std::vector<EnqueueOrder> run_order;
|
| + runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
|
| +
|
| + std::vector<std::pair<base::Closure, bool>> tasks_to_post_from_nested_loop;
|
| + tasks_to_post_from_nested_loop.push_back(
|
| + std::make_pair(base::Bind(&TestTask, 1, &run_order), false));
|
| +
|
| + runners_[0]->PostTask(
|
| + FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(),
|
| + base::RetainedRef(runners_[0]),
|
| + base::Unretained(&tasks_to_post_from_nested_loop)));
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| +
|
| + // The task is deferred once, and then actually executed, leading to a pair of
|
| + // entries.
|
| + EXPECT_THAT(test_task_time_observer.task_start_times(),
|
| + ElementsAre(0.01, 0.01));
|
| + EXPECT_THAT(test_task_time_observer.task_end_times(),
|
| + ElementsAre(0.01, 0.01));
|
| +}
|
| +
|
| } // namespace scheduler
|
| } // namespace blink
|
|
|