OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/renderer/renderer_scheduler_impl.h" | 5 #include "components/scheduler/renderer/renderer_scheduler_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/debug/stack_trace.h" | 8 #include "base/debug/stack_trace.h" |
9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
10 #include "base/trace_event/trace_event_argument.h" | 10 #include "base/trace_event/trace_event_argument.h" |
11 #include "cc/output/begin_frame_args.h" | 11 #include "cc/output/begin_frame_args.h" |
12 #include "components/scheduler/child/nestable_single_thread_task_runner.h" | 12 #include "components/scheduler/child/nestable_single_thread_task_runner.h" |
13 #include "components/scheduler/child/prioritizing_task_queue_selector.h" | 13 #include "components/scheduler/child/prioritizing_task_queue_selector.h" |
| 14 #include "components/scheduler/child/task_queue.h" |
14 | 15 |
15 namespace scheduler { | 16 namespace scheduler { |
16 | 17 |
17 RendererSchedulerImpl::RendererSchedulerImpl( | 18 RendererSchedulerImpl::RendererSchedulerImpl( |
18 scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner) | 19 scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner) |
19 : helper_(main_task_runner, | 20 : helper_(main_task_runner, |
20 "renderer.scheduler", | 21 "renderer.scheduler", |
21 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), | 22 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), |
22 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug"), | 23 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug"), |
23 TASK_QUEUE_COUNT), | 24 TASK_QUEUE_COUNT), |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 } | 83 } |
83 | 84 |
84 RendererSchedulerImpl::CompositorThreadOnly::~CompositorThreadOnly() { | 85 RendererSchedulerImpl::CompositorThreadOnly::~CompositorThreadOnly() { |
85 } | 86 } |
86 | 87 |
87 void RendererSchedulerImpl::Shutdown() { | 88 void RendererSchedulerImpl::Shutdown() { |
88 helper_.Shutdown(); | 89 helper_.Shutdown(); |
89 MainThreadOnly().was_shutdown_ = true; | 90 MainThreadOnly().was_shutdown_ = true; |
90 } | 91 } |
91 | 92 |
92 scoped_refptr<base::SingleThreadTaskRunner> | 93 scoped_refptr<TaskQueue> RendererSchedulerImpl::DefaultTaskRunner() { |
93 RendererSchedulerImpl::DefaultTaskRunner() { | |
94 return helper_.DefaultTaskRunner(); | 94 return helper_.DefaultTaskRunner(); |
95 } | 95 } |
96 | 96 |
97 scoped_refptr<base::SingleThreadTaskRunner> | 97 scoped_refptr<base::SingleThreadTaskRunner> |
98 RendererSchedulerImpl::CompositorTaskRunner() { | 98 RendererSchedulerImpl::CompositorTaskRunner() { |
99 helper_.CheckOnValidThread(); | 99 helper_.CheckOnValidThread(); |
100 return compositor_task_runner_; | 100 return compositor_task_runner_; |
101 } | 101 } |
102 | 102 |
103 scoped_refptr<SingleThreadIdleTaskRunner> | 103 scoped_refptr<SingleThreadIdleTaskRunner> |
104 RendererSchedulerImpl::IdleTaskRunner() { | 104 RendererSchedulerImpl::IdleTaskRunner() { |
105 return idle_helper_.IdleTaskRunner(); | 105 return idle_helper_.IdleTaskRunner(); |
106 } | 106 } |
107 | 107 |
108 scoped_refptr<base::SingleThreadTaskRunner> | 108 scoped_refptr<base::SingleThreadTaskRunner> |
109 RendererSchedulerImpl::LoadingTaskRunner() { | 109 RendererSchedulerImpl::LoadingTaskRunner() { |
110 helper_.CheckOnValidThread(); | 110 helper_.CheckOnValidThread(); |
111 return loading_task_runner_; | 111 return loading_task_runner_; |
112 } | 112 } |
113 | 113 |
114 scoped_refptr<base::SingleThreadTaskRunner> | 114 scoped_refptr<TaskQueue> RendererSchedulerImpl::TimerTaskRunner() { |
115 RendererSchedulerImpl::TimerTaskRunner() { | |
116 helper_.CheckOnValidThread(); | 115 helper_.CheckOnValidThread(); |
117 return timer_task_runner_; | 116 return timer_task_runner_; |
118 } | 117 } |
119 | 118 |
120 bool RendererSchedulerImpl::CanExceedIdleDeadlineIfRequired() const { | 119 bool RendererSchedulerImpl::CanExceedIdleDeadlineIfRequired() const { |
121 return idle_helper_.CanExceedIdleDeadlineIfRequired(); | 120 return idle_helper_.CanExceedIdleDeadlineIfRequired(); |
122 } | 121 } |
123 | 122 |
124 void RendererSchedulerImpl::AddTaskObserver( | 123 void RendererSchedulerImpl::AddTaskObserver( |
125 base::MessageLoop::TaskObserver* task_observer) { | 124 base::MessageLoop::TaskObserver* task_observer) { |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
699 UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED); | 698 UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED); |
700 } | 699 } |
701 | 700 |
702 bool RendererSchedulerImpl::HadAnIdlePeriodRecently(base::TimeTicks now) const { | 701 bool RendererSchedulerImpl::HadAnIdlePeriodRecently(base::TimeTicks now) const { |
703 return (now - AnyThread().last_idle_period_end_time_) <= | 702 return (now - AnyThread().last_idle_period_end_time_) <= |
704 base::TimeDelta::FromMilliseconds( | 703 base::TimeDelta::FromMilliseconds( |
705 kIdlePeriodStarvationThresholdMillis); | 704 kIdlePeriodStarvationThresholdMillis); |
706 } | 705 } |
707 | 706 |
708 } // namespace scheduler | 707 } // namespace scheduler |
OLD | NEW |