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.