Awesome, thanks Michal! On Wed, Jun 24, 2026 at 1:29 PM Michal Mocny <[email protected]> wrote:
> 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/CAFUtAY-iXi-SziakNMHPOOB%3D7CtwUKHmEHzYWJ5OWfofcVG6Gg%40mail.gmail.com.
