Contact emails
[email protected]

Explainer
https://github.com/WICG/nav-speculation/blob/main/prerender-until-script.md


Specification
https://wicg.github.io/nav-speculation/prerendering.html#speculation-rule-set-prerender_until_script-rules


Design docs

https://docs.google.com/document/d/18Ny-OJ5kfyxkZ8h73OGigk8B3gDnoxjH34RVcvSo5Do/edit?tab=t.szm4nrdsfrjv


Summary
This extends speculation rules to introduce a new action called 
prerender_until_script. It is designed as an intermediate option between the 
existing prefetch (which only fetches the main document) and prerender (which 
fully renders the page and runs all scripts). This new action will fetch and 
parse a page, discover and download its subresources like images and 
stylesheets, but will pause all script execution. When the user navigates to 
the page, it activates, and all the deferred scripts are then executed in 
order. This allows for a near-instant page load for content-heavy sites without 
the performance cost or side effects of running analytics or third-party 
scripts prematurely.


Blink component
Internals>Preload>Prerender


Web Feature ID
speculation-rules


Search tags
speculationrules, prerendering, prefetch, nostateprefetch


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


TAG review status
Not applicable


Origin Trial documentation link
https://github.com/WICG/nav-speculation/blob/main/prerender-until-script.md


Risks




Interoperability and Compatibility
Other browsers do not implement this feature yet, but if should be safe 
because: 1. it is an optimization, so it should be no-op on other browsers 2. 
other browsers do not implement any of speculationrule actions yet.

Gecko: No signal

WebKit: No signal

Web developers: Positive (https://github.com/WICG/nav-speculation/issues/305) 
Web developers proposed that UA should implement an intermediate option between 
the existing prefetch and prerender actions.

Other signals:


Ergonomics
no


Activation
No. Developers should be able to easily try this feature by changing 
"prerender" to "prerender_until_script" following the explainer.


Security
It should be as safe as prerender action, as it pauses JavaScript execution 
during prerendering. One potential risk is the inline event handlers. inline 
event handlers will be executed normally during prerendering, it seems risky 
but we find websites usually put inline scripts before defining a inline event 
handler, and the inline script will make the parser be paused, therefore user 
agent has no chance to execute the inline event handlers. So, we think is is a 
low possibility risk, and would like to confirm with Origin Trial.


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?
No information provided



Goals for experimentation
No information provided


Ongoing technical constraints
We assume it is ok not to handle inline event handlers differently as for now 
most pages put <script> tag before inline event handlers. But if it happens, we 
need to refine the inline event handlers' execution logic.


Debuggability
As well as other speculationrule features, this feature shows its current 
status on devtools.


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?
Yes



Flag name on about://flags
prerender-until-script


Finch feature name
PrerenderUntilScript


Requires code in //chrome?
False


Tracking bug
https://issues.chromium.org/u/1/issues/428500219


Measurement
Blink.UseCounter.Features


Estimated milestones


Origin trial desktop first 144

Origin trial desktop last 150

DevTrial on desktop 144

Origin trial Android first 144

Origin trial Android last 150

DevTrial on Android 144

Origin trial WebView first 144

Origin trial WebView last 150




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


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68f20f78.050a0220.29f70d.004e.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/6965e5e2.050a0220.22847.035a.GAE%40google.com.

Reply via email to