Contact emails
pani...@google.com, igri...@google.com, nd...@google.com
Spec
Spec: https://wicg.github.io/longtasks
Explainer: https://github.com/spanicker/longtasks
Tag review link: https://github.com/w3ctag/spec-reviews/issues/150
Summary
A new performance API to enable applications to measure responsiveness, by detecting presence of “long tasks” that cause contention on the main thread.
Motivation
Responsiveness to user interaction is crucial for users of web apps. Developers need to be able to measure responsiveness to get insight into user experience in the real world.
Users are regularly bogged down by delayed Time to Interactive in page load (a recent study), high / variable input latency on critical interaction events (tap, click, scroll etc), and janky animations or scrolling. These negative experiences turn away users and hurt businesses. Sites that include third party content (ads, social plugins etc.) are frequently the worst offenders.
The major culprit behind these responsiveness issues is main thread contention, which in turn is caused by “long tasks”. Long tasks monopolize the UI thread for extended periods of time and block other critical tasks from being executed - for instance reacting to input.
Some applications and analytics are attempting to measure main thread contention with workarounds. For example, one known pattern is to install a ~short periodic timer and inspect the elapsed time between the successive calls. This has several bad performance implications: preventing quiescence and long idle blocks (see requestIdleCallback); it’s bad for battery life; and there is no way to know what caused the delay, e.g. first party vs third party code.
Long Tasks API addresses these issues, it enables developers to get insight into responsiveness issues, and provides attribution i.e. insight into who the perpetrators are.
Long Tasks API has a V1 and V2 API version:
- V1 (current version) API provides “minimal frame attribution” i.e. point in the general direction (document frame context) of the problem while following cross-origin rules.
- V2 API will attempt to provide more detailed information (for same origin contexts) such as script URL of long scripts.
Feedback from Developer Partners
We’ve received feedback from developers at Google Ads, SOASTA (Analytics vendor representing major e-commerce sites), YouTube, Facebook. Overall the feedback is positive and they are interested in using the API.
Primary feedback is request for more detailed attribution such as exposing script URL and time in layout, these will be added in the V2 API.
Privacy & Security
See detailed doc here: https://docs.google.com/document/d/1tIMI1gau_q6X5EBnjDNiFS5NWV9cpYJ5KKA7xPd3VB8/edit
Also see evn@’s assessment of the threat model here: https://docs.google.com/document/d/1w7TCMPZ1KtVbi9tuVRfM8d2yLi0Cl3NxNzb8AOgF7bo/edit
Link to “Intent to Implement” blink-dev discussion
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
Demo link
https://wicg.github.io/longtasks/render-jank-demo.html
https://wicg.github.io/longtasks/demo.html
Debuggability
Long tasks will typically trigger “slow frames” that DevTools marks in red. https://crbug.com/681863 covers surfacing this more clearly in DevTools.
Interoperability and Compatibility Risk
Low.
This is a new API exposed via PerformanceObserver, it is a monitoring use case and does not affect application logic / flow control.
There is interest in this API from other vendors, in particular Microsoft is especially supportive. See TPAC notes and logs for discussion.
OWP launch tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=651926
Entry on the feature dashboard
https://www.chromestatus.com/feature/5738471184400384
--
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.
LGTM2https://wicg.github.io/longtasks/ has a very scary warning "Not Ready For Implementation", is that just some generated boilerplate that should be removed?I poked around in https://github.com/wicg/longtasks/issues a bit and couldn't see anything worth blocking on. Have any other vendors been commenting since TPAC? It doesn't seem like it and it's hard to pay close attention long before planning to implement, but thought I'd ask in case I missed it.
LGTM1
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
On Mon, Feb 6, 2017 at 10:32 PM, Philip Jägenstedt <foo...@chromium.org> wrote:LGTM2https://wicg.github.io/longtasks/ has a very scary warning "Not Ready For Implementation", is that just some generated boilerplate that should be removed?
LGTM1
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
LGTM1
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@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+unsubscribe@chromium.org.
Hi,Has the spec been merged into the overall performance timeline API? Is doing so just the next formality?
On Tue, Feb 7, 2017 at 8:16 AM, Ilya Grigorik <igri...@google.com> wrote:On Mon, Feb 6, 2017 at 10:32 PM, Philip Jägenstedt <foo...@chromium.org> wrote:LGTM2https://wicg.github.io/longtasks/ has a very scary warning "Not Ready For Implementation", is that just some generated boilerplate that should be removed?Yes this is Bikeshed boilerplate, I'll look into removing it.
--
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.