LGTM3

/Daniel

On 2024-09-11 17:39, Alex Russell wrote:
LGTM2

On Wednesday, September 4, 2024 at 7:39:25 PM UTC-7 Domenic Denicola wrote:

    Thank you so much for those detailed writeups. LGTM1; it's clear
    this is future-extensible and you've carefully considered the
    tradeoffs.

    On Wed, Sep 4, 2024 at 11:30 PM David Baron <dba...@chromium.org>
    wrote:

        On Tue, Sep 3, 2024 at 11:00 PM Domenic Denicola
        <dome...@chromium.org> wrote:


            On Thursday, August 29, 2024 at 12:48:36 AM UTC+9 David
            Baron wrote:

                Anticipated spec changes

                Open questions about a feature may be a source of
                future web compat or interop issues. Please list open
                issues (e.g. links to known github issues in the
                project for the feature specification) whose
                resolution may introduce web compat/interop risk
                (e.g., changing to naming or structure of the API in a
                non-backward-compatible way).

                There are related open discussions in:
                https://github.com/w3c/csswg-drafts/issues/10083
                <https://github.com/w3c/csswg-drafts/issues/10083>
                https://github.com/w3c/csswg-drafts/issues/10786
                <https://github.com/w3c/csswg-drafts/issues/10786>
                https://github.com/w3c/csswg-drafts/issues/10787
                <https://github.com/w3c/csswg-drafts/issues/10787>
                https://github.com/w3c/csswg-drafts/issues/10788
                <https://github.com/w3c/csswg-drafts/issues/10788>
                https://github.com/w3c/csswg-drafts/issues/10794
                <https://github.com/w3c/csswg-drafts/issues/10794>
                but I don't think any of these discussions justify
                delaying shipping these changes. We can follow up with
                future changes to reflect future spec resolutions.


            I really appreciate the transparency in you finding and
            listing all of these issues.

            I tried to read through several of them but they're
            relatively long, and in some cases, progress has been made
            but not enough to fully close the issue.

            Would you be able to give us a one- or two-sentence
            summary for each of them, indicating what potential
            breaking changes might come out of such discussions, and
            why you think it'll be easy to fast-follow with such
            future changes?


          * The remaining work in w3c/csswg-drafts#10083
            <https://github.com/w3c/csswg-drafts/issues/10083> is
            about getting spec text written to reflect things that
            we've already resolved regarding part-like
            pseudo-elements.  This affects the new part-like
            pseudo-elements concept and not ::part() itself, although
            it includes the interaction between the two.  So it
            doesn't affect anything that's currently shipping or
            proposed to ship here.
          * w3c/csswg-drafts#10786 <http://w3c/csswg-drafts#10786> is
            about a disagreement between the spec (one one side) and
            the implementations in Chromium, Gecko, and WebKit (all on
            the other side).  The implementations treat "disallowed"
            as being invalid at parse time, whereas the spec says the
            pseudo-classes and pseudo-elements that are disallowed
            after part are valid at parse-time but never match.  The
            change proposed here is about increasing the set of things
            that are allowed, so it reduces the space where the
            disagreement that this issue covers applies. This change
            could be made separately if we decide not to change the
            spec (and thus need to change all implementations), though
            the compat risk of making such a change does increase with
            time.
          * w3c/csswg-drafts#10787
            <https://github.com/w3c/csswg-drafts/issues/10787> is
            about the fact that the spec's wording on which
            pseudo-classes are allowed after ::part() isn't specific
            enough for all implementors to make the same (allowed vs.
            disallowed) decisions for every pseudo-class.  While we
            should definitely make the spec better, the test results
            
<https://wpt.fyi/results/css/css-shadow-parts/pseudo-classes-after-part.html?label=master&label=experimental>
            show that implementations now (with the changes I'm
            proposing to ship) largely agree (many of the differences
            there are about which pseudo-classes are implemented at
            all), and this change is a clear improvement in interop
            relative to the same test results on stable
            
<https://wpt.fyi/results/css/css-shadow-parts/pseudo-classes-after-part.html?label=stable&label=master>.
 
            I think the substantive difference remaining is probably
            whether :has() is allowed, and I'm comfortable defending
            the position that :has() is clearly disallowed by the
            spec's wording that disallows "pseudo-classes that match
            based on tree information rather than local element
            information".  (Leaving :has() disallowed for now is also
            a bias in favor of less change.)
          * w3c/csswg-drafts#10788
            <https://github.com/w3c/csswg-drafts/issues/10788> is
            about whether the & nesting selector is allowed after
            ::part().  (I couldn't find any spec text that defines
            this one way or the other.)  I haven't changed this as
            part of these changes, but the spec should be clear, and
            we can change this later if needed.  It currently doesn't
            work in any of Chromium, Gecko, or WebKit.
          * w3c/csswg-drafts#10794
            <https://github.com/w3c/csswg-drafts/issues/10794> is
            another issue that applies to the future work on part-like
            pseudo-elements rather than this change.  We need to audit
            all the existing pseudo-elements to make sure their
            definitions categorize them correctly.
          * w3c/csswg-drafts#10806
            <https://github.com/w3c/csswg-drafts/issues/10806> was
            asking whether it made sense to allow view-transition
            pseudo-elements after ::part(), or whether they should
            have an exception to the "all pseudo-elements are allowed
            after ::part()" rule.  The consensus in the discussion
            seemed to be that no further exception was warranted, so I
            included the view transition pseudo-elements in these
            changes, per the current spec.  The test
            
<https://wpt.fyi/results/css/css-shadow-parts/pseudo-elements-after-part.html?label=experimental&label=master>
            shows that this decision agrees with the implementation of
            those pseudo-elements in progress in WebKit.
          * w3c/csswg-drafts#10807
            <https://github.com/w3c/csswg-drafts/issues/10807> was
            asking whether ::slotted() is allowed after ::part().  In
            this case the spec is clear that it is allowed (since all
            pseudo-elements other than ::part() itself are allowed). 
            However, it's hard to implement, probably has weak or
            nonexistent use cases, and existing implementations don't
            do it properly (Gecko treats it as invalid, WebKit allows
            it syntactically but it doesn't work).  Pending the
            resolution of this issue, I left ::slotted() as disallowed
            in Chrome.  (This means I knowingly left one case where
            we're still not following the spec, by leaving the current
            behavior rather than changing it as part of this intent.)
            However, if the conclusion in that discussion is that it
            is worth implementing, we could allow it later and
            implement the underlying behavior. Doing so may well be
            more work than the changes here.

        -David

--
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/d9c5c47a-d2c6-452a-836c-040c42cf68e9n%40chromium.org <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/d9c5c47a-d2c6-452a-836c-040c42cf68e9n%40chromium.org?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/d7afe855-bddc-41ad-915b-8ffd9f896191%40gmail.com.

Reply via email to