Intent to Prototype: No-Vary-Search support for prerender

145 views
Skip to first unread message

Liviu Tinta

unread,
Feb 26, 2024, 11:37:39 AMFeb 26
to blink-dev

Contact emails

dom...@chromium.org, jbr...@chromium.org, liviu...@chromium.org


Explainer

https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md#prerendering-activation


Specification

None


Summary

Enables a prerender entry to match even if URL query parameters change. The No-Vary-Search HTTP response header declares that some or all parts of a URL's query can be ignored for cache matching purposes. It can declare that the order of query parameter keys should not cause cache misses, that specific query parameters should not cause cache misses or that only certain known query parameters should cause cache misses. It could apply to multiple caches, but this entry refers to support for prerender.



Blink component

Internals>Preload>Prerender


Motivation

Caching is useful for making web pages load faster, and thus creating better user experiences. 


One of the most important cache keys for web resources is the resource's URL. However, sometimes multiple URLs can represent the same resource. This leads to caches not always being as helpful as they could be: if the browser has the resource cached under one URL, but the resource is then requested under another, the cached version will be ignored.


Via a new HTTP header, No-Vary-Search, resources can declare that some or all parts of the query can be ignored for cache matching purposes.


This feature is focused on adding support for No-Vary-Search header to the prerender cache.



Initial public proposal

https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md#prerendering-activation


TAG review

https://github.com/w3ctag/design-reviews/issues/797


TAG review status

Closed (validated). 


Risks



Interoperability and Compatibility

None



Gecko: No signal


WebKit: No signal


Web developers: No signals


Other signals:


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?

None



Debuggability

Yes. The prerender will be available in DevTools->Application->Speculative loads->Speculations and the DevTools->Application->Speculative loads specifies the Speculative loading status for the current page. A developer could test that No-Vary-Search header functionality is working in Dev Tools using the information on the two screens mentioned above.



Is this feature fully tested by web-platform-tests?

Yes, Web Platform Tests will be added.


Flag name on chrome://flags

None


Finch feature name

None


Non-finch justification

None


Requires code in //chrome?

False


Tracking bug

https://issues.chromium.org/issues/41494389


Estimated milestones

No milestones specified



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5099218903760896


Reply all
Reply to author
Forward
0 new messages