demo · v141
Viewport Eager
Before 141 the only two eagernesses worth using on desktop were moderate (hover-based, slow on scroll-heavy pages) and immediate (prefetch everything, wasteful). Chrome 141 makes eager a real middle: links inside the viewport get prefetched on appearance, anything off-screen waits. This concept simulates the three eagernesses across a scrollable list.
the rules
// new behaviour: eager prefetches in-viewport links, not literally everything
{
"prefetch": [{
"source": "document",
"where": { "and": [{ "href_matches": "/articles/*" }] },
"eagerness": "eager"
}]
}
why this angle
The chromestatus note says the previous "eager" was identical to "immediate" — useless as a middle option. Chrome 141 introduces a real intermediate behaviour: prefetch when the link enters the viewport, not just on hover, not unconditionally for every match on the page. This is the heuristic Google's own Quicklink library re-implements with JavaScript and IntersectionObserver. Building it into the platform means consumers don't ship the polyfill, and the bookkeeping (canceling stale prefetches, deduping, prioritising) happens at network layer where it belongs.