demo · v138

Rules builder

An interactive editor for the full Speculation Rules JSON schema — including the new target_hint field. Pick action, eagerness, target, then inject the rules into the page and watch what the browser does. Includes a compatibility matrix showing which combinations are valid.

Unflagged in Chrome 138. target_hint: "_blank" joins the existing fields. Required if you plan to prerender a page that will end up in a new tab — otherwise Chrome silently drops the prerender to a prefetch.
probing speculation rules support…

Generated speculation rules

Compatibility matrix · action × target_hint

_self
_blank
prefetch
OK (always)
OK · hint affects which tab gets the cached entry
prerender
OK
v138 required — without the hint, Chrome demotes to prefetch silently
  • target_hint = _self: prerender goes into the current tab. Use for in-page nav.
  • target_hint = _blank: prerender is reserved for a new tab. Use when the link has target=_blank or you expect middle-click.
  • Missing hint + _blank link: Chrome 137 wasted the prerender on the wrong tab. v138 demotes it to a prefetch instead.

What's happening

  1. Every speculation rules block is a JSON document with prefetch or prerender arrays.
  2. Each rule names source (list, document, or href_matches), an eagerness, and a set of URLs or patterns.
  3. The new target_hint field tells the browser which top-level browsing context the prerender will be moved into. Without it, a prerender of a target=_blank link is wasted.
  4. Try the builder: switch action between prefetch and prerender, switch target_hint, inject, then open DevTools → Application → Speculative Loads to see what the browser actually scheduled.

see also