On Tue, Oct 3, 2023 at 3:14 PM Yoav Weiss <yoavwe...@chromium.org> wrote:

> 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.
>

Clarification: Mozilla is shipping the main part of the feature (retrying a
failed declaration as a nested style rule), but they are not (yet) shipping
the tweaks to css-syntax described as risk (1) and (2). (1) is a recent
resolution (~three weeks), so no mystery there. (2) has been part of this
all along - I assume it was seen as something that could be done separately
(and it is).

So in this case "Mozilla: Shipping" should only be interpreted as a
positive signal for the overall change, not as a way to manage compat risk.
:-)

I'll emphasize again though, that in both (1) and (2), we're just
changing from one kind of invalid/has-no-effect to a *slightly* different
kind of invalid/has-no-effect.


> 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/CAKFBnUpP1u%2B8PqngKYm%2BB8%3DGSWqvqZbLgPqvSxU2CUk2zApBcw%40mail.gmail.com.

Reply via email to