Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: third_party/WebKit/Source/platform/TimerTest.cpp

Issue 2550373005: Make WebTaskRunner ThreadSafeRefCounted (Closed)
Patch Set: +DISALLOW_COPY_AND_ASSIGN for win build fix Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
« no previous file with comments | « third_party/WebKit/Source/platform/Timer.cpp ('k') | third_party/WebKit/Source/platform/WebFrameScheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698