Thanks Liviu.

I've spent some time today reviewing the explainer and spec, and find the use cases compelling.

LGTM1 to ship. A non-blocking request would be to add the security & privacy considerations from the explainer into the draft WICG spec (or something similar).

(Also, kudos to all who contributed to the explainer - it's very thorough and answered every question I had as I began to review in depth. Excellent work.)

On 11/6/23 5:08 PM, Liviu Tinta wrote:
> Are there any open issues that would result in breaking changes, after we ship?

There are 2 open issues related to No-Vary-Search: https://github.com/WICG/nav-speculation/labels/no-vary-search. None of the open issues requires modifying No-Vary-Search header. We are not expecting breaking changes after we ship.

On Monday, November 6, 2023 at 1:43:06 PM UTC-5 Mike Taylor wrote:

    On 11/1/23 9:59 AM, Liviu Tinta wrote:


            Contact emails

    dome...@chromium.org, jbro...@chromium.org
    <mailto:jbro...@chromium.org>, liviuti...@chromium.org
    <mailto:liviuti...@chromium.org>


            Explainer

    https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md
    <https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md>


            Specification

    https://wicg.github.io/nav-speculation/no-vary-search.html
    <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
    <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
    <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
    <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
    <https://developer.chrome.com/origintrials/#/view_trial/4146689356901384193>


            Risks



            Interoperability and Compatibility



    /Gecko/: No signal
    (https://github.com/mozilla/standards-positions/issues/717
    <https://github.com/mozilla/standards-positions/issues/717>)

    /WebKit/: No signal
    (https://github.com/WebKit/standards-positions/issues/106
    <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
    <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
    
<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
    <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
    <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
    
<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
    
<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
    
<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
    <mailto: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/b878e749-5d1a-4205-8612-3bd36db82fb3%40chromium.org.

Reply via email to