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