commit 26d612bf9ed90d1df47685a76265fefab9002560
parent 9b2dd9691537d8db83750cf51b54b51654945a60
Author: Oleksandr Tara <otara@google.com>
Date: Thu, 6 Nov 2025 21:36:25 +0000
Bug 1997960 [wpt PR 55827] - Revert "Implement mousedown-drag-mouseup menu behavior [3/4]", a=testonly
Automatic update from web-platform-tests
Revert "Implement mousedown-drag-mouseup menu behavior [3/4]"
This reverts commit e3c9fd6f52ffe7773042962fb396f9c7cbf46095.
Reason for revert: parent CL causes https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20UBSan%20Tests/11332/overview and the revert caused merge conflicts.
Original change's description:
> Implement mousedown-drag-mouseup menu behavior [3/4]
>
> This implements the same behavior we have in customizable-<select>, for
> the menu elements. Clicking the mouse on a menuitem that triggers a
> sub-menu, then dragging into the sub-menu, then releasing the mouse on
> an item in that sub-menu now selects that item.
>
> Bug: 406566432,453209085
> Change-Id: I0e5aef5412a100dff4d9e6638371fda3742b6162
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7068555
> Commit-Queue: Mason Freed <masonf@chromium.org>
> Reviewed-by: Dominic Farolino <dom@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1538873}
Bug: 406566432,453209085
Change-Id: I96e7a903415bb0b0d7eb161184c5fb906ef9cb35
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7112743
Reviewed-by: Fabio Tirelo <ftirelo@chromium.org>
Owners-Override: Fabio Tirelo <ftirelo@chromium.org>
Commit-Queue: Oleksandr Tara <otara@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1539377}
--
wpt-commits: 0cf353deec16e6236ad3daa17eaa8d3afc383de0
wpt-pr: 55827
Diffstat:
2 files changed, 10 insertions(+), 55 deletions(-)
diff --git a/testing/web-platform/tests/html/semantics/menu/tentative/menubar-invoke-menulist.html b/testing/web-platform/tests/html/semantics/menu/tentative/menubar-invoke-menulist.html
@@ -143,15 +143,18 @@ test(() => {
assert_false(menulist.matches(":popover-open"),
"menulist no longer matches :popover-open");
- // Being checkable causes sub-menu functionality to stop.
+ // Being an invoker for a sub-menu causes checkability to stop.
checkableMenuitem.command = "toggle-menu";
checkableMenuitem.commandForElement = menulist;
checkableMenuitem.click();
- assert_true(checkableMenuitem.checked,
- "checkable menu item that invokes a menu becomes checked");
- assert_false(menulist.matches(":popover-open"), "menulist is not open");
+ assert_false(checkableMenuitem.checked,
+ "checkable menu item that invokes a menu does not become checked");
+ assert_true(menulist.matches(":popover-open"),
+ "menulist matches :popover-open");
checkableMenuitem.click();
- assert_false(checkableMenuitem.checked, "checkable menu item unchecks");
- assert_false(menulist.matches(":popover-open"), "menulist still not open");
+ assert_false(checkableMenuitem.checked,
+ "checkable menu item is still not checked");
+ assert_false(menulist.matches(":popover-open"),
+ "menulist no longer matches :popover-open");
}, "Checkable menuitems can still invoke menulist popovers");
</script>
diff --git a/testing/web-platform/tests/html/semantics/menu/tentative/menuitem-activate.html b/testing/web-platform/tests/html/semantics/menu/tentative/menuitem-activate.html
@@ -3,9 +3,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
-<script src="../../popovers/resources/popover-utils.js"></script>
<link rel=author href=mailto:dom@chromium.org>
<link rel=help href=https://open-ui.org/components/menu.explainer>
@@ -16,7 +14,6 @@
<menulist id=mainmenu>
<menuitem id=mainmenuitem command=toggle-menu commandfor=submenu>Toggle menu</menuitem>
<menuitem id=mainmenuitem2 command=toggle-popover commandfor=popover>Show popover</menuitem>
- <menuitem id=normalmenuitem>Normal item</menuitem>
</menulist>
<menulist id=submenu>
@@ -104,7 +101,7 @@ promise_test(async (t) => {
// Close the second, "sub", menu within the popover by just clicking off of
// it.
- await test_driver.click(menuinpopoveritem2);
+ await test_driver.click(menuinpopoveritem1);
assert_false(menuinpopover2.matches(":popover-open"),
"menu 2 in popover closes");
assert_true(popoverwithmenu.matches(":popover-open"),
@@ -113,49 +110,4 @@ promise_test(async (t) => {
"menu in popover remains open");
}, 'Menulist inside a popover works correctly; does not get accidentally ' +
'dismissed by opening submenus');
-
-promise_test(async (t) => {
- assert_false(mainmenu.matches(":popover-open"), "mainmenu popover starts closed");
- let clickCount = 0;
- normalmenuitem.addEventListener('click',() => (++clickCount));
- const actions = new test_driver.Actions();
- await actions.addPointer('mouse', 'mouse')
- .pointerMove(0, 0, {origin: menubarmenuitem})
- .pointerDown()
- .send();
- await waitForRender();
- assert_true(mainmenu.matches(":popover-open"), "mainmenu popover should be open while mouse is down");
- assert_equals(clickCount,0, "no clicks yet");
- await actions.pointerMove(0, 0, {origin: normalmenuitem})
- .pointerUp()
- .send();
- await waitForRender();
- assert_false(mainmenu.matches(":popover-open"), "mainmenu popover should be closed");
- // TODO: Menu items should fire an event when they are selected.
- // The `click` event is not enough, because one won't be fired here.
- // assert_equals(clickCount,1, "the sub-menu item should have been clicked");
-}, 'A mousedown-drag-mouseup gesture on a normal menuitem picks the item');
-
-promise_test(async (t) => {
- assert_false(mainmenu.matches(":popover-open"), "mainmenu popover starts closed");
- assert_false(submenu.matches(":popover-open"), "submenu popover starts closed");
- const actions = new test_driver.Actions();
- await actions.addPointer('mouse', 'mouse')
- .pointerMove(0, 0, {origin: menubarmenuitem})
- .pointerDown()
- .send();
- await waitForRender();
- assert_true(mainmenu.matches(":popover-open"), "mainmenu popover should be open while mouse is down");
- assert_false(submenu.matches(":popover-open"), "submenu shouldn't be open yet");
- await actions.pointerMove(0, 0, {origin: mainmenuitem})
- .pointerUp()
- .send();
- await waitForRender();
- assert_true(mainmenu.matches(":popover-open"), "mainmenu popover should remain open, because submenu chosen");
- assert_true(submenu.matches(":popover-open"), "submenu popover should be open");
- menubarmenuitem.click(); // Cleanup.
- await waitForRender();
- assert_false(mainmenu.matches(":popover-open"), "mainmenu popover should be closed");
- assert_false(submenu.matches(":popover-open"), "submenu popover should be closed");
-}, 'A mousedown-drag-mouseup gesture on a submenu item leaves both menus open');
</script>