[blink scheduler] Disable intensive wake up throttling for timers with low nesting level.
Change description: ------------------- This CL changes the intensive wake up throttling policy so that it does not affect the execution of timers with nesting level < 5 : In a Window whose top Window has been hidden for 5 minutes and which is not opted out from intensive wake up throttling, a timer task can run: - on a 1-second aligned wake up if: - the task's nesting level is < 5, or, - the Window is same-origin with the top Window and at least 1 minute has elapsed since the last timer with nesting level >= 5 has run in any Window in the tree that is same-origin with the top Window - on a 1-minute aligned wake up, otherwise. Rationale: ---------- Unfortunately, limiting all timers to 1 wake up per minute caused breakages on some sites. After reaching out to site owners, we established that opting out timer tasks with nesting level < 5 prevents these breakages. Local tests suggest that most timers tasks have a nesting level >= 5. Therefore, we don't expect that this policy change will have a significant impact on power usage. Timers with nesting level >= 5 can run on a 1-second aligned wake up if there hasn't been a wake up in the last minute, because we don't want to penalize pages that have their own logic to ensure that the wake up rate is below 1 per minute. For example, a repeating timer with a 90 seconds timeout should not be affected by intensive throttling. Discussion: ----------- https://groups.google.com/a/chromium.org/g/scheduler-dev/c/EWKYCZlWjpc Bug: 1075553 Change-Id: I90d553608b9e3e64a9e6456112d5f4454d51bf1d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2417293Reviewed-by:Kentaro Hara <haraken@chromium.org> Reviewed-by:
Sami Kyöstilä <skyostil@chromium.org> Commit-Queue: François Doray <fdoray@chromium.org> Cr-Commit-Position: refs/heads/master@{#811281}
Showing
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment