Intent to Extend Experiment: Speculation Rules - Document rules, response header

62 views
Skip to first unread message

Domenic Denicola

unread,
Sep 11, 2023, 6:46:10 AM9/11/23
to blink-dev, Jeremy Roman, adit...@chromium.org

Contact emails

jbr...@chromium.org, adit...@chromium.org, dom...@chromium.org


Explainer

https://github.com/WICG/nav-speculation/blob/main/triggers.md#document-rules


Specification

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


Summary

Two enhancements to speculation rules-based speculative loading, 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.


Blink component

Internals>Preload


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.


Chromium Trial Name

SpeculationRulesPrefetchFuture


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 name

SpeculationRulesDocumentRules


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.


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


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


Web developers: Strongly positive on document rules from various sources; recent positive feedback from one partner on the response header. See origin trial feedback summary for more details.


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

None that are specifically anticipated.



Reason this experiment is being extended

Document rules have proven a lot of value. However, we have a few minor breaking changes we'd like to make over the next couple of milestones before shipping them unrestricted.

The response header-based delivery of speculation rules has only recently started being used, as the partner which originally requested it shifted priorities. Now that experimentation with it has begun in earnest, we'd like to give it a few milestones of testing before sending an Intent to Ship.


Ongoing technical constraints

At this time the constraints are believed to be minimal.


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


Is this feature fully tested by web-platform-tests?

Yes


Finch feature name

SpeculationRulesPrefetchFuture


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


Estimated milestones

110-120 (inclusive) on all Chrome platform

if extension for milestones 119-120 (inclusive) is granted


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5112150536749056

https://chromestatus.com/feature/5069400512659456


Links to previous Intent discussions

Intent to Prototype: Document Rules

Intent to Prototype: Speculation-Rules header

Intent to Experiment: Speculation Rules - Document rules, response header, deliveryType

Intent to Extend Experiment: Speculation Rules - Document rules, response header, deliveryType


This intent message was generated by Chrome Platform Status and edited by hand.

Mike Taylor

unread,
Sep 11, 2023, 7:01:02 AM9/11/23
to Domenic Denicola, blink-dev, Jeremy Roman, adit...@chromium.org

LGTM to extend from 119 to 120 (inclusive).

--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra8G-L-3uWcb5QrLftV7rDhp%3DOu%3DCForRO6g7wKPHc87Dw%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages