| Index: third_party/WebKit/Source/platform/TimerTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/TimerTest.cpp b/third_party/WebKit/Source/platform/TimerTest.cpp
|
| index d5ccc0a527c79697a7bcaa8b79070eddf3da0fb0..fe471f0c8600b8618fa1feecbd0ef0b39b85d443 100644
|
| --- a/third_party/WebKit/Source/platform/TimerTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/TimerTest.cpp
|
| @@ -526,10 +526,10 @@ class TimerForTest : public TaskRunnerTimer<TimerFiredClass> {
|
|
|
| ~TimerForTest() override {}
|
|
|
| - TimerForTest(WebTaskRunner* webTaskRunner,
|
| + TimerForTest(RefPtr<WebTaskRunner> webTaskRunner,
|
| TimerFiredClass* timerFiredClass,
|
| TimerFiredFunction timerFiredFunction)
|
| - : TaskRunnerTimer<TimerFiredClass>(webTaskRunner,
|
| + : TaskRunnerTimer<TimerFiredClass>(std::move(webTaskRunner),
|
| timerFiredClass,
|
| timerFiredFunction) {}
|
| };
|
| @@ -538,8 +538,9 @@ TEST_F(TimerTest, UserSuppliedWebTaskRunner) {
|
| scoped_refptr<scheduler::TaskQueue> taskRunner(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner(taskRunner);
|
| - TimerForTest<TimerTest> timer(&webTaskRunner, this, &TimerTest::countingTask);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner);
|
| + TimerForTest<TimerTest> timer(webTaskRunner, this, &TimerTest::countingTask);
|
| timer.startOneShot(0, BLINK_FROM_HERE);
|
|
|
| // Make sure the task was posted on taskRunner.
|
| @@ -600,9 +601,9 @@ namespace {
|
|
|
| class TaskObserver : public base::MessageLoop::TaskObserver {
|
| public:
|
| - TaskObserver(WebTaskRunner* task_runner,
|
| - std::vector<WebTaskRunner*>* runOrder)
|
| - : m_taskRunner(task_runner), m_runOrder(runOrder) {}
|
| + TaskObserver(RefPtr<WebTaskRunner> task_runner,
|
| + std::vector<RefPtr<WebTaskRunner>>* runOrder)
|
| + : m_taskRunner(std::move(task_runner)), m_runOrder(runOrder) {}
|
|
|
| void WillProcessTask(const base::PendingTask&) {}
|
|
|
| @@ -611,31 +612,32 @@ class TaskObserver : public base::MessageLoop::TaskObserver {
|
| }
|
|
|
| private:
|
| - WebTaskRunner* m_taskRunner;
|
| - std::vector<WebTaskRunner*>* m_runOrder;
|
| + RefPtr<WebTaskRunner> m_taskRunner;
|
| + std::vector<RefPtr<WebTaskRunner>>* m_runOrder;
|
| };
|
|
|
| } // namespace
|
|
|
| TEST_F(TimerTest, MoveToNewTaskRunnerOneShot) {
|
| - std::vector<WebTaskRunner*> runOrder;
|
| + std::vector<RefPtr<WebTaskRunner>> runOrder;
|
|
|
| scoped_refptr<scheduler::TaskQueue> taskRunner1(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner1(taskRunner1);
|
| - TaskObserver taskObserver1(&webTaskRunner1, &runOrder);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner1 =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner1);
|
| + TaskObserver taskObserver1(webTaskRunner1, &runOrder);
|
| taskRunner1->AddTaskObserver(&taskObserver1);
|
|
|
| scoped_refptr<scheduler::TaskQueue> taskRunner2(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner2(taskRunner2);
|
| - TaskObserver taskObserver2(&webTaskRunner2, &runOrder);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner2 =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner2);
|
| + TaskObserver taskObserver2(webTaskRunner2, &runOrder);
|
| taskRunner2->AddTaskObserver(&taskObserver2);
|
|
|
| - TimerForTest<TimerTest> timer(&webTaskRunner1, this,
|
| - &TimerTest::countingTask);
|
| + TimerForTest<TimerTest> timer(webTaskRunner1, this, &TimerTest::countingTask);
|
|
|
| double startTime = monotonicallyIncreasingTime();
|
|
|
| @@ -643,37 +645,38 @@ TEST_F(TimerTest, MoveToNewTaskRunnerOneShot) {
|
|
|
| m_platform.runForPeriodSeconds(0.5);
|
|
|
| - timer.moveToNewTaskRunner(&webTaskRunner2);
|
| + timer.moveToNewTaskRunner(webTaskRunner2);
|
|
|
| m_platform.runUntilIdle();
|
|
|
| EXPECT_THAT(m_runTimes, ElementsAre(startTime + 1.0));
|
|
|
| - EXPECT_THAT(runOrder, ElementsAre(&webTaskRunner2));
|
| + EXPECT_THAT(runOrder, ElementsAre(webTaskRunner2));
|
|
|
| EXPECT_TRUE(taskRunner1->IsEmpty());
|
| EXPECT_TRUE(taskRunner2->IsEmpty());
|
| }
|
|
|
| TEST_F(TimerTest, MoveToNewTaskRunnerRepeating) {
|
| - std::vector<WebTaskRunner*> runOrder;
|
| + std::vector<RefPtr<WebTaskRunner>> runOrder;
|
|
|
| scoped_refptr<scheduler::TaskQueue> taskRunner1(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner1(taskRunner1);
|
| - TaskObserver taskObserver1(&webTaskRunner1, &runOrder);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner1 =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner1);
|
| + TaskObserver taskObserver1(webTaskRunner1, &runOrder);
|
| taskRunner1->AddTaskObserver(&taskObserver1);
|
|
|
| scoped_refptr<scheduler::TaskQueue> taskRunner2(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner2(taskRunner2);
|
| - TaskObserver taskObserver2(&webTaskRunner2, &runOrder);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner2 =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner2);
|
| + TaskObserver taskObserver2(webTaskRunner2, &runOrder);
|
| taskRunner2->AddTaskObserver(&taskObserver2);
|
|
|
| - TimerForTest<TimerTest> timer(&webTaskRunner1, this,
|
| - &TimerTest::countingTask);
|
| + TimerForTest<TimerTest> timer(webTaskRunner1, this, &TimerTest::countingTask);
|
|
|
| double startTime = monotonicallyIncreasingTime();
|
|
|
| @@ -681,15 +684,15 @@ TEST_F(TimerTest, MoveToNewTaskRunnerRepeating) {
|
|
|
| m_platform.runForPeriodSeconds(2.5);
|
|
|
| - timer.moveToNewTaskRunner(&webTaskRunner2);
|
| + timer.moveToNewTaskRunner(webTaskRunner2);
|
|
|
| m_platform.runForPeriodSeconds(2);
|
|
|
| EXPECT_THAT(m_runTimes, ElementsAre(startTime + 1.0, startTime + 2.0,
|
| startTime + 3.0, startTime + 4.0));
|
|
|
| - EXPECT_THAT(runOrder, ElementsAre(&webTaskRunner1, &webTaskRunner1,
|
| - &webTaskRunner2, &webTaskRunner2));
|
| + EXPECT_THAT(runOrder, ElementsAre(webTaskRunner1, webTaskRunner1,
|
| + webTaskRunner2, webTaskRunner2));
|
|
|
| EXPECT_TRUE(taskRunner1->IsEmpty());
|
| EXPECT_FALSE(taskRunner2->IsEmpty());
|
| @@ -701,15 +704,16 @@ TEST_F(TimerTest, MoveToNewTaskRunnerWithoutTasks) {
|
| scoped_refptr<scheduler::TaskQueue> taskRunner1(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner1(taskRunner1);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner1 =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner1);
|
|
|
| scoped_refptr<scheduler::TaskQueue> taskRunner2(
|
| m_platform.rendererScheduler()->NewTimerTaskRunner(
|
| scheduler::TaskQueue::QueueType::TEST));
|
| - scheduler::WebTaskRunnerImpl webTaskRunner2(taskRunner2);
|
| + RefPtr<scheduler::WebTaskRunnerImpl> webTaskRunner2 =
|
| + scheduler::WebTaskRunnerImpl::create(taskRunner2);
|
|
|
| - TimerForTest<TimerTest> timer(&webTaskRunner1, this,
|
| - &TimerTest::countingTask);
|
| + TimerForTest<TimerTest> timer(webTaskRunner1, this, &TimerTest::countingTask);
|
|
|
| m_platform.runUntilIdle();
|
| EXPECT_TRUE(!m_runTimes.size());
|
|
|