On Wed, Aug 7, 2024 at 5:26 PM Yoav Weiss (@Shopify) <yoavwe...@chromium.org> wrote:
> Can you flip the "testing" bit in the chromestatus entry? (and mark it > with "n/a" if that's the case) > I will, as soon as the tests actually exist. > > On Tue, Aug 6, 2024 at 4:31 PM Chris Harrelson <chris...@chromium.org> > wrote: > >> LGTM3 >> >> On Tue, Aug 6, 2024, 6:05 AM Yoav Weiss (@Shopify) < >> yoavwe...@chromium.org> wrote: >> >>> 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 >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohS%2BCJx6o%3D8OCQPgqi10wqpg3GQ2-ziCO00jx0QPvpvC36w%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/CAKFBnUoFK6zmoi4VFMFC2_HRVahhf8tT5FUQ028J7HAN_S8sFw%40mail.gmail.com.