| 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 238d8305ee93585d50479670607657a4c59d1b0f..f76a15e26fae93fae0932a2950d5f3b772d95660 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
|
| @@ -1545,9 +1545,9 @@ TEST_F(TaskQueueManagerTest, TimeDomainsAreIndependant) {
|
|
|
| base::TimeTicks start_time = manager_->delegate()->NowTicks();
|
| std::unique_ptr<VirtualTimeDomain> domain_a(
|
| - new VirtualTimeDomain(nullptr, start_time));
|
| + new VirtualTimeDomain(start_time));
|
| std::unique_ptr<VirtualTimeDomain> domain_b(
|
| - new VirtualTimeDomain(nullptr, start_time));
|
| + new VirtualTimeDomain(start_time));
|
| manager_->RegisterTimeDomain(domain_a.get());
|
| manager_->RegisterTimeDomain(domain_b.get());
|
| runners_[0]->SetTimeDomain(domain_a.get());
|
| @@ -1592,7 +1592,7 @@ TEST_F(TaskQueueManagerTest, TimeDomainMigration) {
|
|
|
| base::TimeTicks start_time = manager_->delegate()->NowTicks();
|
| std::unique_ptr<VirtualTimeDomain> domain_a(
|
| - new VirtualTimeDomain(nullptr, start_time));
|
| + new VirtualTimeDomain(start_time));
|
| manager_->RegisterTimeDomain(domain_a.get());
|
| runners_[0]->SetTimeDomain(domain_a.get());
|
|
|
| @@ -1612,7 +1612,7 @@ TEST_F(TaskQueueManagerTest, TimeDomainMigration) {
|
| EXPECT_THAT(run_order, ElementsAre(1, 2));
|
|
|
| std::unique_ptr<VirtualTimeDomain> domain_b(
|
| - new VirtualTimeDomain(nullptr, start_time));
|
| + new VirtualTimeDomain(start_time));
|
| manager_->RegisterTimeDomain(domain_b.get());
|
| runners_[0]->SetTimeDomain(domain_b.get());
|
|
|
| @@ -1633,9 +1633,9 @@ TEST_F(TaskQueueManagerTest, TimeDomainMigrationWithIncomingImmediateTasks) {
|
|
|
| base::TimeTicks start_time = manager_->delegate()->NowTicks();
|
| std::unique_ptr<VirtualTimeDomain> domain_a(
|
| - new VirtualTimeDomain(nullptr, start_time));
|
| + new VirtualTimeDomain(start_time));
|
| std::unique_ptr<VirtualTimeDomain> domain_b(
|
| - new VirtualTimeDomain(nullptr, start_time));
|
| + new VirtualTimeDomain(start_time));
|
| manager_->RegisterTimeDomain(domain_a.get());
|
| manager_->RegisterTimeDomain(domain_b.get());
|
|
|
| @@ -1690,68 +1690,65 @@ TEST_F(TaskQueueManagerTest,
|
| }
|
|
|
| namespace {
|
| -class MockTimeDomainObserver : public TimeDomain::Observer {
|
| +
|
| +class MockTaskQueueObserver : public TaskQueue::Observer {
|
| public:
|
| - ~MockTimeDomainObserver() override {}
|
| + ~MockTaskQueueObserver() override {}
|
|
|
| - MOCK_METHOD1(OnTimeDomainHasImmediateWork, void(TaskQueue*));
|
| - MOCK_METHOD1(OnTimeDomainHasDelayedWork, void(TaskQueue*));
|
| + MOCK_METHOD2(OnQueueNextWakeupChanged, void(TaskQueue*, base::TimeTicks));
|
| };
|
| +
|
| } // namespace
|
|
|
| -TEST_F(TaskQueueManagerTest, TimeDomainObserver_ImmediateTask) {
|
| +TEST_F(TaskQueueManagerTest, TaskQueueObserver_ImmediateTask) {
|
| Initialize(1u);
|
|
|
| - MockTimeDomainObserver observer;
|
| - std::unique_ptr<VirtualTimeDomain> domain(
|
| - new VirtualTimeDomain(&observer, manager_->delegate()->NowTicks()));
|
| - manager_->RegisterTimeDomain(domain.get());
|
| - runners_[0]->SetTimeDomain(domain.get());
|
| + MockTaskQueueObserver observer;
|
| + runners_[0]->AddObserver(&observer);
|
|
|
| // We should get a notification when a task is posted on an empty queue.
|
| - EXPECT_CALL(observer, OnTimeDomainHasImmediateWork(runners_[0].get()));
|
| + EXPECT_CALL(observer,
|
| + OnQueueNextWakeupChanged(runners_[0].get(), base::TimeTicks()));
|
| runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask));
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // But not subsequently.
|
| - EXPECT_CALL(observer, OnTimeDomainHasImmediateWork(_)).Times(0);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(_, _)).Times(0);
|
| runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask));
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // Unless the immediate work queue is emptied.
|
| runners_[0]->ReloadImmediateWorkQueueIfEmpty();
|
| - EXPECT_CALL(observer, OnTimeDomainHasImmediateWork(runners_[0].get()));
|
| + EXPECT_CALL(observer,
|
| + OnQueueNextWakeupChanged(runners_[0].get(), base::TimeTicks()));
|
| runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask));
|
|
|
| // Tidy up.
|
| + runners_[0]->RemoveObserver(&observer);
|
| runners_[0]->UnregisterTaskQueue();
|
| - manager_->UnregisterTimeDomain(domain.get());
|
| }
|
|
|
| -TEST_F(TaskQueueManagerTest, TimeDomainObserver_DelayedTask) {
|
| +TEST_F(TaskQueueManagerTest, TaskQueueObserver_DelayedTask) {
|
| Initialize(1u);
|
|
|
| - MockTimeDomainObserver observer;
|
| - std::unique_ptr<VirtualTimeDomain> domain(
|
| - new VirtualTimeDomain(&observer, manager_->delegate()->NowTicks()));
|
| - manager_->RegisterTimeDomain(domain.get());
|
| - runners_[0]->SetTimeDomain(domain.get());
|
| + MockTaskQueueObserver observer;
|
| + runners_[0]->AddObserver(&observer);
|
|
|
| // We should get a notification when a delayed task is posted on an empty
|
| // queue.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[0].get()));
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[0].get(), _));
|
| runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
|
| base::TimeDelta::FromSeconds(10));
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // We should not get a notification for a longer delay.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(_)).Times(0);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(_, _)).Times(0);
|
| runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
|
| base::TimeDelta::FromSeconds(100));
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // We should get a notification for a shorter delay.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[0].get()));
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[0].get(), _));
|
| runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
|
| base::TimeDelta::FromSeconds(1));
|
| Mock::VerifyAndClearExpectations(&observer);
|
| @@ -1762,26 +1759,25 @@ TEST_F(TaskQueueManagerTest, TimeDomainObserver_DelayedTask) {
|
|
|
| // When a queue has been enabled, we may get a notification if the
|
| // TimeDomain's next scheduled wakeup has changed.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[0].get()));
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[0].get(), _));
|
| voter->SetQueueEnabled(true);
|
|
|
| // Tidy up.
|
| + runners_[0]->RemoveObserver(&observer);
|
| runners_[0]->UnregisterTaskQueue();
|
| - manager_->UnregisterTimeDomain(domain.get());
|
| }
|
|
|
| -TEST_F(TaskQueueManagerTest, TimeDomainObserver_DelayedTaskMultipleQueues) {
|
| +TEST_F(TaskQueueManagerTest, TaskQueueObserver_DelayedTaskMultipleQueues) {
|
| Initialize(2u);
|
|
|
| - MockTimeDomainObserver observer;
|
| - std::unique_ptr<VirtualTimeDomain> domain(
|
| - new VirtualTimeDomain(&observer, manager_->delegate()->NowTicks()));
|
| - manager_->RegisterTimeDomain(domain.get());
|
| - runners_[0]->SetTimeDomain(domain.get());
|
| - runners_[1]->SetTimeDomain(domain.get());
|
| + MockTaskQueueObserver observer;
|
| + runners_[0]->AddObserver(&observer);
|
| + runners_[1]->AddObserver(&observer);
|
|
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[0].get())).Times(1);
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[1].get())).Times(1);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[0].get(), _))
|
| + .Times(1);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[1].get(), _))
|
| + .Times(1);
|
| runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
|
| base::TimeDelta::FromSeconds(1));
|
| runners_[1]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
|
| @@ -1794,30 +1790,29 @@ TEST_F(TaskQueueManagerTest, TimeDomainObserver_DelayedTaskMultipleQueues) {
|
| runners_[1]->CreateQueueEnabledVoter();
|
|
|
| // Disabling a queue should not trigger a notification.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(_)).Times(0);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(_, _)).Times(0);
|
| voter0->SetQueueEnabled(false);
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // Re-enabling it should should also trigger a notification.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[0].get()));
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[0].get(), _));
|
| voter0->SetQueueEnabled(true);
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // Disabling a queue should not trigger a notification.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(_)).Times(0);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(_, _)).Times(0);
|
| voter1->SetQueueEnabled(false);
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // Re-enabling it should should trigger a notification.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(runners_[1].get()));
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(runners_[1].get(), _));
|
| voter1->SetQueueEnabled(true);
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| // Tidy up.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(_)).Times(AnyNumber());
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(_, _)).Times(AnyNumber());
|
| runners_[0]->UnregisterTaskQueue();
|
| runners_[1]->UnregisterTaskQueue();
|
| - manager_->UnregisterTimeDomain(domain.get());
|
| }
|
|
|
| namespace {
|
| @@ -2860,6 +2855,9 @@ TEST_F(TaskQueueManagerTest, GetNextScheduledWakeUp) {
|
| TEST_F(TaskQueueManagerTest, SetTimeDomainForDisabledQueue) {
|
| Initialize(1u);
|
|
|
| + MockTaskQueueObserver observer;
|
| + runners_[0]->AddObserver(&observer);
|
| +
|
| runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
|
| base::TimeDelta::FromMilliseconds(1));
|
|
|
| @@ -2867,12 +2865,11 @@ TEST_F(TaskQueueManagerTest, SetTimeDomainForDisabledQueue) {
|
| runners_[0]->CreateQueueEnabledVoter();
|
| voter->SetQueueEnabled(false);
|
|
|
| - MockTimeDomainObserver observer;
|
| // We should not get a notification for a disabled queue.
|
| - EXPECT_CALL(observer, OnTimeDomainHasDelayedWork(_)).Times(0);
|
| + EXPECT_CALL(observer, OnQueueNextWakeupChanged(_, _)).Times(0);
|
|
|
| std::unique_ptr<VirtualTimeDomain> domain(
|
| - new VirtualTimeDomain(&observer, manager_->delegate()->NowTicks()));
|
| + new VirtualTimeDomain(manager_->delegate()->NowTicks()));
|
| manager_->RegisterTimeDomain(domain.get());
|
| runners_[0]->SetTimeDomain(domain.get());
|
|
|
|
|