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

Side by Side Diff: components/scheduler/child/nestable_task_runner_for_test.cc

Issue 1250613002: scheduler: Remove task observer shenanigans (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a failing test. Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/scheduler/child/nestable_task_runner_for_test.h" 5 #include "components/scheduler/child/nestable_task_runner_for_test.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 9
10 namespace scheduler { 10 namespace scheduler {
11 11
12 // static 12 // static
13 scoped_refptr<NestableTaskRunnerForTest> NestableTaskRunnerForTest::Create( 13 scoped_refptr<NestableTaskRunnerForTest> NestableTaskRunnerForTest::Create(
14 scoped_refptr<base::SingleThreadTaskRunner> task_runner) { 14 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
15 return make_scoped_refptr(new NestableTaskRunnerForTest(task_runner)); 15 return make_scoped_refptr(new NestableTaskRunnerForTest(task_runner));
16 } 16 }
17 17
18 NestableTaskRunnerForTest::NestableTaskRunnerForTest( 18 NestableTaskRunnerForTest::NestableTaskRunnerForTest(
19 scoped_refptr<base::SingleThreadTaskRunner> task_runner) 19 scoped_refptr<base::SingleThreadTaskRunner> task_runner)
20 : task_runner_(task_runner), is_nested_(false), weak_factory_(this) { 20 : task_runner_(task_runner), is_nested_(false) {
21 weak_nestable_task_runner_ptr_ = weak_factory_.GetWeakPtr();
22 } 21 }
23 22
24 NestableTaskRunnerForTest::~NestableTaskRunnerForTest() { 23 NestableTaskRunnerForTest::~NestableTaskRunnerForTest() {
25 } 24 }
26 25
27 void NestableTaskRunnerForTest::WrapTask(
28 const base::PendingTask* wrapped_task) {
29 scoped_refptr<NestableTaskRunnerForTest> protect(this);
30 FOR_EACH_OBSERVER(base::MessageLoop::TaskObserver, task_observers_,
31 DidProcessTask(*wrapped_task));
32 wrapped_task->task.Run();
33 FOR_EACH_OBSERVER(base::MessageLoop::TaskObserver, task_observers_,
34 WillProcessTask(*wrapped_task));
35 }
36
37 bool NestableTaskRunnerForTest::PostDelayedTask( 26 bool NestableTaskRunnerForTest::PostDelayedTask(
38 const tracked_objects::Location& from_here, 27 const tracked_objects::Location& from_here,
39 const base::Closure& task, 28 const base::Closure& task,
40 base::TimeDelta delay) { 29 base::TimeDelta delay) {
41 base::PendingTask* wrapped_task = new base::PendingTask(from_here, task); 30 return task_runner_->PostDelayedTask(from_here, task, delay);
42 return task_runner_->PostDelayedTask(
43 from_here,
44 base::Bind(&NestableTaskRunnerForTest::WrapTask,
45 weak_nestable_task_runner_ptr_, base::Owned(wrapped_task)),
46 delay);
47 } 31 }
48 32
49 bool NestableTaskRunnerForTest::PostNonNestableDelayedTask( 33 bool NestableTaskRunnerForTest::PostNonNestableDelayedTask(
50 const tracked_objects::Location& from_here, 34 const tracked_objects::Location& from_here,
51 const base::Closure& task, 35 const base::Closure& task,
52 base::TimeDelta delay) { 36 base::TimeDelta delay) {
53 base::PendingTask* wrapped_task = new base::PendingTask(from_here, task); 37 return task_runner_->PostNonNestableDelayedTask(from_here, task, delay);
54 return task_runner_->PostNonNestableDelayedTask(
55 from_here,
56 base::Bind(&NestableTaskRunnerForTest::WrapTask,
57 weak_nestable_task_runner_ptr_, base::Owned(wrapped_task)),
58 delay);
59 } 38 }
60 39
61 bool NestableTaskRunnerForTest::RunsTasksOnCurrentThread() const { 40 bool NestableTaskRunnerForTest::RunsTasksOnCurrentThread() const {
62 return task_runner_->RunsTasksOnCurrentThread(); 41 return task_runner_->RunsTasksOnCurrentThread();
63 } 42 }
64 43
65 bool NestableTaskRunnerForTest::IsNested() const { 44 bool NestableTaskRunnerForTest::IsNested() const {
66 return false; 45 return false;
67 } 46 }
68 47
69 void NestableTaskRunnerForTest::AddTaskObserver(
70 base::MessageLoop::TaskObserver* task_observer) {
71 task_observers_.AddObserver(task_observer);
72 }
73
74 void NestableTaskRunnerForTest::RemoveTaskObserver(
75 base::MessageLoop::TaskObserver* task_observer) {
76 task_observers_.RemoveObserver(task_observer);
77 }
78
79 } // namespace scheduler 48 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698