On 11/1/23 9:59 AM, Liviu Tinta wrote:
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.
We would like to ship "No-Vary-Search support in navigation prefetch
cache" together with "No-Vary-Search Hint for Prefetch Speculation
Rules" (https://chromestatus.com/feature/4887338302308352).
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
Positive.
Chromium Trial Name
NoVarySearchPrefetch
Link to origin trial feedback summary
https://github.com/WICG/nav-speculation/issues
Are there any open issues that would result in breaking changes, after
we ship?
Origin Trial documentation link
https://developer.chrome.com/origintrials/#/view_trial/4146689356901384193
Risks
Interoperability and Compatibility
/Gecko/: No signal
(https://github.com/mozilla/standards-positions/issues/717)
/WebKit/: No signal
(https://github.com/WebKit/standards-positions/issues/106)
/Web developers/: Google Search has been experimenting with
No-Vary-Search header / Speculation Rules "expects_no_vary_search".
This functionality helps Google Search to match prefetched content to
the next user navigation. Developers can use parameters in the
prefetched URL that are not needed when navigating to the actual link
(e.g. the source of the link click). The server can customize behavior
using these parameters without causing a cache miss in the browser.
"expects_no_vary_search" addition to Speculation Rules allows the
browser to completely handle the case where the user navigates to a
URL that is currently prefetched by waiting for the ongoing prefetch
instead of directly requesting the page from the server.
Google Search conducted experiments prefetching Search results pages
from the search box and other links that lead to another Search
results page. There was significant latency improvement for navigating
to Search result pages prefetched using No-Vary-Search header and
"expects_no_vary_search".
/Other signals/: No-Vary-Search header has been discussed, together
with No-Vary-Search Hint for Prefetch Speculation Rules at Web Perf WG
meeting at TPAC 2023
<https://docs.google.com/presentation/d/1GK92nCORW5vKd7LgGtTsgy35eqTV7P71l05pHsni8ok/edit#slide=id.g240fd6541f7_0_31>.
Ergonomics
No-Vary-Search will be used in tandem with Speculation Rules
(https://wicg.github.io/nav-speculation/speculation-rules.html). The
default usage of No-Vary-Search will not make it hard for Chrome to
maintain good performance.
Activation
It will not be challenging for developers to take advantage of this
feature immediately.
Security
See:
https://github.com/WICG/nav-speculation/blob/main/no-vary-search-security-privacy-questionnaire.md
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
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".
No-Vary-Search header value for the prefetch is available on the
Network tab. Developers can also use the preloading panel
(https://crbug.com/1361483) which shows all ongoing preloads.
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
https://wpt.fyi/results/speculation-rules/prefetch/no-vary-search?label=experimental&label=master&aligned
<https://wpt.fyi/results/speculation-rules/prefetch/no-vary-search?label=experimental&label=master&aligned>
Flag name on chrome://flags
Finch feature name
NoVarySearchPrefetch
Requires code in //chrome?
False
Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1378075
Non-OSS dependencies
Does the feature depend on any code or APIs outside the Chromium open
source repository and its open-source dependencies to function?
No.
Estimated milestones
Shipping on desktop 121
OriginTrial desktop last 120
OriginTrial desktop first 110
DevTrial on desktop 110
Shipping on Android 121
OriginTrial Android last 120
OriginTrial Android first 110
DevTrial on Android 110
Shipping on WebView 121
OriginTrial webView last 120
OriginTrial webView first 110
Anticipated spec changes
Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github
issues in the project for the feature specification) whose resolution
may introduce web compat/interop risk (e.g., changing to naming or
structure of the API in a non-backward-compatible way).
None.
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
Intent to Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHaAqYLGT%2BV3_u_oumjHCZD05RRYY5guMjz1vb7501sNF1CANg%40mail.gmail.com
Intent to Extend Experiment:
https://groups.google.com/a/chromium.org/g/blink-dev/c/7oMlGWmVv2Q/m/B2PACBSnBgAJ
--
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/CAHaAqYKL2psmkYpQQ6KjrM_41yt8f%3DvH_-m0%3DT4idWT4zSumHw%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHaAqYKL2psmkYpQQ6KjrM_41yt8f%3DvH_-m0%3DT4idWT4zSumHw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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/8740e1f5-3d39-476f-987e-96cb8225446e%40chromium.org.