| 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/base/pollable_thread_safe_flag.h" | 10 #include "components/scheduler/base/pollable_thread_safe_flag.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 namespace scheduler { | 27 namespace scheduler { |
| 28 class RenderWidgetSchedulingState; | 28 class RenderWidgetSchedulingState; |
| 29 | 29 |
| 30 class SCHEDULER_EXPORT RendererSchedulerImpl | 30 class SCHEDULER_EXPORT RendererSchedulerImpl |
| 31 : public RendererScheduler, | 31 : public RendererScheduler, |
| 32 public IdleHelper::Delegate, | 32 public IdleHelper::Delegate, |
| 33 public SchedulerHelper::Observer, | 33 public SchedulerHelper::Observer, |
| 34 public RenderWidgetSignals::Observer { | 34 public RenderWidgetSignals::Observer { |
| 35 public: | 35 public: |
| 36 RendererSchedulerImpl( | 36 RendererSchedulerImpl(scoped_refptr<SchedulerTqmDelegate> main_task_runner); |
| 37 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner); | |
| 38 ~RendererSchedulerImpl() override; | 37 ~RendererSchedulerImpl() override; |
| 39 | 38 |
| 40 // RendererScheduler implementation: | 39 // RendererScheduler implementation: |
| 41 scoped_refptr<TaskQueue> DefaultTaskRunner() override; | 40 scoped_refptr<TaskQueue> DefaultTaskRunner() override; |
| 42 scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() override; | 41 scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() override; |
| 43 scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; | 42 scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; |
| 44 scoped_refptr<base::SingleThreadTaskRunner> LoadingTaskRunner() override; | 43 scoped_refptr<base::SingleThreadTaskRunner> LoadingTaskRunner() override; |
| 45 scoped_refptr<TaskQueue> TimerTaskRunner() override; | 44 scoped_refptr<TaskQueue> TimerTaskRunner() override; |
| 46 scoped_refptr<TaskQueue> NewLoadingTaskRunner(const char* name) override; | 45 scoped_refptr<TaskQueue> NewLoadingTaskRunner(const char* name) override; |
| 47 scoped_refptr<TaskQueue> NewTimerTaskRunner(const char* name) override; | 46 scoped_refptr<TaskQueue> NewTimerTaskRunner(const char* name) override; |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 | 237 |
| 239 base::Closure update_policy_closure_; | 238 base::Closure update_policy_closure_; |
| 240 DeadlineTaskRunner delayed_update_policy_runner_; | 239 DeadlineTaskRunner delayed_update_policy_runner_; |
| 241 CancelableClosureHolder end_renderer_hidden_idle_period_closure_; | 240 CancelableClosureHolder end_renderer_hidden_idle_period_closure_; |
| 242 CancelableClosureHolder suspend_timers_when_backgrounded_closure_; | 241 CancelableClosureHolder suspend_timers_when_backgrounded_closure_; |
| 243 | 242 |
| 244 // We have decided to improve thread safety at the cost of some boilerplate | 243 // We have decided to improve thread safety at the cost of some boilerplate |
| 245 // (the accessors) for the following data members. | 244 // (the accessors) for the following data members. |
| 246 | 245 |
| 247 struct MainThreadOnly { | 246 struct MainThreadOnly { |
| 248 explicit MainThreadOnly( | 247 MainThreadOnly(const scoped_refptr<TaskQueue>& compositor_task_runner, |
| 249 const scoped_refptr<TaskQueue>& compositor_task_runner); | 248 base::TickClock* time_source); |
| 250 ~MainThreadOnly(); | 249 ~MainThreadOnly(); |
| 251 | 250 |
| 252 TaskCostEstimator loading_task_cost_estimator; | 251 TaskCostEstimator loading_task_cost_estimator; |
| 253 TaskCostEstimator timer_task_cost_estimator; | 252 TaskCostEstimator timer_task_cost_estimator; |
| 254 IdleTimeEstimator idle_time_estimator; | 253 IdleTimeEstimator idle_time_estimator; |
| 255 UseCase current_use_case; | 254 UseCase current_use_case; |
| 256 Policy current_policy; | 255 Policy current_policy; |
| 257 base::TimeTicks current_policy_expiration_time; | 256 base::TimeTicks current_policy_expiration_time; |
| 258 base::TimeTicks estimated_next_frame_begin; | 257 base::TimeTicks estimated_next_frame_begin; |
| 259 base::TimeDelta compositor_frame_interval; | 258 base::TimeDelta compositor_frame_interval; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 | 332 |
| 334 PollableThreadSafeFlag policy_may_need_update_; | 333 PollableThreadSafeFlag policy_may_need_update_; |
| 335 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; | 334 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; |
| 336 | 335 |
| 337 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); | 336 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); |
| 338 }; | 337 }; |
| 339 | 338 |
| 340 } // namespace scheduler | 339 } // namespace scheduler |
| 341 | 340 |
| 342 #endif // COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ | 341 #endif // COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ |
| OLD | NEW |