LGTM1

On 6/5/24 11:21 PM, Liviu Tinta wrote:


        Contact emails

dome...@chromium.org, jbro...@chromium.org, liviuti...@chromium.org


        Explainer

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


        Specification

https://wicg.github.io/nav-speculation/prerendering.html <https://wicg.github.io/nav-speculation/prerendering.html>


        Summary

Adds a hint to speculation rules that informs the navigation prerender cache that the URL to be prerendered expects to receive the same No-Vary-Search header in the response.

The hint is useful because prerenders that depend on No-Vary-Search to match to navigations do not benefit the user if the navigation happens before prerender headers return from the server.  Using the hint, the web browser will expect, but verify, that the No-Vary-Search hint matches with the No-Vary-Search header. If the No-Vary-Search hint does not match the No-Vary-Search header received then the web browser will send a new request.


We would like to ship "No-Vary-Search Hint for Prerender Speculation Rules" together with "No-Vary-Search support for prerender <https://chromestatus.com/feature/5099218903760896>".


        Blink component

Internals>Preload>Prerender <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3EPreload%3EPrerender>


        TAG review

Not applicable. The TAG has already given a negative opinion on the overall complexity of speculation rules ( https://github.com/w3ctag/design-reviews/issues/721 <https://github.com/w3ctag/design-reviews/issues/721>), so we anticipate it would not be a good use of their time to review additions to the syntax. The addition itself is small and any architectural questions about it would be covered under the general closed speculation rules review.


        TAG review status

Not applicable


        Risks



        Interoperability and Compatibility

None



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/620#issuecomment-1608195274 <https://github.com/mozilla/standards-positions/issues/620#issuecomment-1608195274>)


WebKit: No signal (https://github.com/WebKit/standards-positions/issues/54#issuecomment-1608197504 <https://github.com/WebKit/standards-positions/issues/54#issuecomment-1608197504>)


Web developers: Below is the text from the I2S of the No-Vary-Search on navigational prefetch, and we believe the same applies to Prerendering. 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/u/1/d/1GK92nCORW5vKd7LgGtTsgy35eqTV7P71l05pHsni8ok/edit#slide=id.g240fd6541f7_0_31 <https://docs.google.com/presentation/u/1/d/1GK92nCORW5vKd7LgGtTsgy35eqTV7P71l05pHsni8ok/edit#slide=id.g240fd6541f7_0_31>


        Ergonomics

(Text taken from Prefetch NVS I2S)


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.



        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?

We are closely working with Android WebView team, and the broader prerender feature is gated through new AwSettings API (currently @RequiresOptIn) so there's zero risk that it will break existing WebView apps.




        Debuggability

None



        Will this feature be supported on all six Blink platforms
        (Windows, Mac, Linux, ChromeOS, 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/prerender?label=experimental&label=master&aligned <https://wpt.fyi/results/speculation-rules/prerender?label=experimental&label=master&aligned>

(The test files starting with no-vary-search)



        Flag name on chrome://flags

None


        Finch feature name

Prerender2NoVarySearch


        Requires code in //chrome?

False


        Estimated milestones

Shipping on desktop

        

127


Shipping on Android

        

127


Shipping on WebView

        

127




        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/5190922953555968?gate=5148879099265024 <https://chromestatus.com/feature/5190922953555968?gate=5148879099265024>


        Links to previous Intent discussions

Intent to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2B7y87rgssbBecLSY5fz03ATcAAjgy%3DjY322w_2roQdsehP4Dg%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2B7y87rgssbBecLSY5fz03ATcAAjgy%3DjY322w_2roQdsehP4Dg%40mail.gmail.com>


This intent message was generated by Chrome Platform Status <https://chromestatus.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/CAHaAqYJphk8wg8yLr-VFe2QJDZ4N%3D8Z%2BBAs9VL5scY-brTmRTg%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHaAqYJphk8wg8yLr-VFe2QJDZ4N%3D8Z%2BBAs9VL5scY-brTmRTg%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/457ce01c-56ea-42a9-b9ef-1d84216ccd90%40chromium.org.

Reply via email to