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 <https://groups.google.com/a/chromium.org/g/blink-dev/c/8En_5DqV_fU/m/P23eNeUWAgAJ>), origin trial (on 50% Beta and 1% Stable) was able to surface issues and provide necessary feedback for launch to be LGTM-ed. On Thu, Aug 11, 2022 at 5:16 AM Yoav Weiss <yoavwe...@chromium.org> wrote: > Do I understand correctly that you're asking for experimentation only in > the 105? > > We discussed this intent at the API owners meeting yesterday (Daniel, > Rego, MikeT and myself), and reached a conclusion that there are two goals > for this experiment, but only one of them can be achieved with 1% stable > experimentation. > We believe the experiment can show the potential benefits of such a > behavior change, but 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). > Hence, we think it's fine to run the experiment in order to figure out the > potential benefits, but would need a more elaborate plan to figure out the > compat implications and feasibility of shipping this. > > Does that make sense? > > On Fri, Aug 5, 2022 at 8:17 PM Stefan Zager <sza...@chromium.org> wrote: > >> On Fri, Aug 5, 2022 at 11:00 AM Dave Tapuska <dtapu...@chromium.org> >> wrote: >> >>> Stefan, this was just for "non-zero delay" timers? Are there still >>> potential issues there? >>> >> >> Ah, sorry, I missed that detail. In that case, I think none of my >> objections apply. >> >> >>> >>> On Fri, Aug 5, 2022 at 1:19 PM Stefan Zager <sza...@chromium.org> wrote: >>> >>>> This is a common programming pattern: >>>> >>>> requestAnimationFrame(() => { >>>> setTimeout(() => { >>>> // At this point, it's very likely that layout is clean, >>>> // because we *just* completed a rendering update. >>>> // Queries of layout information are very unlikely to >>>> // trigger a forced layout. >>>> document.body.offsetTop; >>>> }); >>>> }); >>>> >>>> Aligning timers will make this strategy for avoiding forced layout less >>>> effective, because other non-timer tasks may run ahead of the setTimeout >>>> and invalidate layout. >>>> >>>> Also: the rAF(setTimeout()) construct is used extensively in chromium's >>>> test corpus, to schedule work ASAP after a rendering update. Many of our >>>> tests use a synchronous compositor: rendering updates happen without delay >>>> whenever there are no other tasks ready to run. In other tests, we increase >>>> the frequency of rendering updates from 60Hz to 200Hz, just because we know >>>> there won't be any long-running tasks and we want the tests to run faster. >>>> >>>> So... I see potential issues here. >>>> >>>> On Wed, Aug 3, 2022 at 6:50 AM Etienne Pierre-doray < >>>> etien...@chromium.org> wrote: >>>> >>>>> etien...@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/CALoDvsaQA8iqxdxNEh1PkBCzPFSsSSmZ72Jgmev-bdwenG6DrQ%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsaQA8iqxdxNEh1PkBCzPFSsSSmZ72Jgmev-bdwenG6DrQ%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/CAHOQ7J-pruChSM-Wm-cAtWUg6YuzBHumB%3D5Zdo8zjUMqJCn%3Dcg%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHOQ7J-pruChSM-Wm-cAtWUg6YuzBHumB%3D5Zdo8zjUMqJCn%3Dcg%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/CAHOQ7J_7kWuBjXjQAjq4FJWy-vEYM4fH7W3f1%3DtU_SjSTErmSg%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHOQ7J_7kWuBjXjQAjq4FJWy-vEYM4fH7W3f1%3DtU_SjSTErmSg%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/CALoDvsakspNqSSOJCLvELQiHy_L7jkFzCFWTHEsEXVEaOS9EQw%40mail.gmail.com.