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
>
> I have opened an issue with MDN to update the site: 
> https://github.com/mdn/content/issues/38810
> I have opened an issue in Webkit Bugzilla: 
> https://bugs.webkit.org/show_bug.cgi?id=290480
> The bug in Mozilla Bugzilla: 
> 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
>
> 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
>
> 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
>>
>> 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
>>
>> *Explainer*
>>
>> None
>>
>> *Specification*
>>
>> 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) Currently in 
>> development. 
>> 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) 
>> Partially shipped new API
>>
>> *Web developers*: Positive (
>> 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
>>
>>
>>
>> *Flag name on about://flags*
>>
>> SelectionAcrossShadowDOM
>>
>> *Finch feature name*
>>
>> SelectionAcrossShadowDOM
>>
>> *Requires code in //chrome?*
>>
>> False
>>
>> *Tracking bug*
>>
>> 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/issues/1362
>>
>> https://github.com/whatwg/dom/issues/1363
>>
>> https://github.com/w3c/selection-api/pull/345
>>
>> *Link to entry on the Chrome Platform Status*
>>
>> 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
>>
>>
>> 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 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.

Reply via email to