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 THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDULER
_IMPL_H_ | 5 #ifndef THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDULER
_IMPL_H_ |
6 #define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDULER
_IMPL_H_ | 6 #define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDULER
_IMPL_H_ |
7 | 7 |
8 #include "base/atomicops.h" | 8 #include "base/atomicops.h" |
9 #include "base/gtest_prod_util.h" | 9 #include "base/gtest_prod_util.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 // Returns a new timer task queue. This queue is intended for DOM Timers. | 152 // Returns a new timer task queue. This queue is intended for DOM Timers. |
153 scoped_refptr<TaskQueue> NewTimerTaskQueue(TaskQueue::QueueType queue_type); | 153 scoped_refptr<TaskQueue> NewTimerTaskQueue(TaskQueue::QueueType queue_type); |
154 | 154 |
155 // Returns a task queue for tasks which should never get throttled. | 155 // Returns a task queue for tasks which should never get throttled. |
156 scoped_refptr<TaskQueue> NewUnthrottledTaskQueue( | 156 scoped_refptr<TaskQueue> NewUnthrottledTaskQueue( |
157 TaskQueue::QueueType queue_type); | 157 TaskQueue::QueueType queue_type); |
158 | 158 |
159 // Returns a task queue where tasks run at the highest possible priority. | 159 // Returns a task queue where tasks run at the highest possible priority. |
160 scoped_refptr<TaskQueue> ControlTaskQueue(); | 160 scoped_refptr<TaskQueue> ControlTaskQueue(); |
161 | 161 |
| 162 // A control task queue which also respects virtual time. Only available if |
| 163 // virtual time has been enabled. |
| 164 scoped_refptr<TaskQueue> VirtualTimeControlTaskQueue(); |
| 165 |
162 void RegisterTimeDomain(TimeDomain* time_domain); | 166 void RegisterTimeDomain(TimeDomain* time_domain); |
163 void UnregisterTimeDomain(TimeDomain* time_domain); | 167 void UnregisterTimeDomain(TimeDomain* time_domain); |
164 | 168 |
165 // Tells the scheduler that all TaskQueues should use virtual time. | 169 // Tells the scheduler that all TaskQueues should use virtual time. |
166 void EnableVirtualTime(); | 170 void EnableVirtualTime(); |
167 | 171 |
168 // Migrates all task queues to real time. | 172 // Migrates all task queues to real time. |
169 void DisableVirtualTimeForTesting(); | 173 void DisableVirtualTimeForTesting(); |
170 | 174 |
171 void AddWebViewScheduler(WebViewSchedulerImpl* web_view_scheduler); | 175 void AddWebViewScheduler(WebViewSchedulerImpl* web_view_scheduler); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 bool ShouldDisableThrottlingBecauseOfAudio(base::TimeTicks now); | 399 bool ShouldDisableThrottlingBecauseOfAudio(base::TimeTicks now); |
396 | 400 |
397 SchedulerHelper helper_; | 401 SchedulerHelper helper_; |
398 IdleHelper idle_helper_; | 402 IdleHelper idle_helper_; |
399 IdleCanceledDelayedTaskSweeper idle_canceled_delayed_task_sweeper_; | 403 IdleCanceledDelayedTaskSweeper idle_canceled_delayed_task_sweeper_; |
400 std::unique_ptr<TaskQueueThrottler> task_queue_throttler_; | 404 std::unique_ptr<TaskQueueThrottler> task_queue_throttler_; |
401 RenderWidgetSignals render_widget_scheduler_signals_; | 405 RenderWidgetSignals render_widget_scheduler_signals_; |
402 | 406 |
403 const scoped_refptr<TaskQueue> control_task_queue_; | 407 const scoped_refptr<TaskQueue> control_task_queue_; |
404 const scoped_refptr<TaskQueue> compositor_task_queue_; | 408 const scoped_refptr<TaskQueue> compositor_task_queue_; |
| 409 scoped_refptr<TaskQueue> virtual_time_control_task_queue_; |
405 std::unique_ptr<TaskQueue::QueueEnabledVoter> | 410 std::unique_ptr<TaskQueue::QueueEnabledVoter> |
406 compositor_task_queue_enabled_voter_; | 411 compositor_task_queue_enabled_voter_; |
407 | 412 |
408 using TaskQueueVoterMap = | 413 using TaskQueueVoterMap = |
409 std::map<scoped_refptr<TaskQueue>, | 414 std::map<scoped_refptr<TaskQueue>, |
410 std::unique_ptr<TaskQueue::QueueEnabledVoter>>; | 415 std::unique_ptr<TaskQueue::QueueEnabledVoter>>; |
411 | 416 |
412 TaskQueueVoterMap loading_task_runners_; | 417 TaskQueueVoterMap loading_task_runners_; |
413 TaskQueueVoterMap timer_task_runners_; | 418 TaskQueueVoterMap timer_task_runners_; |
414 std::set<scoped_refptr<TaskQueue>> unthrottled_task_runners_; | 419 std::set<scoped_refptr<TaskQueue>> unthrottled_task_runners_; |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 | 550 |
546 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; | 551 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; |
547 | 552 |
548 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); | 553 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); |
549 }; | 554 }; |
550 | 555 |
551 } // namespace scheduler | 556 } // namespace scheduler |
552 } // namespace blink | 557 } // namespace blink |
553 | 558 |
554 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDU
LER_IMPL_H_ | 559 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDU
LER_IMPL_H_ |
OLD | NEW |