Intent to Ship: Speculation rules: form_submission field

39 views
Skip to first unread message

Chromestatus

unread,
Jun 9, 2026, 12:22:10 AM (24 hours ago) Jun 9
to blin...@chromium.org, robe...@chromium.org
Contact emails
robe...@chromium.org

Explainer
https://github.com/WICG/nav-speculation/blob/main/prerendering-form-submission.md

Specification
https://storage.googleapis.com/spec-previews/WICG/nav-speculation/pull/426/diff/prerendering.html

Design docs

https://docs.google.com/document/d/13Xr_kSYZtvhRNaKpCiP7wLKYtDcpLdDWSH4y6gHq0kQ/edit?usp=sharing

Summary
This extends speculation rules syntax to allow developers to specify the form_submission field for prerender. This field directs the browser to prepare the prerender as a form submission, so that it can be activated by real form submission navigations. Examples include a simple search form which results in a /search?q=XXX GET request navigation, support of which has been requested by web developers.

Blink component
Internals>Preload>Prerender

Web Feature ID
speculation-rules

Motivation
Form submissions cannot activate prerendered pages currently by design, due to internal browser limitations. In at least Chrome, ordinary form submission navigations have special state and run extra checks that ordinary prerenders don't experience. This means that a form submission can never activate a prerender, because the prerender was not prepared properly as a form submission. In addition to the internal browser limitations, resources can be wasted on prerendering a page which is not eligible, such as CSP disallowing form-action.

Initial public proposal
https://github.com/WICG/nav-speculation/issues/322

TAG review
https://github.com/w3ctag/design-reviews/issues/1192

TAG review status
Issues addressed

Origin Trial Name
PrerenderActivationByFormSubmission

Goals for experimentation
To evaluate how the prerendering form_submission support works on real sites before shipping it by default. We will be evaluating performance, stability, and correctness, and any other feedback the sites have when they use this feature.

Chromium Trial Name
PrerenderActivationByFormSubmission

Origin Trial documentation link
https://github.com/WICG/nav-speculation/blob/main/prerendering-form-submission.md

WebFeature UseCounter name
kPrerenderActivationByFormSubmission

Risks


Interoperability and Compatibility
The entire speculative loading feature is a progressive enhancement, so in general risks are low in this area.

Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1355) Mozilla is neutral on speculation rules syntax in general (https://github.com/mozilla/standards-positions/issues/620), although positive on prefetching. This new request for this specific feature is still pending for new response after pinging.

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/614) WebKit has not yet responded to our 2022 request for a position on speculation rules although positive on same-origin prefetching. (https://github.com/WebKit/standards-positions/issues/54) We opened a new request for this specific feature to ensure we captured any of their input.

Web developers: Positive (https://github.com/WICG/nav-speculation/issues/322)

Other signals:

Ergonomics
No

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, speculation rules prerender are not supported on WebView.


Debuggability
As well as other speculationrule features, this feature can be viewed on devtools as the source script. Another dedicated field will be added to the panel for easier debugging.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No
Windows, Mac, Linux, ChromeOS, Android. WebView doesn't support speculation rules prerendering because prerendering navigation breaks the lifecycle (e.g., callback sequence) of the WebView.

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


Flag name on about://flags
PrerenderActivationByFormSubmission

Finch feature name
PrerenderActivationByFormSubmission

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/346555939

Measurement
Blink.UseCounter.Features https://crrev.com/c/7533307

Estimated milestones
Shipping on desktop151
Origin trial desktop first146
Origin trial desktop last151
DevTrial on desktop146
Shipping on Android151
Origin trial Android first146
Origin trial Android last151
DevTrial on Android146


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).

None.

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5074313831120896?gate=6571193366872064

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/698f0243.2b0a0220.19817b.0194.GAE%40google.com
Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69aa2f3b.2b0a0220.c2d7.0503.GAE%40google.com


This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages