Thanks all! Rick: I will update the WPT links, but FYI: there are currently 120 tests <https://wpt.fyi/results/soft-navigation-heuristics> which cover from the basics of the api, to a relatively thorough list of mechanisms for task scheduling, supported dom modifications, different element paint types, different history navigation mechanisms, and permutations of the above.
That said, the feature has evolved over time, and has effectively split into two distinct APIs that work well together. We expect to do more to split and decouple, as well as organize the mess of tests. -Michal On Wed, Jun 24, 2026 at 11:29 AM Rick Byers <[email protected]> wrote: > LGTM3 > > Can you please include the link to the WPTs in the Chromestatus field? I > know there's a ton of complexity here, to what extent do you believe the > test suite in it's current state is sufficient to enable compatible > implementations? Non-blocking, but I do think it's important that we have a > high quality test suite here. > > On Wed, Jun 24, 2026 at 11:25 AM Vladimir Levin <[email protected]> > wrote: > >> LGTM2 >> >> On Wednesday, June 24, 2026 at 11:24:29 AM UTC-4 Alex Russell wrote: >> >>> LGTM1. Extremely excited about this; congrats on the launch. >>> >>> On Tuesday, June 23, 2026 at 1:26:11 PM UTC-7 Michal Mocny wrote: >>> >>>> Contact emails >>>> >>>> [email protected], [email protected], [email protected] >>>> >>>> Explainer >>>> >>>> https://github.com/WICG/soft-navigations >>>> >>>> Specification >>>> >>>> https://wicg.github.io/soft-navigations >>>> >>>> Summary >>>> >>>> Adds "soft-navigation" and "interaction-contentful-paint" >>>> PerformanceEntry types to the web performance timeline to track >>>> interaction-driven page performance, including for "soft" navigations >>>> (JS-driven navigations in Single Page Apps (SPAs)). This work expands on >>>> metrics like Largest Contentful Paint (LCP) and Interaction to Next Paint >>>> (INP). >>>> >>>> The "interaction-contentful-paint" entry reports on new contentful >>>> paints within parts of the page modified by a user interaction, helping >>>> developers understand interaction loading latency. This proposal tracks the >>>> effects of interactions across async tasks (like fetch requests). >>>> >>>> The "soft-navigation" entry reports same-document history state changes >>>> initiated by interactions, establishing a new time origin to correctly >>>> attribute subsequent performance data to the active route rather than the >>>> initial document URL. >>>> >>>> Blink component >>>> >>>> Blink>PerformanceAPIs >>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPerformanceAPIs%22> >>>> >>>> Web Feature ID >>>> >>>> No information provided >>>> >>>> Motivation >>>> >>>> Web developers have been asking for a way to measure the loading >>>> performance of "soft navigations" (JS-driven navigations in Single Page >>>> Apps (SPA)), and to integrate such navigations into the web performance >>>> timeline in general. >>>> >>>> Besides getting useful new performance insights for these, having a >>>> shared standard definition for such navigations helps attribution for all >>>> existing performance timeline data (i.e. resource timings), and provides >>>> better default aggregation for metrics like INP or CLS with better URL >>>> attribution. >>>> >>>> Initial public proposal >>>> >>>> https://github.com/WICG/proposals/issues/71 >>>> >>>> TAG review >>>> >>>> https://github.com/w3ctag/design-reviews/issues/879 >>>> >>>> TAG review status >>>> >>>> Pending >>>> >>>> Origin Trial Name >>>> >>>> Soft Navigation Heuristics >>>> >>>> Goals for experimentation >>>> >>>> 1. Gaining insights on the quality of the heuristic and how it compares >>>> to current heuristics employed, from web developers, spa-framework authors, >>>> and by existing RUM providers; Focusing specifically on the initial >>>> "soft-navigation" reporting and the "interaction-contentful-paint" loading >>>> entries that follow. >>>> >>>> 2. Learning if developers find the correlation of various existing >>>> performance entries (i.e. Resource Timings, CLS or INP entries) to these >>>> soft navigation entries more useful than without them. >>>> >>>> Chromium Trial Name >>>> >>>> SoftNavigationHeuristics >>>> >>>> Link to origin trial feedback summary >>>> >>>> https://github.com/WICG/soft-navigations/issues/47 >>>> >>>> Origin Trial documentation link >>>> >>>> https://github.com/WICG/soft-navigations#soft-navigations >>>> >>>> Risks >>>> >>>> >>>> Interoperability and Compatibility >>>> >>>> No information provided >>>> >>>> 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://issues.chromium.org/issues/40229587 >>>> >>>> https://github.com/WICG/proposals/issues/71 >>>> >>>> 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 known. This feature is part of the standard performance timeline, >>>> which is available in WebView in the same way as non-webview. The feature >>>> is entirely implemented within blink + renderer. >>>> >>>> >>>> Debuggability >>>> >>>> No information provided >>>> >>>> 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 >>>> >>>> soft-navigation-heuristics >>>> >>>> Finch feature name >>>> >>>> SoftNavigationHeuristics >>>> >>>> Rollout plan >>>> >>>> Will ship enabled for all users >>>> >>>> Requires code in //chrome? >>>> >>>> False >>>> >>>> Tracking bug >>>> >>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1338390 >>>> >>>> Availability expectation >>>> >>>> Feature is available only in Chromium browsers for the foreseeable >>>> future. This is relatively common for Performance APIs, where the >>>> requirement for Baseline support is lower. A performance API can be feature >>>> detected and used only on Chromium and still give developers great value. >>>> >>>> That said, there is existing Baseline support for the foundations of >>>> this work: Event Timing, Paint Timing, and LCP-- and it seems there is >>>> relatively positive support for the nascent AsyncContext and Container >>>> Timing features which may make interop progress in the next year. Thus we >>>> expect a future where this set of APIs also reaches interop/Baseline >>>> status. >>>> >>>> Adoption expectation >>>> >>>> At least 3 major abstractions replace their use of an existing feature >>>> with this feature within 24 months of reaching mainline. Specifically, >>>> several RUM measurement products and/or frameworks rely on custom >>>> instrumentation, web platform api monkey-patching, and/or developer hints >>>> in order to measure interactions and soft-navigations. These APIs have been >>>> fairly widely deployed during origin trial by many partners/abstractions, >>>> and we expect that these APIs are broadly adopted over the next few years. >>>> >>>> Adoption plan >>>> >>>> This feature has been in demand for years, and has been widely >>>> discussed in relevant web performance groups (w3c web perf working group, >>>> rum community group, slack, conferences, etc). Many organizations have >>>> already participated in multiple rounds of OT. This feature is also >>>> expected to power the next major update to the Core Web Vitals program, and >>>> has already been integrated into an experimental branch of the web-vital.js >>>> library which has wide industry adoption (making it an easier >>>> integration/upgrade). >>>> >>>> Non-OSS dependencies >>>> >>>> Does the feature depend on any code or APIs outside the Chromium open >>>> source repository and its open-source dependencies to function? >>>> >>>> No. >>>> >>>> Estimated milestones >>>> >>>> Shipping on desktop >>>> >>>> 151 >>>> >>>> Origin trial desktop first >>>> >>>> 139 >>>> >>>> Origin trial desktop last >>>> >>>> 144 >>>> >>>> Origin trial extension 1 end milestone >>>> >>>> 123 >>>> >>>> Origin trial extension 2 end milestone >>>> >>>> 149 >>>> >>>> Origin trial extension 3 end milestone >>>> >>>> 123 >>>> >>>> Origin trial extension 4 end milestone >>>> >>>> 144 >>>> >>>> Shipping on Android >>>> >>>> 151 >>>> >>>> Origin trial Android first >>>> >>>> 139 >>>> >>>> Origin trial Android last >>>> >>>> 144 >>>> >>>> Shipping on WebView >>>> >>>> 151 >>>> >>>> Origin trial WebView first >>>> >>>> 139 >>>> >>>> Origin trial WebView last >>>> >>>> 144 >>>> >>>> >>>> Anticipated spec changes >>>> >>>> Open questions about a feature may be a source of future web compat or >>>> interop issues. Please list open issues (e.g. links to known github issues >>>> in the project for the feature specification) whose resolution may >>>> introduce web compat/interop risk (e.g., changing to naming or structure of >>>> the API in a non-backward-compatible way). >>>> >>>> The API shape has gone through multiple rounds of iteration and is >>>> expected to be in its final form. There may be future API extensions added >>>> to expose more features (i.e. to add more "container timing" details) but >>>> the API was designed to gracefully support this. >>>> >>>> Note: the spec currently does not limit this API only the main frame >>>> top level document, but the chromium implementation does. We expect to >>>> change the implementation to expose InteractionContentfulPaint also to >>>> frames, but may change the spec to limit SoftNavigation entries (due to >>>> complexity of history stack). >>>> >>>> Link to entry on the Chrome Platform Status >>>> >>>> https://chromestatus.com/feature/5144837209194496?gate=4820517475844096 >>>> >>>> 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/69cd703e.050a0220.319665.006a.GAE%40google.com >>>> >>>> Intent to Extend Experiment 3: >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfULP5d3fNCAqeO2gLP56R3HCytmaNk%2B9kpYsC2dj4%3DqoQ%40mail.gmail.com >>>> >>>> Intent to Extend Experiment 4: >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEeF2TfyN4LMy2DQwjPrsTekEw8dNXgcqiogvznagjtWyfqixA%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/61471840-0ece-4ede-bfea-a57977511c0fn%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/61471840-0ece-4ede-bfea-a57977511c0fn%40chromium.org?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/CAEeF2Tdhfrd_iaxmL8-nJZ4w0q68VYcYtR592YzOaJcceAZ_OQ%40mail.gmail.com.
