demo · v141
Speculation Rules Configurator
Build a <script type="speculationrules"> block, preview the JSON, inject it live into the page, and simulate eagerness-level hover triggers across five test links. See exactly what changed in Chrome 141 for desktop eager.
probing HTMLScriptElement.supports("speculationrules")…
Preset scenarios
(configure above and press "Generate rules")
Speculation rules script injected into <head>. In a supporting browser, prefetch/prerender would now be active.
Simulate hover triggers
Hover the links below. The eagerness setting controls when a prefetch/prerender is considered "fired". Matches the Chrome 141 desktop eager timing.
hover a link to see events…
Chrome 141 change: eager on desktop
| Eagerness | Desktop trigger (Chrome 140) | Desktop trigger (Chrome 141) | Mobile trigger |
|---|---|---|---|
immediate |
On script parse (immediately) | On script parse (immediately) | On script parse |
eager |
Same as immediate (fired immediately) | Short hover ~75 ms (NEW) | Same as immediate |
moderate |
~200 ms hover or viewport | ~200 ms hover or viewport | Viewport intersection |
conservative |
pointerdown / touchstart | pointerdown / touchstart | pointerdown / touchstart |
Before Chrome 141, eager on desktop behaved identically to immediate — rules fired on parse regardless of user intent. This wasted bandwidth on pages users never navigate to. Chrome 141 aligns eager with its intended meaning: "shorter hover than moderate, but still intent-based."
the rules
<script type="speculationrules">
{
"prerender": [{
"where": { "selector_matches": "a[href^='/']" },
"eagerness": "eager"
}]
}
</script>
// Chrome 141 desktop: fires after ~75 ms hover
// Chrome 140 desktop: fired immediately on parse (same as "immediate")
// Mobile: fires immediately regardless of eagerness
see also
- Speculation Rules Desktop Eager Improvements — feature index
- ChromeStatus entry
- Spec