Note: This intent email spans three Chromestatus entries for different
sub-features that we experimented with together and would like permission
to ship together in M121.

Contact emailsjbro...@chromium.org, adith...@chromium.org,
isabo...@google.com, dome...@chromium.org, mc...@chromium.org

Explainerhttps://github.com/WICG/nav-speculation/blob/main/triggers.md

Specificationhttps://wicg.github.io/nav-speculation/speculation-rules.html

Summary

(1) 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.


(2) Adding the eagerness field to the speculation rules will let the
developers control how eagerly the browser preloads links in order to
balance the performance advantage against resource overhead. This field
accepts one of "conservative", "moderate", "eager", or "immediate" strings
as the value, and it is applicable to both "prefetch" and "prerender"
actions and both "list" or "document" sources. If not explicitly specified,
list rules default to "immediate" and document rules default to
"conservative".


(3) 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.


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

TAG reviewhttps://github.com/w3ctag/design-reviews/issues/721

TAG review statusIssues addressed (TAG still has reservations)

Chromium Trial NameSpeculationRulesPrefetchFuture

Link to origin trial feedback summary
https://docs.google.com/document/d/13cJcoygFD64UcQH-P30dXCLbdD6SXpQwhpOUym64KXw/edit?usp=sharing

Origin Trial documentation link
https://github.com/WICG/nav-speculation/blob/main/chrome-2023q1-experiment-overview.md

WebFeature UseCounter nameSpeculationRulesDocumentRules
SpeculationRulesSelectorMatches
SpeculationRulesHeader
SpeculationRulesExplicitEagerness

Risks


Interoperability and Compatibility

Because authors cannot rely on document 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.


Similar reasoning applies to the response header and eagerness field.


*Gecko*: No signal (
https://github.com/mozilla/standards-positions/issues/620)

*WebKit*: No signal (https://github.com/WebKit/standards-positions/issues/54
)

*Web developers*: Positive (
https://groups.google.com/a/chromium.org/g/blink-dev/c/L3mpXE1x3Zk/m/VvbMZrcsAQAJ)
positive feedback from Akamai and use within Chrome on web.dev

*Other signals*:

Activation

Some developers might not be immediately aware of which URLs they can
prefetch or prerender 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

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?



Debuggability

Speculative loading which occurs is visible in the Network panel and the
new Preloading panel. Console warnings are logged when several types of
issues are encountered.


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?Yes (though some
capabilities vary per platform)

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?label=experimental&label=master&aligned
Some tests cover behavior which isn't enabled by default (even if
experimental web platform features are on).


Flag name on chrome://flags

Finch feature nameSpeculationRulesPrefetchFuture

Requires code in //chrome?False

Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1371522
https://bugs.chromium.org/p/chromium/issues/detail?id=1406595
https://bugs.chromium.org/p/chromium/issues/detail?id=1366940

Estimated milestones
Shipping on desktop 121
OriginTrial desktop last 120
OriginTrial desktop first 110
Shipping on Android 121
OriginTrial Android last 120
OriginTrial Android first 110
OriginTrial webView last 120
OriginTrial webView first 110

Anticipated spec changes

A URLPattern change was made to facilitate this, and document rules will be
affected by upstream changes to URLPattern. Similarly, upstream changes to
CSS selectors will affect document rules which use selectors to match. Some
minor changes to how links are identified may happen in the future. We
anticipate most changes to be compatible.

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5112150536749056
https://chromestatus.com/feature/5091678266851328
https://chromestatus.com/feature/5069400512659456

Links to previous Intent discussionsIntent to prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2B5JZsPqZakqnGx2zgreGEfRCJ1Xrr16cL2gcqGF7577dFhvsw%40mail.gmail.com
Intent
to Experiment:
https://groups.google.com/a/chromium.org/g/blink-dev/c/3-0rLTZePzc/m/VNHWAdAGDQAJ
Intent to Extend Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13epuEiXzbO3HJq0O9eum5_parJYHWHuje7QztZRd-s56w%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/CACuR13dJ%2BLypC7QmGmwvoGn3%2BhPs77bDa-NFDWTw0bA5WDhsWA%40mail.gmail.com.

Reply via email to