Intent to Extend Experiment: SoftNavigation performance entry

168 views
Skip to first unread message

Michal Mocny

unread,
Jul 25, 2025, 2:51:02 PMJul 25
to blink-dev

Contact emails

mmo...@chromium.orgshas...@chromium.orgyoav...@chromium.org

Explainer

https://github.com/WICG/soft-navigations
https://github.com/WICG/soft-navigations/blob/main/Design.md

Specification

https://wicg.github.io/soft-navigations

Summary

Exposes the (experimental) soft navigation heuristics to web developers, using both PerformanceObserver and the performance timeline. This feature reports two new performance entries: - "soft-navigation", for user interactions which navigate the page. Defines a new timeOrigin to help slice the performance timeline. - "interaction-contentful-paint", which reports on the loading performance of interactions (beyond just next paint), used as LCP for soft-navigations.



Blink component

Blink>PerformanceAPIs

TAG review

https://github.com/w3ctag/design-reviews/issues/879

TAG review status

Issues addressed

Origin Trial Name

Soft Navigation Heuristics

Chromium Trial Name

SoftNavigationHeuristics

Link to origin trial feedback summary

https://github.com/WICG/soft-navigations/issues

Origin Trial documentation link

https://github.com/WICG/soft-navigations#soft-navigations

Risks



Interoperability and Compatibility

None



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/854)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/235)

Web developers: Strongly positive https://github.com/WICG/proposals/issues/71#issuecomment-1325856231 https://twitter.com/yoavweiss/status/1575191332775026688

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?

None



Reason this experiment is being extended

This feature has already gone through two origin trials which ended in milestone 123 a year ago. We took developer feedback and communicated with web developers at the end of the trial with the following status: "The Chrome team are taking time to review the experiment feedback and consider the next steps for this API. We want to address some accuracy issues and believe another origin trial will be required before the feature is ready to progress." Over the next year we investigated the reasons for the deficiencies, updated the implementation, and revamped the proposed API slightly. I have created a description of these changes here: https://github.com/WICG/soft-navigations/issues/47 Early results (local lab testing, and field histograms in aggregate) from the current version of the feature shows a significant improvement from a year ago, and we've gotten positive anecdotal feedback from some early testers on Canary with experimental features enabled. Although this feature has already had 2 Origin trials, because there has been over a year of gap since the last trial, we request permission for another 6 milestones extension, rather than 3, which are necessary as we expect it will take developers some time ramp up and collect sufficient field data to analyze give feedback, and for us to iterate on this feedback.



Ongoing technical constraints

None.



Debuggability

None



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

No

Is this feature fully tested by web-platform-tests?

Yes

Flag name on about://flags

None

Finch feature name

SoftNavigationHeuristics

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1338390

Estimated milestones

Origin trial desktop first117
Origin trial desktop last123
Origin trial extension 1 end milestone123
Origin trial extension 2 end milestone123
Origin trial extension 3 end milestone145
Origin trial Android first117
Origin trial Android last123
Origin trial WebView first117
Origin trial WebView last123


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5144837209194496?gate=4535580188475392

Links to previous Intent discussions

Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfV3qRFx0i-eGJFSzqE8bnbX8XYJCvXAj0LfvO0icPo_jA%40mail.gmail.com
Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUb_Gn_5gGy8SnChg5KH2JN57Gv0NhnHN7Q_kH0Aa17CQ%40mail.gmail.com
Intent to Extend Experiment 1: https://groups.google.com/a/chromium.org/g/blink-dev/c/xxrmKr-6X38/m/48Hri1cnAgAJ
Intent to Extend Experiment 2: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfULP5d3fNCAqeO2gLP56R3HCytmaNk%2B9kpYsC2dj4%3DqoQ%40mail.gmail.com


This intent message was generated by Chrome Platform Status.

Domenic Denicola

unread,
Jul 28, 2025, 12:08:07 AMJul 28
to Michal Mocny, blink-dev
LGTM to experiment for 6 more milestones. Be sure to set those milestones in ChromeStatus so that the feature shows up in https://chromestatus.com/roadmap; I guess that might require overwriting the old "Estimated milestones" fields.

This feature seems like a great use of the origin trial system, to gather data and iterate over time. Although, based on https://github.com/WICG/soft-navigations/issues/47 and the current state of the spec, it sounds like there's still a good amount of work to do before it could be called finalized, I'm excited for web developers to get another 6 milestones of testing to inform further work.

--
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.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEeF2TfyN4LMy2DQwjPrsTekEw8dNXgcqiogvznagjtWyfqixA%40mail.gmail.com.

Michal Mocny

unread,
Jul 28, 2025, 10:01:34 AMJul 28
to Domenic Denicola, Michal Mocny, blink-dev
Thanks!

The "Estimated milestones" seem automatically generated from the OT fields, and are not editable.  I did have the option to press a new button today after your LGTM, and perhaps that will update Chrome Status?  (I still don't see it updated but perhaps it has a delay).

---

RE spec: yes, that does need work to update the text, but in preparation for that we wrote a "design doc" which is easier to iterate on, and tries to describe how it intends to work.  For the curious.

One of the other changes since last year is that we are trying to decouple the feature into smaller "foundational" parts:
  • Interactions hooks --> Event Timing API
  • TaskAttribution --> AsyncContext API
  • Paint Detection --> Container Timing API
Leaving less "heuristics" specific to this feature, and less to spec directly (this was also one piece of feedback, also from TAG review, to be less heuristic and give developers more flexibility).  Although a lot of those are also still early incubations and themselves need work, we think that makes the design easier and less redundant.

-Michal
Reply all
Reply to author
Forward
0 new messages