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

Side by Side Diff: components/scheduler/test/lazy_scheduler_message_loop_delegate_for_tests.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/test/lazy_scheduler_message_loop_delegate_for_tes ts.h" 5 #include "components/scheduler/test/lazy_scheduler_message_loop_delegate_for_tes ts.h"
6 6
7 namespace scheduler { 7 namespace scheduler {
8 8
9 // static 9 // static
10 scoped_refptr<LazySchedulerMessageLoopDelegateForTests> 10 scoped_refptr<LazySchedulerMessageLoopDelegateForTests>
(...skipping 15 matching lines...) Expand all
26 const { 26 const {
27 if (message_loop_) 27 if (message_loop_)
28 return message_loop_; 28 return message_loop_;
29 DCHECK(RunsTasksOnCurrentThread()); 29 DCHECK(RunsTasksOnCurrentThread());
30 message_loop_ = base::MessageLoop::current(); 30 message_loop_ = base::MessageLoop::current();
31 DCHECK(message_loop_); 31 DCHECK(message_loop_);
32 for (auto& observer : pending_observers_) { 32 for (auto& observer : pending_observers_) {
33 message_loop_->AddTaskObserver(observer); 33 message_loop_->AddTaskObserver(observer);
34 } 34 }
35 pending_observers_.clear(); 35 pending_observers_.clear();
36 if (pending_task_runner_)
37 message_loop_->SetTaskRunner(pending_task_runner_.Pass());
36 return message_loop_; 38 return message_loop_;
37 } 39 }
38 40
41 void LazySchedulerMessageLoopDelegateForTests::SetDefaultTaskRunner(
42 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
43 if (!HasMessageLoop()) {
44 pending_task_runner_ = task_runner.Pass();
45 return;
46 }
47 message_loop_->SetTaskRunner(task_runner.Pass());
48 }
49
39 bool LazySchedulerMessageLoopDelegateForTests::HasMessageLoop() const { 50 bool LazySchedulerMessageLoopDelegateForTests::HasMessageLoop() const {
40 return message_loop_ != nullptr; 51 return message_loop_ != nullptr;
41 } 52 }
42 53
43 bool LazySchedulerMessageLoopDelegateForTests::PostDelayedTask( 54 bool LazySchedulerMessageLoopDelegateForTests::PostDelayedTask(
44 const tracked_objects::Location& from_here, 55 const tracked_objects::Location& from_here,
45 const base::Closure& task, 56 const base::Closure& task,
46 base::TimeDelta delay) { 57 base::TimeDelta delay) {
47 return EnsureMessageLoop()->task_runner()->PostDelayedTask(from_here, task, 58 return EnsureMessageLoop()->task_runner()->PostDelayedTask(from_here, task,
48 delay); 59 delay);
(...skipping 28 matching lines...) Expand all
77 void LazySchedulerMessageLoopDelegateForTests::RemoveTaskObserver( 88 void LazySchedulerMessageLoopDelegateForTests::RemoveTaskObserver(
78 base::MessageLoop::TaskObserver* task_observer) { 89 base::MessageLoop::TaskObserver* task_observer) {
79 if (!HasMessageLoop()) { 90 if (!HasMessageLoop()) {
80 pending_observers_.erase(task_observer); 91 pending_observers_.erase(task_observer);
81 return; 92 return;
82 } 93 }
83 EnsureMessageLoop()->RemoveTaskObserver(task_observer); 94 EnsureMessageLoop()->RemoveTaskObserver(task_observer);
84 } 95 }
85 96
86 } // namespace scheduler 97 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698