Intent to Ship: JSON and style support for link rel=modulepreload

17 views
Skip to first unread message

Chromestatus

unread,
3:56 PM (2 hours ago) 3:56 PM
to blin...@chromium.org, ksc...@microsoft.com
Contact emails
ksc...@microsoft.com

Explainer
No information provided

Specification
https://github.com/whatwg/html/pull/11981

Summary
Adds support for JSON and style module types as <link rel="modulepreload"> destinations. <link rel="modulepreload"> is already supported in Chromium (see https://chromestatus.com/feature/5762805915451392), but it currently only supports preloading script-like module scripts. This feature addresses a functionality gap, as JSON and CSS module scripts are supported in Chromium elsewhere but are not supported as <link rel="modulepreload"> destinations.

Blink component
Blink>DOM

Web Feature ID
modulepreload

Motivation
Style and JSON are fully supported as modules in Chromium (see https://chromestatus.com/feature/5948572598009856 and https://chromestatus.com/feature/5749863620804608), but <link rel=modulepreload> only supports preloading script modules. This feature addresses a gap in the platform. In addition, supporting "style" as a modulepreload destination addresses a pain point identified when using external files with Declarative CSS Modules (see https://chromestatus.com/feature/4790543041298432).

Initial public proposal
https://github.com/whatwg/html/issues/10233

TAG review
No information provided

TAG review status
Not applicable

Risks


Interoperability and Compatibility
No information provided

Gecko: No signal (https://bugzilla.mozilla.org/show_bug.cgi?id=2004751)

WebKit: No signal (https://bugs.webkit.org/show_bug.cgi?id=303761)

Web developers: No signals

Other signals:

Ergonomics
This feature will increase ergonomics with CSS Module Scripts (see https://chromestatus.com/feature/5948572598009856) and Declarative CSS Module Scripts (see https://chromestatus.com/feature/4790543041298432). No known ergonomics risks.

Activation
No polyfill is necessary, as a module import will succeed regardless of whether it's preloaded or not. In unsupported browsers, it will do nothing.

Security
No security risks.

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?

No information provided


Debuggability
Basic support via the Network tab in DevTools, which displays preloaded resources from this feature.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
https://github.com/web-platform-tests/wpt/pull/56617

Flag name on about://flags
No information provided

Finch feature name
No information provided

Non-finch justification
This is not a new feature, just an expansion of an existing feature, so Finch is not necessary.

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/466888680

Measurement
There is already a UseCounter for <link type=modulepreload> (see https://chromestatus.com/metrics/feature/timeline/popularity/2232). I plan on adding an additional UseCounter for style module preloads.

Estimated milestones
Shipping on desktop146
Shipping on Android146
Shipping on WebView146


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5202661416763392?gate=6500470023651328

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages