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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h

Issue 2266883002: scheduler: Reset gesture state at start of a mouse drag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Typo fix Created 4 years, 3 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 | third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.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 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/macros.h" 9 #include "base/macros.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 static const int kEndIdleWhenHiddenDelayMillis = 10000; 258 static const int kEndIdleWhenHiddenDelayMillis = 10000;
259 259
260 // The amount of time for which loading tasks will be prioritized over 260 // The amount of time for which loading tasks will be prioritized over
261 // other tasks during the initial page load. 261 // other tasks during the initial page load.
262 static const int kRailsInitialLoadingPrioritizationMillis = 1000; 262 static const int kRailsInitialLoadingPrioritizationMillis = 1000;
263 263
264 // The amount of time in milliseconds we have to respond to user input as 264 // The amount of time in milliseconds we have to respond to user input as
265 // defined by RAILS. 265 // defined by RAILS.
266 static const int kRailsResponseTimeMillis = 50; 266 static const int kRailsResponseTimeMillis = 50;
267 267
268 // For the purposes of deciding whether or not it's safe to turn timers and
269 // loading tasks on only in idle periods, we regard the system as being as
270 // being "idle period" starved if there hasn't been an idle period in the last
271 // 10 seconds. This was chosen to be long enough to cover most anticipated
272 // user gestures.
273 static const int kIdlePeriodStarvationThresholdMillis = 10000;
274
275 // The amount of time to wait before suspending shared timers after the 268 // The amount of time to wait before suspending shared timers after the
276 // renderer has been backgrounded. This is used only if background suspension 269 // renderer has been backgrounded. This is used only if background suspension
277 // of shared timers is enabled. 270 // of shared timers is enabled.
278 static const int kSuspendTimersWhenBackgroundedDelayMillis = 5 * 60 * 1000; 271 static const int kSuspendTimersWhenBackgroundedDelayMillis = 5 * 60 * 1000;
279 272
280 // The time we should stay in a priority-escalated mode after a call to 273 // The time we should stay in a priority-escalated mode after a call to
281 // DidAnimateForInputOnCompositorThread(). 274 // DidAnimateForInputOnCompositorThread().
282 static const int kFlingEscalationLimitMillis = 100; 275 static const int kFlingEscalationLimitMillis = 100;
283 276
284 // Schedules an immediate PolicyUpdate, if there isn't one already pending and 277 // Schedules an immediate PolicyUpdate, if there isn't one already pending and
(...skipping 28 matching lines...) Expand all
313 // scheduled. Must be called with |any_thread_lock_| held. Can be called from 306 // scheduled. Must be called with |any_thread_lock_| held. Can be called from
314 // any thread. 307 // any thread.
315 UseCase ComputeCurrentUseCase( 308 UseCase ComputeCurrentUseCase(
316 base::TimeTicks now, 309 base::TimeTicks now,
317 base::TimeDelta* expected_use_case_duration) const; 310 base::TimeDelta* expected_use_case_duration) const;
318 311
319 // An input event of some sort happened, the policy may need updating. 312 // An input event of some sort happened, the policy may need updating.
320 void UpdateForInputEventOnCompositorThread(WebInputEvent::Type type, 313 void UpdateForInputEventOnCompositorThread(WebInputEvent::Type type,
321 InputEventState input_event_state); 314 InputEventState input_event_state);
322 315
323 // Returns true if there has been at least one idle period in the last
324 // |kIdlePeriodStarvationThresholdMillis|.
325 bool HadAnIdlePeriodRecently(base::TimeTicks now) const;
326
327 // Helpers for safely suspending/resuming the timer queue after a 316 // Helpers for safely suspending/resuming the timer queue after a
328 // background/foreground signal. 317 // background/foreground signal.
329 void SuspendTimerQueueWhenBackgrounded(); 318 void SuspendTimerQueueWhenBackgrounded();
330 void ResumeTimerQueueWhenForegrounded(); 319 void ResumeTimerQueueWhenForegrounded();
331 320
332 // The task cost estimators and the UserModel need to be reset upon page 321 // The task cost estimators and the UserModel need to be reset upon page
333 // nagigation. This function does that. Must be called from the main thread. 322 // nagigation. This function does that. Must be called from the main thread.
334 void ResetForNavigationLocked(); 323 void ResetForNavigationLocked();
335 324
336 // Estimates the maximum task length that won't cause a jank based on the 325 // Estimates the maximum task length that won't cause a jank based on the
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 PollableThreadSafeFlag policy_may_need_update_; 467 PollableThreadSafeFlag policy_may_need_update_;
479 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_; 468 base::WeakPtrFactory<RendererSchedulerImpl> weak_factory_;
480 469
481 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl); 470 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImpl);
482 }; 471 };
483 472
484 } // namespace scheduler 473 } // namespace scheduler
485 } // namespace blink 474 } // namespace blink
486 475
487 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDU LER_IMPL_H_ 476 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDU LER_IMPL_H_
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698