> WebKit: No signal Webkit has this bug, since this has existed for a long time.

Is there a bug filed in their issue tracker for this? If not maybe you could 
file one and see if there’s willingness on their side to fix it? It would be 
nice if there was alignment here since the current behavior is so clearly 
broken.

Thanks!
-- Dan

From: Di Zhang <dizha...@chromium.org>
Date: Tuesday, October 15, 2024 at 2:43 PM
To: blink-dev <blink-dev@chromium.org>
Subject: [blink-dev] Web-Facing Change PSA: Fix Selection isCollapsed in Shadow 
DOM

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

Specification
https://w3c.github.io/selection-api/#dom-selection-iscollapsed

Summary

Selection isCollapsed should return true if and only if the anchor and focus 
are the same. This should be true whether the selection starts/ends inside a 
light or a shadow tree. Currently, the chromium implementation returns true if 
selection's anchor node is in a shadow tree, even if the selection itself is 
not collapsed. We fix this by removing the erroneous shadow tree check.


Blink component
Blink>DOM>ShadowDOM<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EDOM%3EShadowDOM>

TAG review
None

TAG review status
Not applicable

Risks


Interoperability and Compatibility

This matches the standards definition of a collapsed selection. This matches 
Firefox/Gecko's implementation. Safari/Webkit still has this bug. Because 
Selection in and across shadow trees is not well supported yet, this bug has 
been in the code for a long time. We added a use counter to check how often the 
result for selection.isCollapsed will differ due to this shadow tree check 
(called SelectionIsCollapsedBehaviorChange). Currently, Selection::isCollapsed 
is high usage at 3% of all page loads [1]. On the other hand, the 
SelectionIsCollapsedBehaviorChange feature change is currently at a low usage 
of 0.001% of all page loads [2]. Overall, since the change usage is low and we 
are making this change to fix a bug with clear specification text, the 
compatibility risk is low. [1] 
https://chromestatus.com/metrics/feature/timeline/popularity/1001 [2] 
https://chromestatus.com/metrics/feature/timeline/popularity/5101


Gecko: Shipped/Shipping

WebKit: No signal Webkit has this bug, since this has existed for a long time.

Web developers: No signals

Other signals:

Ergonomics

There are no other APIs that this feature will used in tandem with.


Activation

It should not be challenging for developers to take advantage of this feature 
immediately.


Security

There are no security risks for this feature.


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

DevTools support for this feature is not needed.


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

All platforms support DOM selection.


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

https://wpt.fyi/results/selection/shadow-dom/tentative/Selection-isCollapsed.html?label=experimental&label=master&aligned


Flag name on chrome://flags
SelectionIsCollapsedShadowDOMSupport

Finch feature name
None

Non-finch justification

This is a long term bug fix and is a no developer-visible change.


Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/40400558

Sample links

https://codepen.io/Di-Zhang/pen/jOjdeoX

Estimated milestones
Shipping on desktop     131
Shipping on Android     131
Shipping on WebView     131


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

None

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5175599392620544?gate=5084420995022848

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 on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BSS7eCxjhuVojPQe%2BFekbsR%2B8ttnGa2_9FbGM-t3uJPmS51Og%40mail.gmail.com<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BSS7eCxjhuVojPQe%2BFekbsR%2B8ttnGa2_9FbGM-t3uJPmS51Og%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/MW4PR00MB1453ED9BA5CA03DC5050A5EDC5462%40MW4PR00MB1453.namprd00.prod.outlook.com.

Reply via email to