Contact emails
[email protected]

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 (eg, 
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 desktop 151

Origin trial desktop first 146

Origin trial desktop last 151

DevTrial on desktop 146

Shipping on Android 151

Origin trial Android first 146

Origin trial Android last 151

DevTrial on Android 146




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, 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.

-- 
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/6a2794e5.3bcf9739.12c2b1.056d.GAE%40google.com.

Reply via email to