tor-browser

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

commit 22139b6fef9369c0e5c17eeff66c577c1ec8c49c
parent 269c9bd63b4c43db525158f52a8468ac7c72918c
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu,  4 Dec 2025 18:30:07 +0000

Bug 2004024 [wpt PR 56485] - Sync interfaces/ with @webref/idl 3.69.1, a=testonly

Automatic update from web-platform-tests
Sync interfaces/ with @webref/idl 3.69.1 (#56485)

Co-authored-by: wpt-pr-bot <wpt-pr-bot@users.noreply.github.com>
--

wpt-commits: e91e6385ad12b47c800a6d799a4495689217b3e6
wpt-pr: 56485

Diffstat:
Mtesting/web-platform/tests/css/css-pseudo/events-on-pseudo-element.tentative.html | 103++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
Dtesting/web-platform/tests/interfaces/origin.idl | 12------------
2 files changed, 100 insertions(+), 15 deletions(-)

diff --git a/testing/web-platform/tests/css/css-pseudo/events-on-pseudo-element.tentative.html b/testing/web-platform/tests/css/css-pseudo/events-on-pseudo-element.tentative.html @@ -65,6 +65,24 @@ let dblclickPseudoTarget = null; let mouseoverTarget = null; let mouseoverPseudoTarget = null; + let mouseoutTarget = null; + let mouseoutPseudoTarget = null; + let mouseenterTarget = null; + let mouseenterPseudoTarget = null; + let mouseleaveTarget = null; + let mouseleavePseudoTarget = null; + let pointeroverTarget = null; + let pointeroverPseudoTarget = null; + let pointeroutTarget = null; + let pointeroutPseudoTarget = null; + let pointerenterTarget = null; + let pointerenterPseudoTarget = null; + let pointerleaveTarget = null; + let pointerleavePseudoTarget = null; + let wheelTarget = null; + let wheelPseudoTarget = null; + let scrollTarget = null; + let scrollPseudoTarget = null; let focusinTarget = null; let focusinPseudoTarget = null; let focusoutTarget = null; @@ -108,6 +126,34 @@ mouseoverTarget = e.target; mouseoverPseudoTarget = e.pseudoTarget; }); + target.addEventListener("mouseout", (e) => { + mouseoutTarget = e.target; + mouseoutPseudoTarget = e.pseudoTarget; + }); + target.addEventListener("mouseenter", (e) => { + mouseenterTarget = e.target; + mouseenterPseudoTarget = e.pseudoTarget; + }); + target.addEventListener("mouseleave", (e) => { + mouseleaveTarget = e.target; + mouseleavePseudoTarget = e.pseudoTarget; + }); + target.addEventListener("pointerover", (e) => { + pointeroverTarget = e.target; + pointeroverPseudoTarget = e.pseudoTarget; + }); + target.addEventListener("pointerout", (e) => { + pointeroutTarget = e.target; + pointeroutPseudoTarget = e.pseudoTarget; + }); + target.addEventListener("pointerenter", (e) => { + pointerenterTarget = e.target; + pointerenterPseudoTarget = e.pseudoTarget; + }); + target.addEventListener("pointerleave", (e) => { + pointerleaveTarget = e.target; + pointerleavePseudoTarget = e.pseudoTarget; + }); target.addEventListener("focusin", (e) => { focusinTarget = e.target; @@ -139,6 +185,15 @@ transitionendPseudoTarget = e.pseudoTarget; }); + target.addEventListener('wheel', (e) => { + wheelTarget = e.target; + wheelPseudoTarget = e.pseudoTarget; + }); + target.addEventListener('scroll', (e) => { + scrollTarget = e.target; + scrollPseudoTarget = e.pseudoTarget; + }); + const kTab = "\uE004"; const kEnter = "\uE007"; const scrollMarkerX = 20; @@ -173,7 +228,9 @@ assert_equals(dblclickPseudoTarget, pseudoElement, "event.pseudoTarget is ::scroll-marker for double click"); assert_equals(mouseoverTarget, target, "event.target is ultimate originating element for mouseover"); - assert_equals(mouseoverPseudoTarget, pseudoElement, "event.pseudoTarget is ::scroll-marker for mouseover"); + // `mouseover` is a boundary event; currently `pseudoTarget` is not + // defined for boundary events, so it should be null. + assert_equals(mouseoverPseudoTarget, null, "event.pseudoTarget is null for mouseover (boundary event)"); await new test_driver.Actions() .keyDown(kTab) @@ -200,5 +257,46 @@ await waitForEvent(target, "transitionend"); assert_equals(transitionendTarget, target, "event.target is ultimate originating element for transitionend"); assert_equals(transitionendPseudoTarget, pseudoElement, "event.pseudoTarget is ::scroll-marker for transitionend"); + + // Move pointer away to trigger boundary events (mouseout / pointerout / leave) + const mouseOutPromise = waitForEvent(target, 'mouseout'); + const pointerOutPromise = waitForEvent(target, 'pointerout'); + const mouseLeavePromise = waitForEvent(target, 'mouseleave'); + const pointerLeavePromise = waitForEvent(target, 'pointerleave'); + await new test_driver.Actions() + .pointerMove(0, 0) + .send(); + await Promise.all([mouseOutPromise, pointerOutPromise, mouseLeavePromise, pointerLeavePromise]); + + // Boundary events should not have pseudoTarget set. + assert_equals(mouseoutTarget, target, "event.target is ultimate originating element for mouseout"); + assert_equals(mouseoutPseudoTarget, null, "event.pseudoTarget is null for mouseout (boundary event)"); + assert_equals(pointeroutTarget, target, "event.target is ultimate originating element for pointerout"); + assert_equals(pointeroutPseudoTarget, null, "event.pseudoTarget is null for pointerout (boundary event)"); + assert_equals(mouseleaveTarget, target, "event.target is ultimate originating element for mouseleave"); + assert_equals(mouseleavePseudoTarget, null, "event.pseudoTarget is null for mouseleave (boundary event)"); + assert_equals(pointerleaveTarget, target, "event.target is ultimate originating element for pointerleave"); + assert_equals(pointerleavePseudoTarget, null, "event.pseudoTarget is null for pointerleave (boundary event)"); + + // Move pointer back in to trigger enter events; they should also be null + const mouseEnterPromise = waitForEvent(target, 'mouseenter'); + const pointerEnterPromise = waitForEvent(target, 'pointerenter'); + await new test_driver.Actions() + .pointerMove(scrollMarkerX, scrollMarkerY) + .send(); + await Promise.all([mouseEnterPromise, pointerEnterPromise]); + assert_equals(mouseenterTarget, target, "event.target is ultimate originating element for mouseenter"); + assert_equals(mouseenterPseudoTarget, null, "event.pseudoTarget is null for mouseenter (boundary event)"); + assert_equals(pointerenterTarget, target, "event.target is ultimate originating element for pointerenter"); + assert_equals(pointerenterPseudoTarget, null, "event.pseudoTarget is null for pointerenter (boundary event)"); + + // Dispatch some unrelated events and ensure pseudoTarget is null. + target.dispatchEvent(new WheelEvent('wheel')); + assert_equals(wheelTarget, target, 'wheel event target should be the element'); + assert_equals(wheelPseudoTarget, null, 'wheel event pseudoTarget should be null'); + + target.dispatchEvent(new Event('scroll')); + assert_equals(scrollTarget, target, 'scroll event target should be the element'); + assert_equals(scrollPseudoTarget, undefined, 'scroll event pseudoTarget should be null'); }); -</script> -\ No newline at end of file +</script> diff --git a/testing/web-platform/tests/interfaces/origin.idl b/testing/web-platform/tests/interfaces/origin.idl @@ -1,12 +0,0 @@ -// https://github.com/mikewest/origin-api/ -[Exposed=*] -interface Origin { - constructor(); - - static Origin from(any value); - - readonly attribute boolean opaque; - - boolean isSameOrigin(Origin other); - boolean isSameSite(Origin other); -};