LGTM
On 1/13/26 1:27 a.m., Chromestatus wrote:
*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
<https://issues.chromium.org/issues?q=customfield1222907:%22Internals%3EPreload%3EPrerender%22>
*Web Feature ID*
speculation-rules <https://webstatus.dev/features/speculation-rules>
*Search tags*
speculationrules </features#tags:speculationrules>, prerendering
</features#tags:prerendering>, prefetch </features#tags:prefetch>,
nostateprefetch </features#tags: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
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
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
<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/6965e5e2.050a0220.22847.035a.GAE%40google.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6965e5e2.050a0220.22847.035a.GAE%40google.com?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/02cfff99-8dae-4c04-bbe6-cc6b77ab814f%40chromium.org.