From d9a6a8197c6d2f95ba05446f032104d6304f9c94 Mon Sep 17 00:00:00 2001 From: Di Zhang Date: Wed, 10 Jul 2024 05:42:25 +0000 Subject: [PATCH] Bug 1906764 [wpt PR 47043] - [Selection API] Implement selection.direction, a=testonly Automatic update from web-platform-tests [Selection API] Implement selection.direction Add selection.direction [1] which returns "none", "forward" or "backward". We also update the WPT test selection-direction.tentative.html to remove the selection click-based tests as this behavior is not standardized across browsers [2] [3]. [1] https://w3c.github.io/selection-api/#dom-selection-direction [2] https://github.com/w3c/selection-api/issues/70#issuecomment-607530902 [3] https://github.com/w3c/selection-api/issues/177#issuecomment-2145397475 Change-Id: I2aad4f8efc4f3d700437501929af274116f7910a Bug: 40286116 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5677331 Commit-Queue: Di Zhang Reviewed-by: Kent Tamura Cr-Commit-Position: refs/heads/main@{#1324573} -- wpt-commits: 15c5ae88f39e8599f9b03ee523ddd4f89ab269d0 wpt-pr: 47043 --- .../selection-direction.tentative.html | 59 +------------------ 1 file changed, 1 insertion(+), 58 deletions(-) diff --git a/testing/web-platform/tests/shadow-dom/selection-direction.tentative.html b/testing/web-platform/tests/shadow-dom/selection-direction.tentative.html index 6ec9b1934f989e..340711a8f0682d 100644 --- a/testing/web-platform/tests/shadow-dom/selection-direction.tentative.html +++ b/testing/web-platform/tests/shadow-dom/selection-direction.tentative.html @@ -3,7 +3,7 @@ - + @@ -61,63 +61,6 @@ assert_equals(getSelection().direction, 'backward'); }, 'direction returns "backward" when there is a forward selection that crosses shadow boundaries'); -promise_test(async () => { - container.innerHTML = 'hello, world'; - const doubleClick = new test_driver.Actions() - .pointerMove(0, 0, container.firstChild) - .pointerDown() - .pointerUp() - .pointerDown() - .pointerUp() - .send(); - await doubleClick; - - const sel = getSelection(); - assert_equals(sel.anchorNode, container.firstChild); - assert_equals(sel.anchorOffset, 0); - assert_equals(sel.focusNode, container.firstChild); - assert_equals(sel.focusOffset, 5); // hello - assert_equals(sel.direction, 'none'); -}, 'direction returns "none" when there is a double click selection(directionless)'); - -promise_test(async () => { - container.innerHTML = 'hello, world'; - const tripleClick = new test_driver.Actions() - .pointerMove(0, 0, container.firstChild) - .pointerDown() - .pointerUp() - .pointerDown() - .pointerUp() - .pointerDown() - .pointerUp() - .send(); - await tripleClick; - - const sel = getSelection(); - assert_equals(sel.anchorNode, container); - assert_equals(sel.anchorOffset, 0); - assert_equals(sel.focusNode, container); - assert_equals(sel.focusOffset, 1); - assert_equals(sel.direction, 'none'); -}, 'direction returns "none" when there is a triple click selection(directionless)'); - -promise_test(async () => { - container.innerHTML = 'hello, world'; - const click = new test_driver.Actions() - .pointerMove(0, 0, container.firstChild) - .pointerDown() - .pointerUp() - .send(); - await click; - - const sel = getSelection(); - assert_equals(sel.anchorNode, container.firstChild); - assert_equals(sel.anchorOffset, 0); - assert_equals(sel.focusNode, container.firstChild); - assert_equals(sel.focusOffset, 0); - assert_true(sel.isCollapsed); - assert_equals(sel.direction, 'none'); -}, 'direction returns "none" when the selection is collapsed');