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 #ifndef COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ | 5 #ifndef COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ |
6 #define COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ | 6 #define COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ |
7 | 7 |
8 #include "base/atomicops.h" | 8 #include "base/atomicops.h" |
9 #include "base/synchronization/lock.h" | 9 #include "base/synchronization/lock.h" |
10 #include "components/scheduler/child/idle_helper.h" | 10 #include "components/scheduler/child/idle_helper.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 namespace scheduler { | 23 namespace scheduler { |
24 | 24 |
25 class SCHEDULER_EXPORT RendererSchedulerImpl : public RendererScheduler, | 25 class SCHEDULER_EXPORT RendererSchedulerImpl : public RendererScheduler, |
26 public IdleHelper::Delegate { | 26 public IdleHelper::Delegate { |
27 public: | 27 public: |
28 RendererSchedulerImpl( | 28 RendererSchedulerImpl( |
29 scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner); | 29 scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner); |
30 ~RendererSchedulerImpl() override; | 30 ~RendererSchedulerImpl() override; |
31 | 31 |
32 // RendererScheduler implementation: | 32 // RendererScheduler implementation: |
33 scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override; | 33 scoped_refptr<TaskQueue> DefaultTaskRunner() override; |
34 scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() override; | 34 scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() override; |
35 scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; | 35 scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; |
36 scoped_refptr<base::SingleThreadTaskRunner> LoadingTaskRunner() override; | 36 scoped_refptr<base::SingleThreadTaskRunner> LoadingTaskRunner() override; |
37 scoped_refptr<base::SingleThreadTaskRunner> TimerTaskRunner() override; | 37 scoped_refptr<TaskQueue> TimerTaskRunner() override; |
38 void WillBeginFrame(const cc::BeginFrameArgs& args) override; | 38 void WillBeginFrame(const cc::BeginFrameArgs& args) override; |
39 void BeginFrameNotExpectedSoon() override; | 39 void BeginFrameNotExpectedSoon() override; |
40 void DidCommitFrameToCompositor() override; | 40 void DidCommitFrameToCompositor() override; |
41 void DidHandleInputEventOnCompositorThread( | 41 void DidHandleInputEventOnCompositorThread( |
42 const blink::WebInputEvent& web_input_event, | 42 const blink::WebInputEvent& web_input_event, |
43 InputEventState event_state) override; | 43 InputEventState event_state) override; |
44 void DidHandleInputEventOnMainThread( | 44 void DidHandleInputEventOnMainThread( |
45 const blink::WebInputEvent& web_input_event) override; | 45 const blink::WebInputEvent& web_input_event) override; |
46 void DidAnimateForInputOnCompositorThread() override; | 46 void DidAnimateForInputOnCompositorThread() override; |
47 void OnRendererHidden() override; | 47 void OnRendererHidden() override; |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 // Returns true if there has been at least one idle period in the last | 192 // Returns true if there has been at least one idle period in the last |
193 // |kIdlePeriodStarvationThresholdMillis|. | 193 // |kIdlePeriodStarvationThresholdMillis|. |
194 bool HadAnIdlePeriodRecently(base::TimeTicks now) const; | 194 bool HadAnIdlePeriodRecently(base::TimeTicks now) const; |
195 | 195 |
196 SchedulerHelper helper_; | 196 SchedulerHelper helper_; |
197 IdleHelper idle_helper_; | 197 IdleHelper idle_helper_; |
198 | 198 |
199 const scoped_refptr<base::SingleThreadTaskRunner> control_task_runner_; | 199 const scoped_refptr<base::SingleThreadTaskRunner> control_task_runner_; |
200 const scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; | 200 const scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; |
201 const scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_; | 201 const scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_; |
202 const scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner_; | 202 const scoped_refptr<TaskQueue> timer_task_runner_; |
203 | 203 |
204 base::Closure update_policy_closure_; | 204 base::Closure update_policy_closure_; |
205 DeadlineTaskRunner delayed_update_policy_runner_; | 205 DeadlineTaskRunner delayed_update_policy_runner_; |
206 CancelableClosureHolder end_renderer_hidden_idle_period_closure_; | 206 CancelableClosureHolder end_renderer_hidden_idle_period_closure_; |
207 | 207 |
208 // We have decided to improve thread safety at the cost of some boilerplate | 208 // We have decided to improve thread safety at the cost of some boilerplate |
209 // (the accessors) for the following data members. | 209 // (the accessors) for the following data members. |
210 | 210 |
211 struct MainThreadOnly { | 211 struct MainThreadOnly { |
212 MainThreadOnly(); | 212 MainThreadOnly(); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 | 281 |
282 PollableThreadSafeFlag policy_may_need_update_; | 282 PollableThreadSafeFlag policy_may_need_update_; |
283 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; | 283 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; |
284 | 284 |
285 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); | 285 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); |
286 }; | 286 }; |
287 | 287 |
288 } // namespace scheduler | 288 } // namespace scheduler |
289 | 289 |
290 #endif // COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ | 290 #endif // COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ |
OLD | NEW |