LGTM2

On 4/1/25 10:23 PM, Vladimir Levin wrote:
LGTM1

On Wednesday, March 26, 2025 at 5:38:45 PM UTC-4 Di Zhang wrote:

    The WPT tests failing is mostly because Safari still using the old
    specification for getComposedRanges() syntax. This change was
    resolved in September 2024:
    https://github.com/w3c/selection-api/pull/331
    <https://github.com/w3c/selection-api/pull/331>

    I have opened an issue with MDN to update the site:
    https://github.com/mdn/content/issues/38810
    <https://github.com/mdn/content/issues/38810>
    I have opened an issue in Webkit Bugzilla:
    https://bugs.webkit.org/show_bug.cgi?id=290480
    <https://bugs.webkit.org/show_bug.cgi?id=290480>
    The bug in Mozilla Bugzilla:
    https://bugzilla.mozilla.org/show_bug.cgi?id=1912163
    <https://bugzilla.mozilla.org/show_bug.cgi?id=1912163>

    There are also some implementation details getting defined that
    these tests are testing. Implementers are in favor of making
    progress, but it is stalling due to disagreement on how to
    phrase/word the spec.
    https://github.com/whatwg/dom/pull/1342
    <https://github.com/whatwg/dom/pull/1342>

    It looks like I missed the TAG review field, sorry about that.
    This feature has already gone through a TAG review:
    https://github.com/w3ctag/design-reviews/issues/694
    <https://github.com/w3ctag/design-reviews/issues/694>

    On Tuesday, March 25, 2025 at 7:17:59 PM UTC-7
    dan...@microsoft.com wrote:

        Looking at the WPT results, there are a lot of Safari failures
        despite them having already shipped this.

        
https://wpt.fyi/results/selection/shadow-dom/tentative?label=experimental&label=master&aligned
        
<https://wpt.fyi/results/selection/shadow-dom/tentative?label=experimental&label=master&aligned>

        Do you have an understanding of what those gaps are, and
        whether there’s a path towards resolving them and ending up
        with interoperable implementations?

        I am also wondering if there should be a TAG review for this.
        It seems that the spec is still somewhat in flux and the
        shipped WebKit implementation doesn’t align all that closely
        with Chromium’s given the WPT results, so I’m not sure this
        Intent quite meets the spirit of the exceptions
        
