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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 void OnNavigationStarted() override; | 116 void OnNavigationStarted() override; |
117 bool IsHighPriorityWorkAnticipated() override; | 117 bool IsHighPriorityWorkAnticipated() override; |
118 bool ShouldYieldForHighPriorityWork() override; | 118 bool ShouldYieldForHighPriorityWork() override; |
119 bool CanExceedIdleDeadlineIfRequired() const override; | 119 bool CanExceedIdleDeadlineIfRequired() const override; |
120 void AddTaskObserver(base::MessageLoop::TaskObserver* task_observer) override; | 120 void AddTaskObserver(base::MessageLoop::TaskObserver* task_observer) override; |
121 void RemoveTaskObserver( | 121 void RemoveTaskObserver( |
122 base::MessageLoop::TaskObserver* task_observer) override; | 122 base::MessageLoop::TaskObserver* task_observer) override; |
123 void Shutdown() override; | 123 void Shutdown() override; |
124 void SuspendTimerQueue() override; | 124 void SuspendTimerQueue() override; |
125 void ResumeTimerQueue() override; | 125 void ResumeTimerQueue() override; |
126 void SetTimerQueueSuspensionWhenBackgroundedEnabled(bool enabled) override; | |
127 void SetTopLevelBlameContext( | 126 void SetTopLevelBlameContext( |
128 base::trace_event::BlameContext* blame_context) override; | 127 base::trace_event::BlameContext* blame_context) override; |
129 void SetRAILModeObserver(RAILModeObserver* observer) override; | 128 void SetRAILModeObserver(RAILModeObserver* observer) override; |
130 bool MainThreadSeemsUnresponsive() override; | 129 bool MainThreadSeemsUnresponsive() override; |
131 | 130 |
132 // RenderWidgetSignals::Observer implementation: | 131 // RenderWidgetSignals::Observer implementation: |
133 void SetAllRenderWidgetsHidden(bool hidden) override; | 132 void SetAllRenderWidgetsHidden(bool hidden) override; |
134 void SetHasVisibleRenderWidgetWithTouchHandler( | 133 void SetHasVisibleRenderWidgetWithTouchHandler( |
135 bool has_visible_render_widget_with_touch_handler) override; | 134 bool has_visible_render_widget_with_touch_handler) override; |
136 | 135 |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 static bool ShouldPrioritizeInputEvent(const WebInputEvent& web_input_event); | 292 static bool ShouldPrioritizeInputEvent(const WebInputEvent& web_input_event); |
294 | 293 |
295 // The amount of time which idle periods can continue being scheduled when the | 294 // The amount of time which idle periods can continue being scheduled when the |
296 // renderer has been hidden, before going to sleep for good. | 295 // renderer has been hidden, before going to sleep for good. |
297 static const int kEndIdleWhenHiddenDelayMillis = 10000; | 296 static const int kEndIdleWhenHiddenDelayMillis = 10000; |
298 | 297 |
299 // The amount of time in milliseconds we have to respond to user input as | 298 // The amount of time in milliseconds we have to respond to user input as |
300 // defined by RAILS. | 299 // defined by RAILS. |
301 static const int kRailsResponseTimeMillis = 50; | 300 static const int kRailsResponseTimeMillis = 50; |
302 | 301 |
303 // The amount of time to wait before suspending shared timers after the | |
304 // renderer has been backgrounded. This is used only if background suspension | |
305 // of shared timers is enabled. | |
306 static const int kSuspendTimersWhenBackgroundedDelayMillis = 5 * 60 * 1000; | |
307 | |
308 // The time we should stay in a priority-escalated mode after a call to | 302 // The time we should stay in a priority-escalated mode after a call to |
309 // DidAnimateForInputOnCompositorThread(). | 303 // DidAnimateForInputOnCompositorThread(). |
310 static const int kFlingEscalationLimitMillis = 100; | 304 static const int kFlingEscalationLimitMillis = 100; |
311 | 305 |
312 // Schedules an immediate PolicyUpdate, if there isn't one already pending and | 306 // Schedules an immediate PolicyUpdate, if there isn't one already pending and |
313 // sets |policy_may_need_update_|. Note |any_thread_lock_| must be | 307 // sets |policy_may_need_update_|. Note |any_thread_lock_| must be |
314 // locked. | 308 // locked. |
315 void EnsureUrgentPolicyUpdatePostedOnMainThread( | 309 void EnsureUrgentPolicyUpdatePostedOnMainThread( |
316 const tracked_objects::Location& from_here); | 310 const tracked_objects::Location& from_here); |
317 | 311 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 std::set<scoped_refptr<TaskQueue>> unthrottled_task_runners_; | 389 std::set<scoped_refptr<TaskQueue>> unthrottled_task_runners_; |
396 scoped_refptr<TaskQueue> default_loading_task_runner_; | 390 scoped_refptr<TaskQueue> default_loading_task_runner_; |
397 scoped_refptr<TaskQueue> default_timer_task_runner_; | 391 scoped_refptr<TaskQueue> default_timer_task_runner_; |
398 | 392 |
399 // Note |virtual_time_domain_| is lazily created. | 393 // Note |virtual_time_domain_| is lazily created. |
400 std::unique_ptr<AutoAdvancingVirtualTimeDomain> virtual_time_domain_; | 394 std::unique_ptr<AutoAdvancingVirtualTimeDomain> virtual_time_domain_; |
401 | 395 |
402 base::Closure update_policy_closure_; | 396 base::Closure update_policy_closure_; |
403 DeadlineTaskRunner delayed_update_policy_runner_; | 397 DeadlineTaskRunner delayed_update_policy_runner_; |
404 CancelableClosureHolder end_renderer_hidden_idle_period_closure_; | 398 CancelableClosureHolder end_renderer_hidden_idle_period_closure_; |
405 CancelableClosureHolder suspend_timers_when_backgrounded_closure_; | |
406 | 399 |
407 using SeqLockQueueingTimeEstimator = | 400 using SeqLockQueueingTimeEstimator = |
408 device::SharedMemorySeqLockBuffer<QueueingTimeEstimator>; | 401 device::SharedMemorySeqLockBuffer<QueueingTimeEstimator>; |
409 | 402 |
410 SeqLockQueueingTimeEstimator seqlock_queueing_time_estimator_; | 403 SeqLockQueueingTimeEstimator seqlock_queueing_time_estimator_; |
411 | 404 |
412 // We have decided to improve thread safety at the cost of some boilerplate | 405 // We have decided to improve thread safety at the cost of some boilerplate |
413 // (the accessors) for the following data members. | 406 // (the accessors) for the following data members. |
414 | 407 |
415 struct MainThreadOnly { | 408 struct MainThreadOnly { |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 | 522 |
530 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; | 523 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; |
531 | 524 |
532 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); | 525 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); |
533 }; | 526 }; |
534 | 527 |
535 } // namespace scheduler | 528 } // namespace scheduler |
536 } // namespace blink | 529 } // namespace blink |
537 | 530 |
538 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDU
LER_IMPL_H_ | 531 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDU
LER_IMPL_H_ |
OLD | NEW |