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

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

Issue 1314903007: Implement WebFrameScheduler and WebPageScheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Responding to feedback Created 5 years, 3 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_helper.h" 5 #include "components/scheduler/child/scheduler_helper.h"
6 6
7 #include "base/time/default_tick_clock.h" 7 #include "base/time/default_tick_clock.h"
8 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 #include "base/trace_event/trace_event_argument.h" 9 #include "base/trace_event/trace_event_argument.h"
10 #include "components/scheduler/child/scheduler_task_runner_delegate.h" 10 #include "components/scheduler/child/scheduler_task_runner_delegate.h"
11 #include "components/scheduler/child/task_queue_impl.h" 11 #include "components/scheduler/child/task_queue_impl.h"
12 12
13 namespace scheduler { 13 namespace scheduler {
14 14
15 SchedulerHelper::SchedulerHelper( 15 SchedulerHelper::SchedulerHelper(
16 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner, 16 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner,
17 const char* tracing_category, 17 const char* tracing_category,
18 const char* disabled_by_default_tracing_category, 18 const char* disabled_by_default_tracing_category,
19 const char* disabled_by_default_verbose_tracing_category) 19 const char* disabled_by_default_verbose_tracing_category)
20 : main_task_runner_(main_task_runner), 20 : main_task_runner_(main_task_runner),
21 task_queue_manager_( 21 task_queue_manager_(
22 new TaskQueueManager(main_task_runner, 22 new TaskQueueManager(main_task_runner,
23 disabled_by_default_tracing_category, 23 disabled_by_default_tracing_category,
24 disabled_by_default_verbose_tracing_category)), 24 disabled_by_default_verbose_tracing_category)),
25 control_task_runner_(NewTaskQueue( 25 control_task_runner_(NewTaskQueue(
26 TaskQueue::Spec("control_tq") 26 TaskQueue::Spec("control_tq")
27 .SetWakeupPolicy( 27 .SetWakeupPolicy(TaskQueue::WakeupPolicy::DONT_WAKE_OTHER_QUEUES)
28 TaskQueue::WakeupPolicy::DONT_WAKE_OTHER_QUEUES)
29 .SetShouldNotifyObservers(false))), 28 .SetShouldNotifyObservers(false))),
30 control_after_wakeup_task_runner_(NewTaskQueue( 29 control_after_wakeup_task_runner_(NewTaskQueue(
31 TaskQueue::Spec("control_after_wakeup_tq") 30 TaskQueue::Spec("control_after_wakeup_tq")
32 .SetPumpPolicy(TaskQueue::PumpPolicy::AFTER_WAKEUP) 31 .SetPumpPolicy(TaskQueue::PumpPolicy::AFTER_WAKEUP)
33 .SetWakeupPolicy( 32 .SetWakeupPolicy(TaskQueue::WakeupPolicy::DONT_WAKE_OTHER_QUEUES)
34 TaskQueue::WakeupPolicy::DONT_WAKE_OTHER_QUEUES)
35 .SetShouldNotifyObservers(false))), 33 .SetShouldNotifyObservers(false))),
36 default_task_runner_(NewTaskQueue(TaskQueue::Spec("default_tq") 34 default_task_runner_(NewTaskQueue(TaskQueue::Spec("default_tq")
37 .SetShouldMonitorQuiescence(true))), 35 .SetShouldMonitorQuiescence(true))),
38 time_source_(new base::DefaultTickClock), 36 time_source_(new base::DefaultTickClock),
37 queue_observer_(nullptr),
39 tracing_category_(tracing_category), 38 tracing_category_(tracing_category),
40 disabled_by_default_tracing_category_( 39 disabled_by_default_tracing_category_(
41 disabled_by_default_tracing_category) { 40 disabled_by_default_tracing_category) {
42 control_task_runner_->SetQueuePriority(TaskQueue::CONTROL_PRIORITY); 41 control_task_runner_->SetQueuePriority(TaskQueue::CONTROL_PRIORITY);
43 control_after_wakeup_task_runner_->SetQueuePriority( 42 control_after_wakeup_task_runner_->SetQueuePriority(
44 TaskQueue::CONTROL_PRIORITY); 43 TaskQueue::CONTROL_PRIORITY);
45 44
46 task_queue_manager_->SetWorkBatchSize(4); 45 task_queue_manager_->SetWorkBatchSize(4);
47 46
48 main_task_runner_->SetDefaultTaskRunner(default_task_runner_.get()); 47 main_task_runner_->SetDefaultTaskRunner(default_task_runner_.get());
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 task_queue_manager_->AddTaskObserver(task_observer); 116 task_queue_manager_->AddTaskObserver(task_observer);
118 } 117 }
119 118
120 void SchedulerHelper::RemoveTaskObserver( 119 void SchedulerHelper::RemoveTaskObserver(
121 base::MessageLoop::TaskObserver* task_observer) { 120 base::MessageLoop::TaskObserver* task_observer) {
122 CheckOnValidThread(); 121 CheckOnValidThread();
123 if (task_queue_manager_) 122 if (task_queue_manager_)
124 task_queue_manager_->RemoveTaskObserver(task_observer); 123 task_queue_manager_->RemoveTaskObserver(task_observer);
125 } 124 }
126 125
126 void SchedulerHelper::SetQueueObserver(Observer* observer) {
127 CheckOnValidThread();
128 queue_observer_ = observer;
129 DCHECK(task_queue_manager_);
130 task_queue_manager_->SetQueueObserver(this);
131 }
132
133 void SchedulerHelper::OnUnregisterTaskQueue(
134 const scoped_refptr<internal::TaskQueueImpl>& queue) {
135 if (queue_observer_)
136 queue_observer_->OnUnregisterTaskQueue(queue);
137 }
138
127 } // namespace scheduler 139 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698