- From: Guillaume via GitHub <sysbot+gh@w3.org>
- Date: Tue, 28 Mar 2023 14:24:14 +0000
- To: public-css-archive@w3.org
cdoublev has just created a new issue for https://github.com/w3c/csswg-drafts: == [cssom] Overlapping step 5 and 6 in insert a CSS rule == I think step 6 of [*insert a CSS rule*](https://drafts.csswg.org/cssom-1/#insert-a-css-rule) can never throw... > 5. If `new rule` cannot be inserted into list at the zero-index position index due to constraints specified by CSS, then throw a `HierarchyRequestError` exception. > 6. If `new rule` is an `@namespace` at-rule, and list contains anything other than `@import` at-rules, and `@namespace` at-rules, throw an `InvalidStateError` exception. ... because [CSS Namespaces 3](https://drafts.csswg.org/css-namespaces-3/#syntax) defines this constrainst (detected in step 5): > Any `@namespace` rules must follow all `@charset` and `@import` rules and precede all other non-ignored at-rules and style rules in a style sheet. However CSS Namespaces 3 does not explicitly define whether a non-conforming `@namespace` must be invalid or if it must be ignored. ```html <style> style {} @namespace ns "http://ns.org"; </style> <script> try { document.styleSheets[0].insertRule('@namespace ns "http://ns.org";', 1) } catch (error) { // Chome: InvalidStateError // FF: HierarchyRequestError console.log(error.name) } </script> ``` If it must be invalid and I am not mistaken, switching step 5 and 6 could be an alternative to removing step 6. Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/8654 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 28 March 2023 14:24:15 UTC