Contact [email protected]

Specification
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html

Design docs
https://docs.google.com/document/d/1boT0k8BQjl7mXXzvI9SdN4XJPSza27vE8T0CNxmMhCI

Summary

Increase the nesting threshold before which setTimeout(..., <4ms) start
being clamped, from 5 to 100. setTimeout(..., 0) is commonly used to break
down long Javascript tasks and let other internal tasks run, which prevents
the browser from hanging. setTimeouts and setIntervals with an interval <
4ms are not clamped as aggressively as they were before. This improves
short horizon performance, but websites abusing the API will still
eventually have their set setTimeouts clamped


Blink componentBlink
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink>

TAG review

TAG review statusNot applicable

Risks


Interoperability and Compatibility

setTimeout is a well established and mature API. This change poses a risk
of breaking websites and tests that rely on the current clamping behavior
and the subtle task ordering that it entails. As an example, this change
breaks the assumption that setTimeout(0) causes micro tasks to run in at
least one case in Chrome tests (crbug.com/1302309). On the flip side, the
implementation in Chrome is already non compliant (crbug.com/1108877).
There's also a similar experiment on beta that is ongoing (crbug.com/1263190).
Devs can use chrome://flags#unthrottled-nested-timeout to test their sites
for compatibility issues.


Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:



Debuggability

setTimeout() and setInterval() have an associated trace event in DevTools.
https://developer.chrome.com/docs/devtools/evaluate-performance/performance-reference/


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/+/master/docs/testing/web_platform_tests.md>
?No

Flag nameunthrottled-nested-timeout

Requires code in //chrome?False

Tracking bughttps://crbug.com/1108877

Estimated milestones
DevTrial on desktop 101
DevTrial on android 101

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5710690097561600

This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALoDvsYXXXVAk4nehKbv%2BNZjdF_yTVURQN8vZ-kwajKZLHKQgg%40mail.gmail.com.

Reply via email to