On Fri, Aug 2, 2024 at 1:54 AM Daniel Clark <dan...@microsoft.com> wrote:
> The stated answer to “Will this feature be supported on all six Blink > platforms” is “No”, but I’d expect this to be the same on all platforms – > is that right? > Yes, that was a mistake. > > > Could you elaborate a bit on why this might not be doable behind a flag? > > > This comment was ... "inherited" from the previous version of this intent ( https://groups.google.com/a/chromium.org/g/blink-dev/c/prg4CN0eEGg?pli=1). Looking a bit closer at CSSParserImpl now, it seems doable. We can proceed as if this will have a flag. I'll post the flag name to this thread before shipping. > -- Dan > > > > *From:* Anders Hartvoll Ruud <andr...@chromium.org> > *Sent:* Thursday, August 1, 2024 4:14 AM > *To:* blink-dev <blink-dev@chromium.org> > *Subject:* [blink-dev] Intent to Ship: The Nested Declarations Rule > > > > Note: See also the previous (failed) intent > <https://groups.google.com/a/chromium.org/g/blink-dev/c/prg4CN0eEGg> for > @nest. All CSSWG disagreements around this are now resolved. > > > Contact emails > > andr...@chromium.org > > > Specification > > https://drafts.csswg.org/css-nesting-1/#nested-declarations-rule > > > Summary > > > > CSS Nesting initially shipped with an interesting quirk that would cause > bare declarations that come after a nested rule to “shift”, for example: > > > > .foo { > > width: 100px; > > height: 100px; > > @media screen { > > background-color: red; > > } > > background-color: green; > > } > > > > You would think that the background-color of <div class=foo> would be > green here, but no, that declaration is shifted up to the main (leading) > block of declarations during parsing: > > > > .foo { > > width: 100px; > > height: 100px; > > background-color: green; /* I’m here now */ > > @media screen { > > background-color: red; > > } > > } > > > > This was at the time done intentionally for a mix of CSSOM and historical > reasons, and all implementations of CSS Nesting currently agree on this > behavior. However, it turns out this shifting behavior isn’t what authors > expect (WebKit blog post > <https://webkit.org/blog/14571/css-nesting-and-the-cascade/#:~:text=an%20element%20selector.-,Another%20question,-There%20is%20one>), > and the CSSWG now consider the decision a mistake. In October 2023, the > CSSWG resolved > <https://github.com/w3c/csswg-drafts/issues/8738#issuecomment-1768977689> > to not do the shifting behavior anymore, and after a long debate on how to > handle the implications of this (Issue 10234 > <https://github.com/w3c/csswg-drafts/issues/10234>), the CSSWG finally > resolved to introduce the CSSNestedDeclarations rule to solve the problem. > > > 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 > > > > This intent is a breaking change, with two main points of breakage: > > > > - Keeping the bare declarations in place can affect the winner of the > cascade (the example in the introduction). This is covered by > CSSBareDeclarationShift > <https://chromestatus.com/metrics/feature/timeline/popularity/4783> > (0.00042%). > - Additionally, CSSNestingDeclarations will have different specificity > behavior for nested group rules, and this can also affect the winner of the > cascade. This is covered by CSSNestedGroupRuleSpecificity > <https://chromestatus.com/metrics/feature/timeline/popularity/4784> > (0.00046%). > > > Interoperability and Compatibility > > > > *Gecko*: No signal ( > https://github.com/mozilla/standards-positions/issues/1048) - “looks > acceptable to me”. Note that the issue Emilio mentions in his feedback has > been resolved <https://github.com/w3c/csswg-drafts/issues/10520>. > > > > *WebKit*: No signal on the position itself ( > https://github.com/WebKit/standards-positions/issues/369) - It’s however > slightly ridiculous to request a signal in this case, since this Intent > carries out WebKit’s proposal > <https://github.com/w3c/csswg-drafts/issues/10234#issuecomment-2137832089> > *exactly*. > > > > *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 > > We should be able to reuse the existing inspector feature for nested style > rules. > > > Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, ChromeOS, Android, and Android WebView)? > > No > > > Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> > ? > > Not yet. > > > Flag name on chrome://flags > > None > > > Finch feature name > > None (yet). I’m not yet sure whether or not this change can be done behind > a flag. > > > Non-finch justification > > None > > > Requires code in //chrome? > > False > > > Estimated milestones > > M129 > > > Anticipated spec changes > > > > None. The last blocking issue > <https://github.com/w3c/csswg-drafts/issues/10520> was closed this week. > > > Link to entry on the Chrome Platform Status > > https://chromestatus.com/feature/5084403030818816?gate=5133271437148160 > > > 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/CAKFBnUr%3D6F_H29JYk8C79ZnU5LdPgSuF239LYnnYmgxfrk3sGA%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKFBnUr%3D6F_H29JYk8C79ZnU5LdPgSuF239LYnnYmgxfrk3sGA%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/CAKFBnUqTETTPT1whp_E35GeyjzxmsRrrWNg8HptPVD1_J74qgQ%40mail.gmail.com.