On Tue, Oct 3, 2023 at 8:46 PM Anders Hartvoll Ruud <andr...@chromium.org>
wrote:

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

Just to make sure it wasn't *deliberately* omitted for whatever reason, I
checked with Emilio and they do intend to implement (1) and (2) once it's
specified.


>
> 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/CAKFBnUq-dMRuTD8wdLusDxat6wEUwHBD55kw0fJHf5TwHabZRw%40mail.gmail.com.

Reply via email to