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

Side by Side Diff: content/child/scheduler/scheduler_helper.h

Issue 1098033002: Remove dependency on cc::TestNowSource from scheduler code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 5 years, 8 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
« no previous file with comments | « no previous file | content/child/scheduler/scheduler_helper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 CONTENT_CHILD_SCHEDULER_SCHEDULER_HELPER_H_ 5 #ifndef CONTENT_CHILD_SCHEDULER_SCHEDULER_HELPER_H_
6 #define CONTENT_CHILD_SCHEDULER_SCHEDULER_HELPER_H_ 6 #define CONTENT_CHILD_SCHEDULER_SCHEDULER_HELPER_H_
7 7
8 #include "cc/test/test_now_source.h"
9 #include "content/child/scheduler/cancelable_closure_holder.h" 8 #include "content/child/scheduler/cancelable_closure_holder.h"
10 #include "content/child/scheduler/single_thread_idle_task_runner.h" 9 #include "content/child/scheduler/single_thread_idle_task_runner.h"
11 #include "content/child/scheduler/task_queue_manager.h" 10 #include "content/child/scheduler/task_queue_manager.h"
11 #include "content/child/scheduler/time_source.h"
12 12
13 namespace content { 13 namespace content {
14 14
15 class PrioritizingTaskQueueSelector; 15 class PrioritizingTaskQueueSelector;
16 class NestableSingleThreadTaskRunner; 16 class NestableSingleThreadTaskRunner;
17 17
18 // Common scheduler functionality for Default and Idle tasks. 18 // Common scheduler functionality for Default and Idle tasks.
19 class CONTENT_EXPORT SchedulerHelper { 19 class CONTENT_EXPORT SchedulerHelper {
20 public: 20 public:
21 // Used to by scheduler implementations to customize idle behaviour. 21 // Used to by scheduler implementations to customize idle behaviour.
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 // Accessor methods. 158 // Accessor methods.
159 base::TimeTicks Now() const; 159 base::TimeTicks Now() const;
160 IdlePeriodState SchedulerIdlePeriodState() const; 160 IdlePeriodState SchedulerIdlePeriodState() const;
161 PrioritizingTaskQueueSelector* SchedulerTaskQueueSelector() const; 161 PrioritizingTaskQueueSelector* SchedulerTaskQueueSelector() const;
162 scoped_refptr<base::SingleThreadTaskRunner> TaskRunnerForQueue( 162 scoped_refptr<base::SingleThreadTaskRunner> TaskRunnerForQueue(
163 size_t queue_index) const; 163 size_t queue_index) const;
164 void SetQueueName(size_t queue_index, const char* name); 164 void SetQueueName(size_t queue_index, const char* name);
165 bool IsQueueEmpty(size_t queue_index) const; 165 bool IsQueueEmpty(size_t queue_index) const;
166 166
167 // Test helpers. 167 // Test helpers.
168 void SetTimeSourceForTesting(scoped_refptr<cc::TestNowSource> time_source); 168 void SetTimeSourceForTesting(scoped_ptr<TimeSource> time_source);
169 void SetWorkBatchSizeForTesting(size_t work_batch_size); 169 void SetWorkBatchSizeForTesting(size_t work_batch_size);
170 TaskQueueManager* GetTaskQueueManagerForTesting();
170 171
171 private: 172 private:
172 friend class SchedulerHelperTest; 173 friend class SchedulerHelperTest;
173 174
174 bool ShouldWaitForQuiescence(); 175 bool ShouldWaitForQuiescence();
175 void EnableLongIdlePeriodAfterWakeup(); 176 void EnableLongIdlePeriodAfterWakeup();
176 177
177 base::ThreadChecker thread_checker_; 178 base::ThreadChecker thread_checker_;
178 scoped_ptr<PrioritizingTaskQueueSelector> task_queue_selector_; 179 scoped_ptr<PrioritizingTaskQueueSelector> task_queue_selector_;
179 scoped_ptr<TaskQueueManager> task_queue_manager_; 180 scoped_ptr<TaskQueueManager> task_queue_manager_;
180 181
181 CancelableClosureHolder end_idle_period_closure_; 182 CancelableClosureHolder end_idle_period_closure_;
182 CancelableClosureHolder enable_next_long_idle_period_closure_; 183 CancelableClosureHolder enable_next_long_idle_period_closure_;
183 CancelableClosureHolder enable_next_long_idle_period_after_wakeup_closure_; 184 CancelableClosureHolder enable_next_long_idle_period_after_wakeup_closure_;
184 185
185 IdlePeriodState idle_period_state_; 186 IdlePeriodState idle_period_state_;
186 SchedulerHelperDelegate* scheduler_helper_delegate_; // NOT OWNED 187 SchedulerHelperDelegate* scheduler_helper_delegate_; // NOT OWNED
187 188
188 scoped_refptr<base::SingleThreadTaskRunner> control_task_runner_; 189 scoped_refptr<base::SingleThreadTaskRunner> control_task_runner_;
189 scoped_refptr<base::SingleThreadTaskRunner> control_task_after_wakeup_runner_; 190 scoped_refptr<base::SingleThreadTaskRunner> control_task_after_wakeup_runner_;
190 scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_; 191 scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_;
191 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_; 192 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_;
192 193
193 // A bitmap which controls the set of queues that are checked for quiescence 194 // A bitmap which controls the set of queues that are checked for quiescence
194 // before triggering a long idle period. 195 // before triggering a long idle period.
195 uint64 quiescence_monitored_task_queue_mask_; 196 uint64 quiescence_monitored_task_queue_mask_;
196 base::TimeDelta required_quiescence_duration_before_long_idle_period_; 197 base::TimeDelta required_quiescence_duration_before_long_idle_period_;
197 198
198 base::TimeTicks idle_period_deadline_; 199 base::TimeTicks idle_period_deadline_;
199 scoped_refptr<cc::TestNowSource> time_source_; 200 scoped_ptr<TimeSource> time_source_;
200 201
201 const char* tracing_category_; 202 const char* tracing_category_;
202 const char* disabled_by_default_tracing_category_; 203 const char* disabled_by_default_tracing_category_;
203 const char* idle_period_tracing_name_; 204 const char* idle_period_tracing_name_;
204 205
205 base::WeakPtr<SchedulerHelper> weak_scheduler_ptr_; 206 base::WeakPtr<SchedulerHelper> weak_scheduler_ptr_;
206 base::WeakPtrFactory<SchedulerHelper> weak_factory_; 207 base::WeakPtrFactory<SchedulerHelper> weak_factory_;
207 208
208 DISALLOW_COPY_AND_ASSIGN(SchedulerHelper); 209 DISALLOW_COPY_AND_ASSIGN(SchedulerHelper);
209 }; 210 };
210 211
211 } // namespace content 212 } // namespace content
212 213
213 #endif // CONTENT_CHILD_SCHEDULER_SCHEDULER_HELPER_H_ 214 #endif // CONTENT_CHILD_SCHEDULER_SCHEDULER_HELPER_H_
OLDNEW
« no previous file with comments | « no previous file | content/child/scheduler/scheduler_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698