On Friday, March 6, 2026 at 6:42:41 PM UTC+1 Ian Kilpatrick wrote:



On Fri, Mar 6, 2026 at 9:38 AM Ian Kilpatrick <[email protected]> 
wrote:

Hmm... this is pretty fragile, e.g. you are missing the interleaving that 
occurs for anchor-positioning for example.
https://source.chromium.org/chromium/chromium/src/+/main:
third_party/blink/renderer/core/css/style_engine.cc;l=3896;drc=
4ae3a738cbcbfb87d2bf747e530650484e448361;bpv=1;bpt=1


Fair. Does that mean that these style and layout calcs are not accounted 
for in the current probes? are they accounted from in the current LoAF 
implementation?
 


> What's the usecase for separating them out?

Can you expand on the usecase for separating them out? There are many 
implementation differences here (e.g. where does each engine account for 
layout-tree construction)? And having them as a unified bucket would 
mitigate that between implementations.


They are already exposed as a unified 
bucket:  
https://w3c.github.io/long-animation-frames/#dom-performancelonganimationframetiming-styleandlayoutstart

That is not sufficient when trying to gather data from the wild about CSS 
performance issues and where they are coming from. (and what would solve 
them)
One concrete example - I'm currently investigating a case where we want to 
know if reducing the number of spurious rules would help reduce the overall 
time spent in stylecalc+layout. Currently the only way to find out is to 
implement that (a significant eng investment), ship it and see if the 
numbers move.
Splitting out the stylecalc numbers could have helped us know that reducing 
spurious rules is likely to help.


Ian

On Fri, Mar 6, 2026 at 9:31 AM Yoav Weiss (@Shopify) <[email protected]> 
wrote:

https://source.chromium.org/chromium/chromium/src/+/main:
third_party/blink/renderer/core/frame/animation_frame_
timing_monitor.cc;l=887?q=render_style_duration_during_layout_&ss=chromium%
2Fchromium%2Fsrc

On Fri, Mar 6, 2026 at 6:28 PM Ian Kilpatrick <[email protected]> 
wrote:



On Fri, Mar 6, 2026 at 9:18 AM Yoav Weiss (@Shopify) <[email protected]> 
wrote:



On Fri, Mar 6, 2026 at 6:12 PM Yoav Weiss (@Shopify) <[email protected]> 
wrote:

Having style and layout interleaved doesn't prevent us from accounting for 
the time each took separately.


To expand on that, the implementation accounts for style and layout being 
potentially interleaved and augments the relevant duration of each 
accordingly.
 


Where is the implementation for this?
 


On Fri, Mar 6, 2026 at 6:04 PM Ian Kilpatrick <[email protected]> 
wrote:

Ah I see Emilio gave the same feedback here: https://github.com/w3c/
long-animation-frames/pull/30#issuecomment-3819162688 can you address this 
before experimenting?


I can reply, sure.
 




On Fri, Mar 6, 2026 at 9:02 AM Ian Kilpatrick <[email protected]> 
wrote:



On Fri, Mar 6, 2026 at 8:58 AM Yoav Weiss (@Shopify) <[email protected]> 
wrote:

*Contact emails*
[email protected]

*Explainer*
https://github.com/w3c/long-animation-frames/pull/30#issue-3828859369

*Specification*
https://github.com/w3c/long-animation-frames/pull/30

*Summary*
Add `styleDuration`, `forcedStyleDuration`, `layoutDuration` and 
`forcedLayoutDuration` information to the Long Animation Frame API, 
enabling developers to distinguish style and layout times.


Its incorrect to think of style and layout as two separate things now. They 
can be interleaved. What's the usecase for separating them out? E.g. can 
the API be simplified as a styleLayoutDuration and 
forcedStyleLayoutDuration ?

Ian
 

*Blink component*
Blink>PerformanceAPIs 
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPerformanceAPIs%22>

*Web Feature ID*
Missing feature

*TAG review*
*Not yet.*

*TAG review status*
Pending

*Risks*


*Interoperability and Compatibility*
*New attributes, so no compatibility risk. In terms of Interop, this 
doesn't increase the interop risk of LoAF, which is currently only shipped 
in Chromium.*

*Gecko*: No signal

*WebKit*: No signal

*Web developers*: Shopify developers need the data these attributes expose 
in order to better understand CSS performance bottlenecks in the wild.

*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?
*No.*


*Goals for experimentation*
*See if the API provides the right data that enables developers to 
understand their CSS performance bottlenecks.*

*Ongoing technical constraints*
*No.*

*Debuggability*
*Not applicable.*

*Will this feature be supported on all six Blink platforms (Windows, Mac, 
Linux, ChromeOS, 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>?*
Yes.


*Flag name on about://flags*
*No information provided*

*Finch feature name*
*LongAnimationFrameStyleDuration*

*Non-finch justification*
*No information provided*

*Requires code in //chrome?*
False

*Tracking bug*
https://issues.chromium.org/issues/476826067

*Estimated milestones*

M147-M152


*Link to entry on the Chrome Platform Status*
https://chromestatus.com/feature/5171478175809536?gate=5452953152520192

*Links to previous Intent discussions*
Intent to Prototype: https://groups.google.com/a/chromium.org/d/
msgid/blink-dev/CAOmohSJxRuMp6Ha5RVCjzNfsG0Sj96Y%3Dgy9LnxtM%2Brq-S6DEew%
40mail.gmail.com


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 visit https://groups.google.com/a/
chromium.org/d/msgid/blink-dev/CAOmohSJ2PJ0dZxYH48PALOSUenSSV
7VuZ9CzTHnGd8u_jTKkcg%40mail.gmail.com 
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJ2PJ0dZxYH48PALOSUenSSV7VuZ9CzTHnGd8u_jTKkcg%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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/167d0fc4-576f-4340-b776-1d9434c96c11n%40chromium.org.

Reply via email to