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.

Reply via email to