Contact emails jbro...@chromium.org, adith...@chromium.org, isabo...@google.com, dome...@chromium.org, kenjibah...@chromium.org
Explainer https://github.com/WICG/nav-speculation/blob/main/triggers.md https://github.com/w3c/resource-timing/issues/332 Specification https://wicg.github.io/nav-speculation/speculation-rules.html Summary Three enhancements to preloading, under a combined experiment: An extension to speculation rules syntax that lets the browser obtain URLs for speculation from link elements in a page. They may include criteria which restrict which of these links can be used. Currently developers can only specify speculation rules using inline script tags. The proposed feature provides an alternative through the "Speculation -Rules" header. Its value must be a URL to a text resource with "application/speculationrules+json" MIME type. The resource's rules will be added to the document's rule set. Expose information about how a resource was delivered. For example, resources which were delivered from the cache (currently exposed through transferSize) and navigations which were prefetched by the previous page are useful to identify. An overview of this experiment remains available here: https://github.com/jeremyroman/nav-speculation /blob/experiment-summary/chrome-2023q1-experiment-overview.md See also the previous intent: https://groups.google.com/a/chromium.org/g/blink-dev/c/3-0rLTZePzc/m/VNHWAdAGDQAJ 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/721 TAG review status Complete at this time. TAG has reservations about whether the use cases of this feature justify its complexity, as compared to a simpler solution which would address some but not all of the use cases. Risks Interoperability and Compatibility Because authors cannot rely on speculation rules being evaluated (or preloading generally), applications which use them should function correctly in other browsers and should continue to function correctly were the feature to be deprecated. Of course, ideally other browsers do find it compelling to implement this feature. Gecko: No signal (https://github.com/mozilla/standards-positions/issues/620) WebKit: No signal (https://github.com/WebKit/standards-positions/issues/54) Web developers: We built these enhancements specifically upon requests from partners that found the current speculation rules too hard to integrate into their sites, and have at least one partner lined up to participate in the origin trial. Other signals: Activation Some developers might not be immediately aware of which URLs they can preload without side effects. This risk is reduced if they primarily use the feature for same-origin URL patterns they are familiar with. Security See https://wicg.github.io/nav-speculation/speculation-rules .html#security-considerations. WebView application risks None that are specifically anticipated. Justification for extension During the experiment, we have made improvements to these features, fixed bugs, and improved developer tools to make them easier to debug. We have some data from use of this showing benefits, but want to both make further improvements to our implementation and give more time for partners to engage (there were unforeseen delays in at least one instance). Ongoing technical constraints At this time the constraints are believed to be minimal. Debuggability Preloading and speculation rules fetches which occur are both visible in the Network panel and the in-development Preloading panel. Console warnings are logged when several types of issues are encountered. See, e.g. https://bugs.chromium.org/p/chromium/issues/detail?id=1384419 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 Flag name Origin trial name "SpeculationRulesPrefetchFuture", spanning multiple underlying feature flags. Requires code in //chrome? False Tracking bug https://bugs.chromium.org/p/chromium/issues/detail?id=1371522 https://bugs.chromium.org/p/chromium/issues/detail?id=1366940 https://bugs.chromium.org/p/chromium/issues/detail?id=1358591 Estimated milestones 110-118 (inclusive) on all Chrome platforms if extension for milestones 116-118 (inclusive) is granted Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5112150536749056 https://chromestatus.com/feature/5069400512659456 https://chromestatus.com/feature/6347141115543552 Links to previous Intent discussions Intents to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev /CA%2B5JZsPqZakqnGx2zgreGEfRCJ1Xrr16cL2gcqGF7577dFhvsw%40mail.gmail.com https://groups.google.com/a/chromium.org/d/msgid/blink-dev /CAC2TYLVmZ%2BC%3Dct9VkfMi86RmypyfDOc14o1O4%3DiynRy%2B3rnyxg%40mail.gmail.com https://groups.google.com/a/chromium.org/d/msgid/blink-dev /CACuR13cZU8%3D7Ka3SWSf4E2dgDuhRRBRt_fGgDeC6d%3DqHP%3Durrw%40mail.gmail.com https://groups.google.com/a/chromium.org/g/blink-dev/c/3-0rLTZePzc/m/VNHWAdAGDQAJ -- 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/CACuR13epuEiXzbO3HJq0O9eum5_parJYHWHuje7QztZRd-s56w%40mail.gmail.com.