WPT
wpt / css / cssom / CSSStyleSheet-constructable.html
Spec: CSSOM ↗
Runs: Chrome 155.0.8039.0 (wpt@508cc6a62, 2026-09-03) | Firefox 157.0a1 (wpt@508cc6a62, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-56c61 (wpt@8fdda8ce4, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 32/32 | 32/32 | 32/32 | 30/32 | 12/32 | 0/32 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| document.adoptedStyleSheets should initially have length 0. | PASS | PASS | PASS | PASS | FAIL | — |
| new CSSStyleSheet produces empty CSSStyleSheet | PASS | PASS | PASS | PASS | FAIL | — |
| title can be set in the CSSStyleSheet constructor | PASS | PASS | PASS | PASS | PASS | — |
| CSSStyleSheet.replace produces Promise<CSSStyleSheet> | PASS | PASS | PASS | PASS | FAIL | — |
| Constructed style sheets can be applied on document | PASS | PASS | PASS | PASS | FAIL | — |
| Constructed style sheets can be applied on shadow root | PASS | PASS | PASS | PASS | FAIL | — |
| Re-attaching shadow host with adopted stylesheets work | PASS | PASS | PASS | PASS | FAIL | — |
| Attaching a shadow root that already has adopted stylesheets work | PASS | PASS | PASS | PASS | FAIL | — |
| Re-attaching shadow host and updating attributes work | PASS | PASS | PASS | PASS | FAIL | — |
| Changes to constructed stylesheets through CSSOM is reflected | PASS | PASS | PASS | PASS | FAIL | — |
| Constructed stylesheet can be used and modified in multiple TreeScopes | PASS | PASS | PASS | PASS | FAIL | — |
| Stylesheets constructed on the main Document cannot be used in iframes | PASS | PASS | PASS | PASS | FAIL | — |
| Stylesheet constructed on iframe cannot be used in the main Document | PASS | PASS | PASS | PASS | FAIL | — |
| Adding non-constructed stylesheet to AdoptedStyleSheets is not allowed when the owner document of the stylesheet is in the same document tree as the AdoptedStyleSheets | PASS | PASS | PASS | PASS | FAIL | — |
| Adding non-constructed stylesheet to AdoptedStyleSheets is not allowed when the owner document of the stylesheet and the AdoptedStyleSheets are in different document trees | PASS | PASS | PASS | PASS | FAIL | — |
| CSSStyleSheet.replaceSync replaces stylesheet text synchronously | PASS | PASS | PASS | PASS | PASS | — |
| CSSStyleSheet.replaceSync correctly updates the style of its adopters synchronously | PASS | PASS | PASS | PASS | FAIL | — |
| Adopted sheets are ordered after non-adopted sheets in the shadow root | PASS | PASS | PASS | PASS | FAIL | — |
| Adopted sheets are ordered after non-adopted sheets in the document | PASS | PASS | PASS | PASS | FAIL | — |
| Inserting an @import rule through insertRule on a constructed stylesheet throws an exception | PASS | PASS | PASS | PASS | PASS | — |
| CSSStyleSheet.replaceSync should not trigger any loads from @import rules | PASS | PASS | PASS | PASS | PASS | — |
| CSSStyleSheet.replace allows, but ignores, import rule inside | PASS | PASS | PASS | PASS | PASS | — |
| CSSStyleSheet.replace ignores @import rule but still loads other rules | PASS | PASS | PASS | PASS | FAIL | — |
| CSSStyleSheet.replaceSync allows, but ignores, import rule inside | PASS | PASS | PASS | PASS | PASS | — |
| CSSStyleSheet.replace does not reject on failed imports | PASS | PASS | PASS | PASS | PASS | — |
| Cloning a shadow host will not clone shadow root, and also adoptedStyleSheets | PASS | PASS | PASS | PASS | PASS | — |
| Importing a shadow host will not copy shadow root, and also adoptedStyleSheets | PASS | PASS | PASS | PASS | PASS | — |
| Adopting a shadow host will empty adoptedStyleSheets if adopting to a different document | PASS | PASS | PASS | FAIL | FAIL | — |
| Adopting a shadow host's ancestor will empty adoptedStyleSheets if adopting to a different document | PASS | PASS | PASS | FAIL | FAIL | — |
| Forcing a style update after adding an adopted stylesheet on a disconnected shadow root should not crash. | PASS | PASS | PASS | PASS | PASS | — |
| Modifying an adopted stylesheet on a disconnected shadow root should not crash. | PASS | PASS | PASS | PASS | PASS | — |
| Constructing a sheet with the default base URL uses the constructor document's base URL for CSS rules | PASS | PASS | PASS | PASS | PASS | — |
| Uncaught JS error | — | — | — | — | — | FAIL |