Intent to Extend Experiment: Speculation Rules: prerender-until-script Action

61 views
Skip to first unread message

Chromestatus

unread,
Oct 6, 2026, 10:28:01 PM (2 days ago) Oct 6
to blin...@chromium.org, lin...@chromium.org, vis...@google.com
Contact emails
lin...@chromium.org, vis...@google.com

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 Name
PrerenderUntilScript

Goals for experimentation
- whether this feature work as expected on developers' sites. - whether it is safe to leave inline event handlers as it is on websites. Developers will be able to monitor the error rate of JavaScript execution, and provide feedback on that.

Chromium Trial Name
PrerenderUntilScript

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

WebFeature UseCounter name
kSpeculationRulesPrerenderUntilScript

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


Reason this experiment is being extended
1. Developers have reported that it is currently slower than prefetch. We suspect one of the reasons is that the Prerender2FallbackPrefetchSpecRules feature is not yet enabled by default. Since this feature is launching soon, we'd like to monitor our metrics once it goes live to see if performance improves. 2. Some developers says that they do not have enough bandwidth to work on it and they're moving slowly, so we'd like to extend the OT to wait for their feedback.

Reason this experiment is being extended
We realized there might be a performance issue, and since the optimization is included in M154, we would like to extend the OT to allow partners to re-try this.

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 first144
Origin trial desktop last150
Origin trial extension 1 end milestone154
Origin trial extension 2 end milestone159
DevTrial on desktop144
Origin trial Android first144
Origin trial Android last150
DevTrial on Android144
Origin trial WebView first144
Origin trial WebView last150


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

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
Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6965e5e2.050a0220.22847.035a.GAE%40google.com
Intent to Extend Experiment 1: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a1e652b.c5ff9f8d.331a2d.02bd.GAE%40google.com


This intent message was generated by Chrome Platform Status.

Yoav Weiss (@Shopify)

unread,
Oct 8, 2026, 1:59:59 AM (23 hours ago) Oct 8
to Chromestatus, blin...@chromium.org, lin...@chromium.org, vis...@google.com
Can you comment on the progress made towards shipping since the last experiment extension?

--
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ac5ae1d.a448aa95.130ec9.016d.GAE%40google.com.

Lingqi Chi

unread,
Oct 8, 2026, 2:04:34 AM (23 hours ago) Oct 8
to blink-dev, Yoav Weiss, blin...@chromium.org, lin...@chromium.org, vis...@google.com, Chromestatus
Thank you for your comment! 
We observed that using the existing prerender process model forces same-origin navigations to create and use a new process, which introduces unnecessary overhead.
To address this, we updated the process model to allow prerender-until-script to reuse the initiator's renderer process (mimicking normal same-origin navigation) to evaluate whether this improves performance.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

Yoav Weiss (@Shopify)

unread,
Oct 8, 2026, 2:41:06 AM (22 hours ago) Oct 8
to Lingqi Chi, blink-dev, vis...@google.com, Chromestatus
LGTM to extend experimenting till M159 (inclusive).

Thanks for pushing this!! :)

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
Reply all
Reply to author
Forward
0 new messages