On Wed, Aug 3, 2022 at 7:07 PM Etienne Pierre-doray <etien...@chromium.org> wrote:
> 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 > For folks outside of Google, the bug describes a site that relied on timer accuracy to schedule tasks, and saw a degradation in their performance metrics. 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 suspect many non-Google properties run similar code, and would similarly be surprised by this change. e.g. 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 > > There's anecdotal evidence that Webkit is aligning timers at 10ms; all I > could find re. DOM timers is this > <https://sourcegraph.com/github.com/WebKit/WebKit/-/commit/9583464b465af2976839791deff41cbe6495f6ca?visible=6> > throttling > at 30Hz in low power mode. > Does https://bit.ly/blink-signals apply even if this chromestatus doesn't > change the spec? > The web-exposed behavior is changing here, with potential compatibility and interoperability implications. So even if the spec allows for that, I think it's worthwhile to ask other vendors for their opinions on this. > > 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? >> > Although that was meant for another proposal, this blog post > <https://developer.chrome.com/blog/timer-throttling-in-chrome-88/#workarounds> > suggests an alternative to some setTimeout abuses. > Note that this proposal only concerns the 8ms delay. The 1s throttling was > done in this previous chromestatus > <https://chromestatus.com/feature/4718288976216064> for background pages > and shipped in M86. > > On Wed, Aug 3, 2022 at 11:42 AM Lennart Grahl <lennart.gr...@gmail.com> > wrote: > >> 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? >> >> On Wednesday, 3 August 2022 at 15:50:48 UTC+2 Etienne Pierre-doray wrote: >> >>> etie...@chromium.org >>> >>> ExplainerNone >>> >>> Specification >>> https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html >>> >>> Design docs >>> >>> https://docs.google.com/document/d/1OjZoHNvn_vz6bhyww68B_KZBi6_s5arT8xMupuNEnDM/edit >>> >>> Summary >>> >>> 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 componentBlink>Scheduling >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EScheduling> >>> >>> TAG review >>> >>> TAG review statusNot 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 >>> >>> *Web developers*: No signals >>> >>> *Other signals*: >>> >>> WebView application risks >>> >>> Does this intent deprecate or change behavior of existing APIs, such >>> that it has potentially high risk for Android WebView-based applications? >>> >>> >>> >>> Goals for experimentation >>> >>> Gain insight on potential compatibility issues and evaluate impact on >>> guardian metrics (page load, latency). >>> >>> >>> Reason this experiment is being extended >>> >>> >>> >>> Ongoing technical constraints >>> >>> >>> >>> Debuggability >>> >>> This changes the behavior of an existing API. No new debugging support >>> is added. >>> >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, Chrome OS, Android, and Android WebView)?Yes >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ?No >>> >>> DevTrial instructions >>> https://github.com/eti-p-doray/align-wakeups/blob/main/HOWTO.md >>> >>> Flag namealign-wakeups >>> >>> Requires code in //chrome?False >>> >>> Tracking bughttps://crbug.com/1153139 >>> >>> Estimated milestones >>> 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 105We plan to do a 1% Stable experiment for >>> M105 stable. >>> >>> Link to entry on the Chrome Platform Status >>> https://chromestatus.com/feature/5680188671655936 >>> >> -- > 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+unsubscr...@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 > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsZoosJps02cN-3885ubOggjk_JkH4ffUZosQoTWFrNWuQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfU2_t3oAHuSsnJvEnO3SPs%3DecM-PU%2BW0YM23eYA-kaGOw%40mail.gmail.com.