| 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 |