LGTM2 On Tue, Aug 6, 2024 at 3:02 PM Philip Jägenstedt <foo...@chromium.org> wrote:
> LGTM1, this is important to do sooner rather than later, so that the > current behavior is not locked in by site compat. Thank you for finding a > solution that's acceptable to everyone! > > Given that this was discussed extensively in the CSSWG, I don't think we > need to wait further on vendor positions. > > On Fri, Aug 2, 2024 at 11:06 AM Anders Hartvoll Ruud <andr...@chromium.org> > wrote: > >> 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 >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKFBnUqTETTPT1whp_E35GeyjzxmsRrrWNg8HptPVD1_J74qgQ%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/CAARdPYc4KOp51E9UEeM%3DLepctuWvi-SMPS6AKF0_-6kURSSGpQ%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYc4KOp51E9UEeM%3DLepctuWvi-SMPS6AKF0_-6kURSSGpQ%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/CAOmohS%2BCJx6o%3D8OCQPgqi10wqpg3GQ2-ziCO00jx0QPvpvC36w%40mail.gmail.com.