tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 0e8c3f2ac1b482df8b4acd6d915a568f1476d748
parent 9cda45439e518f453bbfcd5b750611c42ba30002
Author: Dominic Farolino <dom@chromium.org>
Date:   Tue, 21 Oct 2025 10:30:39 +0000

Bug 1994833 [wpt PR 55363] - Menu: implement anchor positioning for <menulist> elements, a=testonly

Automatic update from web-platform-tests
Menu: implement anchor positioning for <menulist> elements

This CL introduces two new internal pseudo classes to support menulist
anchor positioning:
 - internal-menulist-popover-with-menubar-anchor
 - internal-menulist-popover-with-menulist-anchor

These trigger anchor positioning styles that are specific to whether a
menulist's implicit anchor is a menuitem inside a menubar vs another
menulist.

This CL does not include a pseudo class for when the implicit anchor is
a button element, and does not include anchor positioning fallback
styles.

Bug: 422803239
Change-Id: Ic40e6c14529323a0e34f31b87e3f97909de91c0f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7011927
Reviewed-by: Mason Freed <masonf@chromium.org>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1530985}

--

wpt-commits: 03a3ce595e7b51e4a27fc948fa47827a1412aff5
wpt-pr: 55363

Diffstat:
Atesting/web-platform/tests/html/semantics/menu/tentative/menuitem-anchor-positioning-ref.html | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atesting/web-platform/tests/html/semantics/menu/tentative/menuitem-anchor-positioning.html | 40++++++++++++++++++++++++++++++++++++++++
2 files changed, 104 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/html/semantics/menu/tentative/menuitem-anchor-positioning-ref.html b/testing/web-platform/tests/html/semantics/menu/tentative/menuitem-anchor-positioning-ref.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<style> + #menubar { + width: 300px; + background: lightblue; + } + .menuitem { + background: red; + padding: 1em; + width: 100px; + border: 0; + } + #menubar > .menuitem { + display: inline-block; + } + /* + Only buttons can trigger popovers, so style buttons like menuitems, and + reset some of their default styles. + */ + button { + box-sizing: content-box; + font-size: unset; + font-family: unset; + text-align: unset; + } + /* Unset some default popover styles to style them like menulists */ + div[popover] { + height: 150px; + background: green; + border: 0; + padding: 0; + margin: 0; + } + + #menulist-with-menubar-anchor { + position: absolute; + /* Below and span-right, by default. */ + position-area: block-end span-inline-end; + } + + #menulist-with-menulist-anchor { + position: absolute; + /* To the right, with its top aligned to the implicit anchor's top */ + position-area: inline-end span-block-end; + } +</style> + +<div id=menubar> + <div class=menuitem>Nothing</div> + <button class=menuitem id=trigger popovertarget=menulist-with-menubar-anchor>Trigger</button> +</div> + +<div popover id=menulist-with-menubar-anchor> + <button class=menuitem id=trigger2 popovertarget=menulist-with-menulist-anchor>Trigger 2</button> +</div> + +<div popover id=menulist-with-menulist-anchor> + <div class=menuitem>Most nested item</div> +</div> + +<script> + trigger.click(); + trigger2.click(); +</script> diff --git a/testing/web-platform/tests/html/semantics/menu/tentative/menuitem-anchor-positioning.html b/testing/web-platform/tests/html/semantics/menu/tentative/menuitem-anchor-positioning.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel=author href=mailto:dom@chromium.org> +<link rel=help href=https://open-ui.org/components/menu.explainer> +<link rel="match" href="menuitem-anchor-positioning-ref.html"> + +<style> + menubar { + display: block; + width: 300px; + background: lightblue; + } + menuitem { + display: inline-block; + background: red; + width: 100px; + } + menulist { + height: 150px; + background: green; + } +</style> + +<menubar> + <menuitem>Nothing</menuitem> + <menuitem id="trigger" command="toggle-menu" commandfor="menulist">Trigger</menuitem> +</menubar> + +<menulist id="menulist"> + <menuitem id=trigger2 command=toggle-menu commandfor=submenu>Trigger 2</menuitem> +</menulist> + +<menulist id="submenu"> + <menuitem>Most nested item</menuitem> +</menulist> + +<script> + trigger.click(); + trigger2.click(); +</script>