Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: components/scheduler/renderer/renderer_scheduler_impl.cc

Issue 1223163006: Implement PostDelayedTaskAt for guaranteed timer ordering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing include to IdleHelperTest. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « components/scheduler/renderer/renderer_scheduler_impl.h ('k') | components/scheduler/renderer/renderer_web_scheduler_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698