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

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

Issue 987193002: Redirect the MessageLoop's task runner to the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Another API update. 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/scheduler_message_loop_delegate.h" 5 #include "components/scheduler/child/scheduler_message_loop_delegate.h"
6 6
7 namespace scheduler { 7 namespace scheduler {
8 8
9 // static 9 // static
10 scoped_refptr<SchedulerMessageLoopDelegate> 10 scoped_refptr<SchedulerMessageLoopDelegate>
11 SchedulerMessageLoopDelegate::Create(base::MessageLoop* message_loop) { 11 SchedulerMessageLoopDelegate::Create(base::MessageLoop* message_loop) {
12 return make_scoped_refptr(new SchedulerMessageLoopDelegate(message_loop)); 12 return make_scoped_refptr(new SchedulerMessageLoopDelegate(message_loop));
13 } 13 }
14 14
15 SchedulerMessageLoopDelegate::SchedulerMessageLoopDelegate( 15 SchedulerMessageLoopDelegate::SchedulerMessageLoopDelegate(
16 base::MessageLoop* message_loop) 16 base::MessageLoop* message_loop)
17 : message_loop_(message_loop) { 17 : message_loop_(message_loop),
18 message_loop_task_runner_(message_loop->task_runner()) {
18 } 19 }
19 20
20 SchedulerMessageLoopDelegate::~SchedulerMessageLoopDelegate() { 21 SchedulerMessageLoopDelegate::~SchedulerMessageLoopDelegate() {
22 // Restore the original task runner to the message loop.
23 message_loop_->SetTaskRunner(message_loop_task_runner_);
24 }
25
26 void SchedulerMessageLoopDelegate::SetDefaultTaskRunner(
27 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
28 message_loop_->SetTaskRunner(task_runner);
21 } 29 }
22 30
23 bool SchedulerMessageLoopDelegate::PostDelayedTask( 31 bool SchedulerMessageLoopDelegate::PostDelayedTask(
24 const tracked_objects::Location& from_here, 32 const tracked_objects::Location& from_here,
25 const base::Closure& task, 33 const base::Closure& task,
26 base::TimeDelta delay) { 34 base::TimeDelta delay) {
27 return message_loop_->task_runner()->PostDelayedTask(from_here, task, delay); 35 return message_loop_task_runner_->PostDelayedTask(from_here, task, delay);
28 } 36 }
29 37
30 bool SchedulerMessageLoopDelegate::PostNonNestableDelayedTask( 38 bool SchedulerMessageLoopDelegate::PostNonNestableDelayedTask(
31 const tracked_objects::Location& from_here, 39 const tracked_objects::Location& from_here,
32 const base::Closure& task, 40 const base::Closure& task,
33 base::TimeDelta delay) { 41 base::TimeDelta delay) {
34 return message_loop_->task_runner()->PostNonNestableDelayedTask(from_here, 42 return message_loop_task_runner_->PostNonNestableDelayedTask(from_here, task,
35 task, delay); 43 delay);
36 } 44 }
37 45
38 bool SchedulerMessageLoopDelegate::RunsTasksOnCurrentThread() const { 46 bool SchedulerMessageLoopDelegate::RunsTasksOnCurrentThread() const {
39 return message_loop_->task_runner()->RunsTasksOnCurrentThread(); 47 return message_loop_task_runner_->RunsTasksOnCurrentThread();
40 } 48 }
41 49
42 bool SchedulerMessageLoopDelegate::IsNested() const { 50 bool SchedulerMessageLoopDelegate::IsNested() const {
43 return message_loop_->IsNested(); 51 return message_loop_->IsNested();
44 } 52 }
45 53
46 void SchedulerMessageLoopDelegate::AddTaskObserver( 54 void SchedulerMessageLoopDelegate::AddTaskObserver(
47 base::MessageLoop::TaskObserver* task_observer) { 55 base::MessageLoop::TaskObserver* task_observer) {
48 return message_loop_->AddTaskObserver(task_observer); 56 return message_loop_->AddTaskObserver(task_observer);
49 } 57 }
50 58
51 void SchedulerMessageLoopDelegate::RemoveTaskObserver( 59 void SchedulerMessageLoopDelegate::RemoveTaskObserver(
52 base::MessageLoop::TaskObserver* task_observer) { 60 base::MessageLoop::TaskObserver* task_observer) {
53 return message_loop_->RemoveTaskObserver(task_observer); 61 return message_loop_->RemoveTaskObserver(task_observer);
54 } 62 }
55 63
56 } // namespace scheduler 64 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698