<https://www.chromium.org/blink/launching-features/wide-review/#exceptions>
        for a TAG review. And in any case the TAG may be able to help
        unblock some of the disagreements that have caused the spec
        changes to stall out.

        -- Dan

        *From:*Di Zhang <dizha...@chromium.org>
        *Sent:* Tuesday, March 25, 2025 4:42 PM
        *To:* blink-dev <blink-dev@chromium.org>
        *Subject:* [EXTERNAL] [blink-dev] Intent to Ship: Selection
        API getComposedRanges and direction

        *Contact emails*

        dizha...@chromium.org <mailto:dizha...@chromium.org>

        *Explainer*

        None

        *Specification*

        https://w3c.github.io/selection-api/#dom-selection-getcomposedranges
        <https://w3c.github.io/selection-api/#dom-selection-getcomposedranges>

        *Summary*

        This feature ships two new API methods for the Selection API:
        * Selection.direction which returns the selection's direction
        as either "none", "forward" or "backward" *
        Selection.getComposedRanges() which returns a list of 0 or 1
        “composed” StaticRange A “composed” StaticRange is allowed to
        cross shadow boundaries, which normal Ranges cannot. For
        example: const range = getSelection().getComposedRanges({
        shadowRoots: [root] }); If the selection crosses a shadow root
        boundary that isn’t provided in the shadowRots list, then the
        StaticRange's endpoints will be “rescoped” to be outside that
        tree. This makes sure we do not expose unknown shadow trees.



        *Blink component*

        Blink>DOM>ShadowDOM
        
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EDOM%3EShadowDOM%22>

        *TAG review*

        None

        *TAG review status*

        Issues addressed

        *Risks*



        *Interoperability and Compatibility*

        None



        /Gecko/: Positive
        (https://github.com/mozilla/standards-positions/issues/1055
        <https://github.com/mozilla/standards-positions/issues/1055>)
        Currently in development.
        https://groups.google.com/a/mozilla.org/g/dev-platform/c/zF7soLapT-Y
        <https://groups.google.com/a/mozilla.org/g/dev-platform/c/zF7soLapT-Y>

        /WebKit/: Shipped/Shipping
        (https://github.com/WebKit/WebKit/pull/10843#issuecomment-1592149737
        <https://github.com/WebKit/WebKit/pull/10843#issuecomment-1592149737>)
        Partially shipped new API

        /Web developers/: Positive
        (https://stackoverflow.com/questions/62054839/shadowroot-getselection
        <https://stackoverflow.com/questions/62054839/shadowroot-getselection>)

        /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?/

        No, this is only shipping new APIs without modifying existing
        behavior.



        *Debuggability*

        None



        *Will this feature be supported on all six Blink platforms
        (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?*Yes

        The Selection API is supported on all platforms.



        *Is this feature fully tested by web-platform-tests
        
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*Yes

        Tests can be found at
        
https://wpt.fyi/results/selection/shadow-dom/tentative?label=experimental&label=master&aligned
        
<https://wpt.fyi/results/selection/shadow-dom/tentative?label=experimental&label=master&aligned>



        *Flag name on about://flags*

        SelectionAcrossShadowDOM

        *Finch feature name*

        SelectionAcrossShadowDOM

        *Requires code in //chrome?*

        False

        *Tracking bug*

        https://issues.chromium.org/issues/40286116
        <https://issues.chromium.org/issues/40286116>

        *Availability expectation*

        Feature is available on Web Platform Baseline within 6 months
        of launch in Chrome.

        *Adoption expectation*

        Feature is available on Web Platform Baseline within 6 months
        of launch in Chrome.

        *Adoption plan*

        The feature is already shipped in Safari/Webkit and Firefox
        has an implementation in Nightly. They mentioned also wanting
        to land this within 2025.

        *Estimated milestones*
        Shipping on desktop
        137
        Shipping on Android
        137
        Shipping on WebView
        137

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

        This new API is important to return Selection endpoints that
        are inside a shadow DOM and currently not accessible by API.
        This depends on new specification definitions of what it means
        to have a range that is composed and how the endpoints should
        be compared. That specification includes tree traversal,
        boundary point comparisons and the specification language is
        quite complex. The specification PR has been open since Dec
        17, 2024 and is stalling due to disagreement on how to
        phrase/word the spec. There are a few remaining open issues
        about this, but none of those should affect the shape of the
        API - they only affect the spec text itself.

        https://github.com/whatwg/dom/pull/1342
        <https://github.com/whatwg/dom/pull/1342>

        https://github.com/whatwg/dom/issues/1362
        <https://github.com/whatwg/dom/issues/1362>

        https://github.com/whatwg/dom/issues/1363
        <https://github.com/whatwg/dom/issues/1363>

        https://github.com/w3c/selection-api/pull/345
        <https://github.com/w3c/selection-api/pull/345>

        *Link to entry on the Chrome Platform Status*

        https://chromestatus.com/feature/5971377218912256?gate=6663146663313408
        
<https://chromestatus.com/feature/5971377218912256?gate=6663146663313408>

        *Links to previous Intent discussions*

        Intent to Prototype:
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c40a8cc7-9f46-451c-b449-450e1d072fabn%40chromium.org
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c40a8cc7-9f46-451c-b449-450e1d072fabn%40chromium.org>


        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
        <mailto:blink-dev+unsubscr...@chromium.org>.
        To view this discussion visit
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/10d2631e-2014-42ac-9343-c6d43ff47975n%40chromium.org
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/10d2631e-2014-42ac-9343-c6d43ff47975n%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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7c042fed-e301-4cf1-9cfc-533a2fbe8b73n%40chromium.org <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7c042fed-e301-4cf1-9cfc-533a2fbe8b73n%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ad2542f-4745-4bb9-ba80-356e7e7d2a18%40chromium.org.

Reply via email to