Follow up to yesterday's PSA: We're aware of a case that relied on the bug to be able to use cross-site prefetching. This CL <https://chromium-review.googlesource.com/c/chromium/src/+/4086682> emulates the originally shipped behaviour for cases where the prefetch attempt would be rejected by the restriction to acceptable referrer policies. Instead of treating this as a bug fix, we'll reintroduce the correct behaviour as part of the intent for the referrer_policy key feature <https://chromestatus.com/feature/4694585584910336>.
On Tuesday, December 6, 2022 at 8:37:56 p.m. UTC-5 Jeremy Roman wrote: > *We would like to ship this Speculation Rules (prefetch) on desktop > (Windows, Mac, Linux, ChromeOS) in M110 and are seeking API owner approval > to do so.* > > Deltas since the original approved intent (for Android) are noted below. > > TAG review links are unchanged, and we're continuing to engage with TAG as > they respond. We still have no signal on Mozilla and WebKit standards > positions, though we can ping them again if API owners would like. > > Debuggability has improved, in that prefetches now appear in the Network > panel and a preloading status panel is in development. > > Much of the code has migrated from //chrome to //content, and we expect > this refactored code to be in use for stable users, when M110 reaches > stable. > > In addition, speculation rules itself has shipped on desktop as part of > Prerender2 (intent to ship > <https://groups.google.com/a/chromium.org/g/blink-dev/c/cY68NkAqREg/m/tCgJaCKbAwAJ>), > > so what this ships is the prefetch functionality specifically, including > use of the same private prefetch proxy as is used on Android under similar > rules. > > I assume this requires 3xLGTM again, but if not, please advise. :) > > On Tue, Dec 6, 2022 at 2:23 PM Kevin McNee <[email protected]> wrote: > >> PSA: The implementation of the acceptable referrer policy restriction, >> mentioned previously, was overly strict. As of this CL >> <https://chromium-review.googlesource.com/c/chromium/src/+/4077268>, it >> only applies to cross-site prefetches. >> >> On Wednesday, September 28, 2022 at 10:51:46 a.m. UTC-4 Kevin McNee wrote: >> >>> Bug fix PSA: An upcoming change [1] will have the implementation match >>> the spec in terms of referrer policy [2]. >>> >>> The prefetch request will now be sent with the referring document's >>> referrer policy and the resulting Referer. We also apply the restriction to >>> acceptable referrer policies. Previously, the behaviour was as if the >>> referring document had "no-referrer" as its policy. >>> >>> [1] https://chromium-review.googlesource.com/c/chromium/src/+/3910832 >>> [2] >>> https://wicg.github.io/nav-speculation/prefetch.html#list-of-sufficiently-strict-speculative-navigation-referrer-policies >>> >>> On Thursday, May 12, 2022 at 1:36:26 p.m. UTC-4 Mike Taylor wrote: >>> >>>> LGTM3 >>>> >>>> On 5/12/22 12:29 PM, Yoav Weiss wrote: >>>> >>>> LGTM2 >>>> >>>> >>>> On Thu, May 12, 2022 at 6:26 PM Daniel Bratell <[email protected]> >>>> wrote: >>>> >>>>> LGTM1 >>>>> >>>>> /Daniel >>>>> >>>>> >>>>> On 2022-05-11 09:44, Yoav Weiss wrote: >>>>> >>>>> >>>>> >>>>> On Tue, May 10, 2022 at 8:40 PM Jeremy Roman <[email protected]> >>>>> wrote: >>>>> >>>>>> On Tue, May 10, 2022 at 8:41 AM Yoav Weiss <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Apr 14, 2022 at 12:36 AM Jeremy Roman <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Contact emails >>>>>>>> >>>>>>>> [email protected], [email protected] >>>>>>>> >>>>>>>> Explainer >>>>>>>> >>>>>>>> https://github.com/WICG/nav-speculation/blob/main/triggers.md >>>>>>>> >>>>>>>> Specification >>>>>>>> >>>>>>>> https://wicg.github.io/nav-speculation/speculation-rules.html >>>>>>>> >>>>>>>> https://wicg.github.io/nav-speculation/prefetch.html >>>>>>>> >>>>>>>> Summary >>>>>>>> >>>>>>>> Flexible syntax for defining what outgoing links are eligible to be >>>>>>>> prepared speculatively before navigation. Enables access to additional >>>>>>>> enhancements, such as use of a private prefetch proxy, where >>>>>>>> applicable. >>>>>>>> >>>>>>> >>>>>>> So IIUC, this intent is for shipping cross-origin prefetch? Where >>>>>>> have y'all landed on the question of cache partitioning? Which >>>>>>> partition is >>>>>>> storing this prefetched resource? >>>>>>> >>>>>> >>>>>> It is isolated from any existing cache partition, and if the user >>>>>> does not then navigate to the prefetched resource it is not stored >>>>>> further. >>>>>> >>>>> >>>>> OK, thanks! >>>>> >>>>> >>>>>> >>>>>> This is limited to the "prefetch" action, and does not include >>>>>>>> "prerender". The Chrome setting (extended preloading) which allows any >>>>>>>> site >>>>>>>> to request use of the private prefetch proxy and was previously >>>>>>>> mentioned >>>>>>>> on intents for this feature, is currently disabled for policy reasons >>>>>>>> but >>>>>>>> can be exposed via Finch as part of a launch, if approved. >>>>>>>> >>>>>>>> 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/611 >>>>>>>> https://github.com/w3ctag/design-reviews/issues/721 >>>>>>>> >>>>>>> >>>>>>> https://github.com/WICG/nav-speculation/issues/160 which seems like >>>>>>> something we'd want to resolve before shipping. >>>>>>> Are y'all considering this new syntax? >>>>>>> Would it make sense to run this by your OT participants and/or >>>>>>> partners? Web developers in general? >>>>>>> >>>>>> >>>>>> The reason I don't think so is that this intent includes only more >>>>>> basic rules which supply a list of URLs, and extending the syntax to >>>>>> allow >>>>>> developers to select URLs from the links in the page is a future >>>>>> enhancement, albeit one I'm personally excited about. I don't expect >>>>>> that >>>>>> choices about how to express such selectors to cause compatibility >>>>>> issues >>>>>> with plain list-of-URLs rules. >>>>>> >>>>> >>>>> Oh, OK. Good to know! >>>>> >>>>> >>>>>> >>>>>> >>>>>>>> TAG review status >>>>>>>> >>>>>>>> First is complete, second is pending. >>>>>>>> >>>>>>>> Risks >>>>>>>> >>>>>>>> Interoperability and Compatibility >>>>>>>> >>>>>>> >>>>>>> Which of the 24 issues >>>>>>> <https://github.com/WICG/nav-speculation/issues> open on the repo >>>>>>> is relevant for this intent? Can you highlight those that may impact >>>>>>> future >>>>>>> compat and interop? >>>>>>> >>>>>> >>>>>> It's intended that such issues be labelled with speculation-rules or >>>>>> prefetch (indicating they affect one of the two pieces this would ship) >>>>>> and >>>>>> affects-compat. At the moment, the only such issue is this one >>>>>> <https://github.com/WICG/nav-speculation/issues/133>, which I >>>>>> believe is resolved as to prefetch. Looking again, any followup >>>>>> discussion >>>>>> (e.g. regarding subresources in prerenders) fit better in another issue, >>>>>> so >>>>>> I've closed that one. >>>>>> >>>>>> This issue <https://github.com/WICG/nav-speculation/issues/158> is >>>>>> not so labelled, though it's marginal and arguably could be. There is >>>>>> some >>>>>> ongoing discussion (which might become a whatwg/html issue shortly) >>>>>> connected to it about when user agents should observe modification and >>>>>> removal. While I would like to resolve this shortly, I expect the >>>>>> practical >>>>>> change to be relatively small and if anything in the direction of >>>>>> providing >>>>>> somewhat stronger guarantees rather than weaker ones. >>>>>> >>>>>> Most of the issues are with respect to either other features or >>>>>> enhancements which are likely to evolve in a way that is compatible with >>>>>> this. >>>>>> >>>>>> >>>>>>>> >>>>>>>> Gecko: No signal ( >>>>>>>> https://github.com/mozilla/standards-positions/issues/620) >>>>>>>> >>>>>>>> WebKit: No signal ( >>>>>>>> https://lists.webkit.org/pipermail/webkit-dev/2022-March/032158.html >>>>>>>> ) >>>>>>>> >>>>>>>> Web developers: Some positive signal from a developer using the >>>>>>>> feature, and from a developer operating a site that is prefetched >>>>>>>> using >>>>>>>> this feature. >>>>>>>> >>>>>>> >>>>>>> It'd be good to externalize such feedback if at all possible. Any >>>>>>> links? >>>>>>> >>>>>> >>>>>> I'll ask. >>>>>> >>>>>> >>>>>>>> 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? >>>>>>>> >>>>>>>> >>>>>>>> Debuggability >>>>>>>> >>>>>>>> Limited, though fixing crbug.com/1315706 should provide basic >>>>>>>> insight and I'm not aware of anything that would preclude us from >>>>>>>> adding >>>>>>>> more sophisticated developer tools integration in the future. >>>>>>>> >>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>>>>> ? >>>>>>>> >>>>>>>> Tests are being landed at speculation-rules/prefetch/ in the WPT >>>>>>>> directory. We are continuing to work on adding more, though coverage >>>>>>>> in >>>>>>>> some areas will require the completion of some ongoing refactoring and >>>>>>>> additional test integration. >>>>>>>> >>>>>>>> Flag name >>>>>>>> >>>>>>>> The origin trial name is SpeculationRulesPrefetch. Some code >>>>>>>> internally calls this SpeculationRulesPrefetchProxy, but is not >>>>>>>> limited to >>>>>>>> proxied prefetches exclusively. >>>>>>>> >>>>>>>> Requires code in //chrome? >>>>>>>> >>>>>>>> Some code exists in chrome/, but refactoring work is underway to >>>>>>>> migrate as much of this as reasonable to content/. Some code specific >>>>>>>> to, >>>>>>>> e.g., the specific Google proxy service, will remain in chrome/. >>>>>>>> >>>>>>>> Tracking bug >>>>>>>> >>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1173646 >>>>>>>> >>>>>>>> Estimated milestones >>>>>>>> >>>>>>>> M103 (Android) >>>>>>>> >>>>>>>> Since the current origin trial ends after M101, we would like to >>>>>>>> extend the experiment until shipping and request a gapless launch. >>>>>>>> >>>>>>>> I believe a gapless launch is justified here. The speculation rules >>>>>>>> API has been used by developers as part of this launch and the >>>>>>>> prerendering >>>>>>>> experiment >>>>>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/Kpp6uJJRrqI/m/GTo_aF0qEQAJ>. >>>>>>>> >>>>>>>> There is an ongoing early access program >>>>>>>> <https://github.com/buettner/private-prefetch-proxy/issues/15> for >>>>>>>> publishers to opt in to receiving IP-obscured traffic enabled by this >>>>>>>> feature, and have received positive feedback about this program – >>>>>>>> which is >>>>>>>> planned to launch by default in coordination with this web platform >>>>>>>> side >>>>>>>> launch. Enforcing a gap here would interrupt this and require the >>>>>>>> private >>>>>>>> prefetch proxy team to notify affected partners (who are receiving >>>>>>>> prefetch >>>>>>>> traffic, rather than being direct users of this API), for no known >>>>>>>> benefit >>>>>>>> in this case. >>>>>>>> >>>>>>>> Shipping on desktop is not possible at this point due to >>>>>>>> extensions. We expect to file a separate Intent to Ship in the future. >>>>>>>> >>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>> >>>>>>>> https://chromestatus.com/feature/5740655424831488 >>>>>>>> >>>>>>>> Links to previous Intent discussions >>>>>>>> >>>>>>>> Intent to prototype: >>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/1q7Fp3zpjgQ >>>>>>>> >>>>>>>> Intent to Experiment: >>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/Cw-hOjT47qI/m/EObn9-4MAgAJ >>>>>>>> >>>>>>>> Intent to Extend Experiment: >>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13cKaJB%3D2GQS4N3om1eSmuCVOY5zXchRCV8oCYkcq8kH0g%40mail.gmail.com >>>>>>>> >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13cKaJB=2gqs4n3om1esmucvoy5zxchrcv8ocykcq8k...@mail.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 [email protected]. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13cbVXw9nEo4zVwhGz_W65kfg0neYDqW3sMQC%2BYNzX6kfg%40mail.gmail.com >>>>>>>> >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13cbVXw9nEo4zVwhGz_W65kfg0neYDqW3sMQC%2BYNzX6kfg%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 [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVcLV%3DpWo%2B0dbv027%3D-okgTtmQ7azCrBNsJsspmgTVByQ%40mail.gmail.com >>>>> >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVcLV%3DpWo%2B0dbv027%3D-okgTtmQ7azCrBNsJsspmgTVByQ%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 [email protected]. >>>> >>>> To view this discussion on the web visit >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVLNKUNTFxFPwz_EatkxZOYO-oJwFnC%2BHBTVt4rXRtxxw%40mail.gmail.com >>>> >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVLNKUNTFxFPwz_EatkxZOYO-oJwFnC%2BHBTVt4rXRtxxw%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 [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/61c67609-3335-4fa4-8040-489d156eaf91n%40chromium.org.
