LGTM1 Thanks for evaluating the compat risk for this. While non-zero, it seems manageable given Mozilla already shipping this, with Safari likely to follow, given the landed implementation.
On Mon, Oct 2, 2023 at 1:30 PM Anders Hartvoll Ruud <andr...@chromium.org> wrote: > Contact emails > > andr...@chromium.org > > Specification > > https://drafts.csswg.org/css-syntax/#consume-block-contents > > Summary > > Allows nested style rules > <https://drafts.csswg.org/css-nesting-1/#nested-style-rule> to begin with > an identifier. For example, the following will now be possible: > > p { > > span { color: green; } > > } > > <p> > > <span>I am green</span> > > </p> > > Before this change, the inner span selector had to be “escaped” using > :is() or similar, due to restrictions in css-syntax. These restrictions > have now been lifted by giving the parser the ability to restart > <https://drafts.csswg.org/css-syntax/#token-stream-restore-a-mark>. > > Blink component > > Blink>CSS > <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS> > > TAG review > > None > > TAG review status > > Not applicable > > Risks > > Interoperability and Compatibility > > To address some problematic parsing edge cases, the CSSWG has made two > additional changes to css-syntax that have theoretical web-facing impact. > These changes will ship in this intent as well: > > > 1. > > Braces ({}) are now fundamentally invalid in standard properties, > unless they span the whole value. No property grammar allows {} in any > part of the value currently, so this is already invalid, but when var() > is used in combination with {}, this intent changes when it becomes > invalid. With this intent, e.g. color: var(--x) {}; becomes invalid > parse-time instead of at computed-value time > <https://drafts.csswg.org/css-variables/#invalid-at-computed-value-time>. > This is an observable difference, but there’s no known reason for this > to occur in practice outside of mistakes. Nevertheless, I have tried > to estimate the number of possibly-impacted sites: ~0.0011% (Web > Compat Analysis: Relaxed Nesting > > <https://docs.google.com/document/d/1WxIAXWFy3q9XJrFK8k2J5my71jn8Cvdxq6Z8NAg99Q0/edit#bookmark=id.ufp2erlyto93> > [@chromium.org]). > 2. > > A style rule prelude (i.e. the selector list) can no longer start with > --ident:. Again, this is in a sense already “invalid”, since HTML > elements never start with -- (including custom elements, which must start > with a letter), so such rules can never match anything. This intent makes > the situation a parse error instead. Estimated impact: ~0.0007% (Web > Compat Analysis: Relaxed Nesting > > <https://docs.google.com/document/d/1WxIAXWFy3q9XJrFK8k2J5my71jn8Cvdxq6Z8NAg99Q0/edit#bookmark=id.geo17wxm8bwh> > [@chromium.org]). > > > Gecko: Shipped/Shipping ( > https://www.mozilla.org/en-US/firefox/117.0/releasenotes) > > WebKit: In development (https://github.com/WebKit/WebKit/pull/17189) > > Web developers: No signals > > Other signals: > > 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? > > None > > > Debuggability > > Nested style rules that start with identifiers appear in the inspector > like other nested style rules. > > > Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, Chrome OS, Android, and Android WebView)? > > Yes > > Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> > ? > > Yes > > The tests exist in wpt_internal/css/css-nesting/ident at the time of > writing, but will be upstreamed when the feature is turned on. > > Flag name on chrome://flags > > CSSNestingIdent > > Finch feature name > > I’m not sure what a “Finch feature name” is. There have been no Finch > trials related to this, but the feature is guarded by the Blink runtime > flag “CSSNestingIdent” with “base_feature” unset, which automatically > generates a corresponding base::Feature. > > Non-finch justification > > None > > Requires code in //chrome? > > False > > Estimated milestones > > Shipping on desktop > > 120 > > Shipping on Android > > 120 > > Shipping on WebView > > 120 > > > > Anticipated spec changes > > These issues need to be resolved and/or edited into the spec before > shipping. > > > - > > https://github.com/w3c/csswg-drafts/issues/9317 > The behavior that braces are invalid in standard properties (unless > it’s the whole value) was resolved at TPAC 2023, but css-syntax has not > been updated yet. > - > > https://github.com/w3c/csswg-drafts/issues/9336 > This is a tweak to the error recovery of the --ident: case. This needs > a resolution, and an edit. > > > There are no anticipated spec changes after shipping. > > Link to entry on the Chrome Platform Status > > https://chromestatus.com/feature/5070369895743488 > > This intent message was generated by Chrome Platform Status > <https://chromestatus.com/>. > > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKFBnUpW7rNg%3DUMe34ERTnaFug2W1FPzmYEypOKqLN1Kk1OE2Q%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKFBnUpW7rNg%3DUMe34ERTnaFug2W1FPzmYEypOKqLN1Kk1OE2Q%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXQE4hK1zqJeje18VG1fvdbF6DtiJM7rcMqhBLo2snBUQ%40mail.gmail.com.