Allow "style" and "json" in as attribute for modulepreload#11981
Allow "style" and "json" in as attribute for modulepreload#11981annevk merged 19 commits intowhatwg:mainfrom
as attribute for modulepreload#11981Conversation
as attributeas attribute in modulepreload
as attribute in modulepreloadas attribute for modulepreload
You're right, "json" doesn't really make sense in preload if it's supported for Filed #11995 to track and discuss separately. |
|
I'd rather tackle them together as I have a feeling #11995 will not be addressed anytime soon otherwise. And it would be good to have that infrastructure in place as we add more types, such as |
|
I assumed there would be some window of overlap between the new and deprecated version, which is why I filed a separate bug. But if we can do them in one shot that's great. This feature is a little different in that it's not directly observable, so it does seem safe to just deprecate. I'll update this PR to remove @rniwa - you recently added support for |
|
Latest push handles removing "json" for "preload". I also added the implementation bugs. I'll work on tests next. |
|
Tests and MDN PR's have been are added, so the only missing part in compliance above is "two implementors are interested". @rniwa - can you give a WebKit position in https://bugs.webkit.org/show_bug.cgi?id=303761? |
|
@annevk - you mentioned a missing conformance section for the |
|
@KurtCattiSchmidt those are the conformance requirements. You'll have to adjust the wording there to make it clear
Or maybe define preload destination as a concept which takes care of that. |
|
Thanks @annevk - it was awkward updating "potential destination" to exclude "json" everywhere, so I added a preload destination concept. This reduced some duplication elsewhere too. |
source
Outdated
There was a problem hiding this comment.
Excluding a single thing this way is a bit icky special case, and special cases tend to cause issues later. Would there be some other way to express this (if we need to exclude json. Not sure why we need to, but perhaps it doesn't matter too much.).
There was a problem hiding this comment.
We might have to exclude more module destination types going forward. One way to avoid this would be to refactor Fetch's destination concept to have subtypes or some such. But not sure we need to go there right away.
There was a problem hiding this comment.
Added a "preload destination" concept in the latest push that instead lists all supported module types (in addition to the "module preload destination" concept added for module preloads).
It's already disallowed. See https://html.spec.whatwg.org/multipage/links.html#translate-a-preload-destination |
Not exactly, https://html.spec.whatwg.org/#consume-a-preloaded-resource lists JSON as a preload destination. I reverted to the prior commit in this PR, which removes that part and adds "style" and "json" to |
annevk
left a comment
There was a problem hiding this comment.
This looks great @KurtCattiSchmidt, thanks for tidying it all up. @smaug---- @noamr any final thoughts?
I suggest we merge this Monday next week.
Re-read the PR, looks good to me! |
@noamr - would you mind hitting the +1 button again? You had previously approved, but it reset when I re-requested review. |
Thanks Anne! We have a holiday on Monday so I'll plan on landing on Tuesday unless any new issues arise. |
|
The editors will take care of the merging (and are available on Monday). Unless you wanted to push it back one day? Though it wouldn't give the US an extra day so then we'd have to merge Wednesday. |
|
If someone else is merging then Monday is fine with me, thanks for checking. |
|
I wanted to merge this, but it appears that web-platform-tests/wpt#56617 is not yet in a good state. We want to merge WPT and this change together so I'll wait for that to get updated. |
Just pushed some updates, hopefully the bots are happy now. Will check again tomorrow morning. |
|
@annevk - bots are all clean on the WPT's |
|
WPT's landed! @noamr @dandclark @smaug---- - can someone land this during @annevk's absence? He mentioned he'll be out until February 10th. |
…changes Update the enumerated values of the `as` attribute on `<link>` to the union of preload destinations and module preload destinations per WHATWG HTML spec (whatwg/html#10212, whatwg/html#11981). Preload destinations: fetch, font, image, script, style, track Module preload destinations: json, style, audioworklet, paintworklet, script, serviceworker, sharedworker, worker Removed values: audio, document, embed, frame, iframe, manifest, object, report, video, xslt Added value: json Closes #1987 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updates the definition of
modulepreloadto supportas="style"andas="json"for preloading style and JSON module scripts respectively. Also removesas=jsonforrel=preload, as the only use for preloading JSON is for a module import, so it might as well directly add it to the module graph viamodulepreload. There were some inconsistencies with the existing spec's supportedasvalues forrel=preload, which this PR fixes with the introduction of a "preload destination" concept, which includes all supported types.Fixes #10233
modulepreloadandpreloadto incorporate WHATWG changes for "style" and "json" mdn/content#42333(See WHATWG Working Mode: Changes for more details.)
/acknowledgements.html ( diff )
/indices.html ( diff )
/links.html ( diff )
/semantics.html ( diff )