| 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 94335c68140417bcc20ec34941e15e76f1ccb6a4..2b9efc4f5b6e5bf579f30f0a7d2bddd629b14f11 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
|
| @@ -1509,6 +1509,42 @@ TEST_F(TaskQueueManagerTest, TimeDomainMigrationWithIncomingImmediateTasks) {
|
| manager_->UnregisterTimeDomain(domain_b.get());
|
| }
|
|
|
| +TEST_F(TaskQueueManagerTest,
|
| + PostDelayedTasksReverseOrderAlternatingTimeDomains) {
|
| + Initialize(1u);
|
| +
|
| + std::vector<EnqueueOrder> run_order;
|
| +
|
| + std::unique_ptr<RealTimeDomain> domain_a(new RealTimeDomain("test"));
|
| + std::unique_ptr<RealTimeDomain> domain_b(new RealTimeDomain("test"));
|
| + manager_->RegisterTimeDomain(domain_a.get());
|
| + manager_->RegisterTimeDomain(domain_b.get());
|
| +
|
| + runners_[0]->SetTimeDomain(domain_a.get());
|
| + runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order),
|
| + base::TimeDelta::FromMilliseconds(40));
|
| +
|
| + runners_[0]->SetTimeDomain(domain_b.get());
|
| + runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order),
|
| + base::TimeDelta::FromMilliseconds(30));
|
| +
|
| + runners_[0]->SetTimeDomain(domain_a.get());
|
| + runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order),
|
| + base::TimeDelta::FromMilliseconds(20));
|
| +
|
| + runners_[0]->SetTimeDomain(domain_b.get());
|
| + runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&TestTask, 4, &run_order),
|
| + base::TimeDelta::FromMilliseconds(10));
|
| +
|
| + test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40));
|
| + EXPECT_THAT(run_order, ElementsAre(4, 3, 2, 1));
|
| +
|
| + runners_[0]->UnregisterTaskQueue();
|
| +
|
| + manager_->UnregisterTimeDomain(domain_a.get());
|
| + manager_->UnregisterTimeDomain(domain_b.get());
|
| +}
|
| +
|
| namespace {
|
| void ChromiumRunloopInspectionTask(
|
| scoped_refptr<cc::OrderedSimpleTaskRunner> test_task_runner) {
|
|
|