[CSS Modules] Update fetching strategy#59805
Merged
Merged
Conversation
This change updates the fetch behavior to match whatwg/html#12339. Note that this modifies the code for existing import, import(), and modulepreload for consistency, but the existing behavior for these API's does *not* change in any circumstance. The only observable change is in the shadowrootadoptedstylesheets fetching behavior. By modifying the CSS module fetching to first create the CSSStyleSheet before fetching and calling replaceSync upon completion, we are able to remove the placeholder stylesheets that were being inserted for shadowrootadoptedstylesheets. This simplifies the logic considerably and will be more performant. Unlike the other API's for fetching a CSS Module Script, shadowrootadoptedstylesheets will leave behind an empty CSSStyleSheet in adoptedStyleSheets if the fetch fails. This simplifies the logic and seems like a reasonable trade off for a rare condition. Earlier versions of this CL removed it upon failure, but the implementation was considerably more complex and had other side effects. Change-Id: If00445458983f5062a1ca2d83ed0253cc171d1ff Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7709812 Reviewed-by: Dan Clark <[email protected]> Commit-Queue: Kurt Catti-Schmidt <[email protected]> Cr-Commit-Position: refs/heads/main@{#1629010}
6a6b583 to
3e764c4
Compare
wpt-pr-bot
approved these changes
May 12, 2026
Collaborator
wpt-pr-bot
left a comment
There was a problem hiding this comment.
The review process for this patch is being conducted in the Chromium project.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This change updates the fetch behavior to match
whatwg/html#12339. Note that this modifies the
code for existing import, import(), and modulepreload for consistency,
but the existing behavior for these API's does not change in any
circumstance. The only observable change is in the
shadowrootadoptedstylesheets fetching behavior.
By modifying the CSS module fetching to first create the CSSStyleSheet
before fetching and calling replaceSync upon completion, we are able to
remove the placeholder stylesheets that were being inserted for
shadowrootadoptedstylesheets. This simplifies the logic considerably and
will be more performant.
Unlike the other API's for fetching a CSS Module Script,
shadowrootadoptedstylesheets will leave behind an empty CSSStyleSheet in
adoptedStyleSheets if the fetch fails. This simplifies the logic and
seems like a reasonable trade off for a rare condition. Earlier versions
of this CL removed it upon failure, but the implementation was
considerably more complex and had other side effects.
Change-Id: If00445458983f5062a1ca2d83ed0253cc171d1ff
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7709812
Reviewed-by: Dan Clark <[email protected]>
Commit-Queue: Kurt Catti-Schmidt <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1629010}