Run all timers (with a few exceptions) with a non-zero delay on a regular 8ms aligned wake up (125 Hz), instead of as soon as their delay has passed. This affect DOM timers; On foreground pages, run DOM timers with a non-zero delay on a regular 8ms aligned wake up, instead of as soon as their delay has passed. On background pages, DOM timers already run on a regular 1s aligned wake up (1 Hz), or even less frequently after 5 minutes.
This feature changes the behavior of an existing API in a way that is spec-compliant (the spec says "Optionally, wait a further implementation-defined length of time", ref.: https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#run-steps-after-a-timeout). Content that relies on precise timing for DOM Timers may stop working properly in Chromium with this feature. The risk is mitigated by delaying DOM Timers by at most 8 ms, and by disabling the feature when WebRTC has active connections in the process. Content that cannot support a 8 ms delay would probably be better served by alternative APIs described at https://developer.chrome.com/blog/timer-throttling-in-chrome-88/#workarounds. Due to the significant battery savings that come with this feature, we expect that most browsers will decide to implement it after some time.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
Gain insight on potential compatibility issues and evaluate impact on guardian metrics (page load, latency).
This changes the behavior of an existing API. No new debugging support is added.
OriginTrial desktop last | 105 |
OriginTrial desktop first | 105 |
DevTrial on desktop | 105 |
OriginTrial Android last | 105 |
OriginTrial Android first | 105 |
DevTrial on Android | 105 |
OriginTrial webView last | 105 |
OriginTrial webView first | 105 |
etie...@chromium.org
Explainer
None
Specification
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html
Design docs
https://docs.google.com/document/d/1OjZoHNvn_vz6bhyww68B_KZBi6_s5arT8xMupuNEnDM/editSummary
Run all timers (with a few exceptions) with a non-zero delay on a regular 8ms aligned wake up (125 Hz), instead of as soon as their delay has passed. This affect DOM timers; On foreground pages, run DOM timers with a non-zero delay on a regular 8ms aligned wake up, instead of as soon as their delay has passed. On background pages, DOM timers already run on a regular 1s aligned wake up (1 Hz), or even less frequently after 5 minutes.
Blink component
Blink>Scheduling
TAG review
TAG review status
Not applicable
Risks
Interoperability and Compatibility
This feature changes the behavior of an existing API in a way that is spec-compliant (the spec says "Optionally, wait a further implementation-defined length of time", ref.: https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#run-steps-after-a-timeout). Content that relies on precise timing for DOM Timers may stop working properly in Chromium with this feature. The risk is mitigated by delaying DOM Timers by at most 8 ms, and by disabling the feature when WebRTC has active connections in the process. Content that cannot support a 8 ms delay would probably be better served by alternative APIs described at https://developer.chrome.com/blog/timer-throttling-in-chrome-88/#workarounds. Due to the significant battery savings that come with this feature, we expect that most browsers will decide to implement it after some time.
Gecko: No signal
WebKit: No signal
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsaQA8iqxdxNEh1PkBCzPFSsSSmZ72Jgmev-bdwenG6DrQ%40mail.gmail.com.
What's the plan for monitoring potential breakage? Looking at incoming bugs?
Might be worthwhile to ask: https://bit.ly/blink-signals
Question: What about APIs that have no proper flow control support, e.g. WebSocket? They rely on (ab)use of setTimeout to avoid writing too much into the underlying buffer. I wouldn't consider a 1s flow disruption delay to be acceptable for this use case, not even in the background. Are there any plans to prevent such issues?
What's the plan for monitoring potential breakage? Looking at incoming bugs?Yes, there's been a few breakage on earlier channel (all addressed as of now). This one was related to DOM timer: https://buganizer.corp.google.com/issues/220682826
Might be worthwhile to ask: https://bit.ly/blink-signalsThere's anecdotal evidence that Webkit is aligning timers at 10ms; all I could find re. DOM timers is this throttling at 30Hz in low power mode.Does https://bit.ly/blink-signals apply even if this chromestatus doesn't change the spec?
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsZoosJps02cN-3885ubOggjk_JkH4ffUZosQoTWFrNWuQ%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
The site in question then fixed it by moving away from those methods. (I hope I'm capturing that correctly. I only skimmed through the issue so please correct me if I got it wrong)
I know that many JS driven animations used to rely on timers, and I'm not sure that's no longer the case.
Similarly, performance measurements that rely on timer accuracy as a proxy for "CPU busyness" are common.
Might be worthwhile to ask: https://bit.ly/blink-signals
That said, I'm also supportive of trying this in Canary/Dev ASAP (without rolling to Beta) to try to get that data.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsaQA8iqxdxNEh1PkBCzPFSsSSmZ72Jgmev-bdwenG6DrQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHOQ7J-pruChSM-Wm-cAtWUg6YuzBHumB%3D5Zdo8zjUMqJCn%3Dcg%40mail.gmail.com.
Stefan, this was just for "non-zero delay" timers? Are there still potential issues there?
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHOQ7J_7kWuBjXjQAjq4FJWy-vEYM4fH7W3f1%3DtU_SjSTErmSg%40mail.gmail.com.
Do I understand correctly that you're asking for experimentation only in the 105?
won't necessarily expose compat issues for sites that don't pay very close attention (as it's easy to dismiss bugs in 1% of users as flakes).
Hi Blink API Owners,Thanks for taking the time to look into this feature.Do I understand correctly that you're asking for experimentation only in the 105?This is correct. Although I imagined the following rollout plan, with a separate I2S once I gathered data on Stable:- (previously) 50% on canary/dev/beta M103/M104- 50% canary/dev/beta + 1% Stable on M105- 100% Stable on M106
won't necessarily expose compat issues for sites that don't pay very close attention (as it's easy to dismiss bugs in 1% of users as flakes).What would be a suitable roll-out plan to expose compat issues? In similar performance interventions (e.g. Intensive throttling), origin trial (on 50% Beta and 1% Stable) was able to surface issues and provide necessary feedback for launch to be LGTM-ed.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsakspNqSSOJCLvELQiHy_L7jkFzCFWTHEsEXVEaOS9EQw%40mail.gmail.com.
Ok. So your experiment is not an OT, but rather asking permission for an A/B (finch) experiment on those channels?
This plan is designed to avoid the not-reproducible-bug issue, and also satisfy the need for us to test what is actually shipping on the beta channel.
Fuck off
--To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8i4paLPo0X57Xn3YWm--SEW5gbk_paRCrHqqEZ90ukSA%40mail.gmail.com.
Chelbi Thyme
Ok. So your experiment is not an OT, but rather asking permission for an A/B (finch) experiment on those channels?Correct, I very recently discovered the difference between finch and OT; sorry for the confusion.This plan is designed to avoid the not-reproducible-bug issue, and also satisfy the need for us to test what is actually shipping on the beta channel.That sounds like a reasonable plan.Is it still ok to run 1% experiment on M105 stable meanwhile. Per yoavweiss@ previous response, this is mostly aimed at evaluating performance/power benefits.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsZZOFiB3y%3DG_iWZPx1h387wA7DpPrR4s-NP3kBkoGU-JA%40mail.gmail.com.
I don't love this at all. A more flexible batching/coalescing that *can* batch/coalesce when it makes sense, but which preserves the desired/asked for wake-ups when they are all alone & there's nothing to coalesce to would be far more reasonable/kind. This feels like it applies a huge cudgel to all users because some users use too many wakeups. I think most of the expected power savings can be gotten for the bad users, without such a vast & sad negative impact for the responsible users. Linux gained a similar "Tickless" kernel support capability in 2.6.6, May 2004, and this feels like a significant reversion to a state of tech far predating that basic innovation. I cannot support the sacrifices made here. Please do a little more work on this to only impact bad users/places where this might help; not everyone.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4c0bf240-c577-40ad-91a6-bb2991444ae6n%40chromium.org.