Contact emails dome...@chromium.org, jbro...@chromium.org, liviuti...@chromium.org
Explainer https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md Specification https://wicg.github.io/nav-speculation/no-vary-search.html Summary Enables prefetch 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 prefetch cache. Blink component Internals>Preload <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3EPreload> TAG review https://github.com/w3ctag/design-reviews/issues/797 TAG review status Pending Risks Interoperability and Compatibility Gecko: No signal. Request for Standards Position: https://github.com/mozilla/standards-positions/issues/717. WebKit: No signal. Informal positive signals from individual engineers at TPAC 2022. Request for Standards Position: https://github.com/WebKit/standards-positions/issues/106. Web developers: Positive. Google Search is interested in experimenting with the header, specifically for the customizing server behavior <https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md#customizing-server-behavior> use case. 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? No. This is a new opt-in feature. Goals for experimentation Verify that the No-Vary-Search HTTP response header's design is useful and solves a real world problem. Based on feedback, iterate on the design to increase functionality. Validate the impact of this feature. Ongoing technical constraints The No-Vary-Search header introduces a non-exact way to match the request URL with an already cached response. In theory this allows more possibilities to reuse responses in browser cache/s (if the browser implements this feature). If a browser does not implement the feature then it can simply ignore this HTTP response header and continue with an exact match between request URL and cached response. In implementing and defining the specification for this HTTP response header we made sure it follows RFC 8941 and also that it allows for extensibility in the future. The prefetch version of this feature does not add any ongoing technical constraints, as the prefetch cache is small. It's possible a future version which also applies to the HTTP cache could have trickier interactions, due to the many entries in the user's HTTP cache requiring a different architecture. That is not under consideration for now. Debuggability The website owner can debug the feature in DevTools by making sure that, when navigating to a prefetched page by using a URL that matches under No-Vary-Search conditions, the navigation happens from the prefetch cache by looking at the Size column in the Network tab. In case of success, when hovering over the Size column in the Network tab of Dev Tools, they should see: "Served from prefetch cache, resource size: yyyB" We are also working on a preloading panel (https://crbug.com/1361483) which shows all ongoing preloads, including both the targeted URL and the cached URL, if they differ due to No-Vary-Search. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)? Yes. Is this feature fully tested by web-platform-tests <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> ? Yes. WPTs will be landed before the experiment starts under external/wpt/speculation-rules/prefetch/no-vary-search folder. Flag name PrefetchNoVarySearch Requires code in //chrome? False Estimated milestones Experiment to start in M110 and end in M115. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5071247189213184 Links to previous Intent discussions Intent to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHaAqYKutrvgMxR%3DnfAQOfBHNJo9ifrmFRSbiE0heDyeW0uKJA%40mail.gmail.com -- 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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHaAqYLGT%2BV3_u_oumjHCZD05RRYY5guMjz1vb7501sNF1CANg%40mail.gmail.com.