Closed Bug 2036332 Opened 16 days ago Closed 9 days ago

[wpt-sync] Sync PR 59562 - [Reference Target] Propagate toggle event to event source's tree

Categories

(Core :: DOM: Core & HTML, task, P4)

task

Tracking

()

RESOLVED FIXED
152 Branch
Tracking Status
firefox152 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 59562 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/59562
Details from upstream follow.

Daniel Clark <daniec@microsoft.com> wrote:

[Reference Target] Propagate toggle event to event source's tree

Apply the changes in [1] to the beforetoggle and toggle events as
well, such that if the event source is in a shadow-including
ancestor tree, these events will propagate to that ancestor tree.

This turned out to cause beforetoggle/toggle events from customizable
selects with implicit buttons to be re-bubbled out of the user agent
shadow, because MenuListSelectType::ShowPopup calls
ShowPopoverInternal on the popover in the UA shadow with the
\<select> as the invoker, which hits the new code to bubble the
event to the source's tree. This is fixed by excluding UA shadow
roots from the new event propagation behavior.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/7722304

Bug: 346835896
Change-Id: Iedf133ae744a21bc4a1f7d869c7a8f3b527f7a7f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7789345
Commit-Queue: Dan Clark \<daniec@microsoft.com>
Reviewed-by: Mason Freed \<masonf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1623205}

Component: web-platform-tests → DOM: Core & HTML
Product: Testing → Core

CI Results

Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 13 tests and 6 subtests

Status Summary

Firefox

OK : 3[GitHub] 12[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
PASS : 1[GitHub] 6235[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
FAIL : 11[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] 15[GitHub]
TIMEOUT: 1
ERROR : 1

Chrome

OK : 3
PASS : 15
FAIL : 1
TIMEOUT: 2

Safari

OK : 3
PASS : 1
FAIL : 15
TIMEOUT: 1
ERROR : 1

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /shadow-dom/reference-target/tentative/commandfor.html [wpt.fyi]
    • Shadow root reference target works with commandfor attribute.: FAIL [GitHub], PASS [Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] (Chrome: PASS, Safari: FAIL)
    • Shadow root reference target works with commandfor attribute via options.: FAIL [GitHub], PASS [Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] (Chrome: PASS, Safari: FAIL)
    • Shadow root reference target works with .commandForElement property.: FAIL [GitHub], PASS [Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] (Chrome: PASS, Safari: FAIL)
  • /shadow-dom/reference-target/tentative/dom-mutation.html [wpt.fyi]
    • .labels property is updated when for attribute changes on label outside of shadow root: FAIL
    • .labels property is updated when ID changes on input: FAIL
  • /shadow-dom/reference-target/tentative/event-path.html [wpt.fyi]: ERROR (Chrome: TIMEOUT, Safari: ERROR)
    • Event propagates to source's shadow tree only; target in deeper shadow root: FAIL (Chrome: PASS, Safari: FAIL)
    • Event path includes all shadow hosts and shadow roots up to the root of the source, but non-bubbling event fires only Non-bubbling event fires only where currentTarget == retargeted original target: FAIL (Chrome: PASS, Safari: FAIL)
    • Event path skips root containing neither source nor target. Non-bubbling event fires only where currentTarget == retargeted original target: FAIL (Chrome: PASS, Safari: FAIL)
    • Event path should go all the way to window if source is not in a shadow, but should only fire when currentTarget == retargeted original target: FAIL (Chrome: PASS, Safari: FAIL)
    • Event propagates to source tree when source is given in synthetic event, even without reference target: FAIL (Chrome: PASS, Safari: FAIL)
    • beforetoggle event propagates to source's shadow tree only; target in deeper shadow root: FAIL (Chrome: FAIL, Safari: FAIL)
    • toggle event propagates to source's shadow tree only; target in deeper shadow root: TIMEOUT (Chrome: TIMEOUT, Safari: TIMEOUT)
  • /shadow-dom/reference-target/tentative/interestfor.tentative.html [wpt.fyi]
    • Shadow root reference target works with interestfor attribute.: FAIL (Chrome: PASS, Safari: FAIL)
    • Shadow root reference target works with interestfor attribute via options.: FAIL (Chrome: PASS, Safari: FAIL)
    • Shadow root reference target works with .interestForElement property.: FAIL (Chrome: PASS, Safari: FAIL)
  • /shadow-dom/reference-target/tentative/popovertarget.html [wpt.fyi]
    • Shadow root reference target works with popovertarget attribute.: FAIL [GitHub], PASS [Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] (Chrome: PASS, Safari: FAIL)
    • Shadow root reference target works with popovertarget attribute via options.: FAIL [GitHub], PASS [Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] (Chrome: PASS, Safari: FAIL)
    • Shadow root reference target works with .popoverTargetElement property.: FAIL [GitHub], PASS [Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt] (Chrome: PASS, Safari: FAIL)
Status: NEW → RESOLVED
Closed: 9 days ago
Resolution: --- → FIXED
Target Milestone: --- → 152 Branch
You need to log in before you can comment on or make changes to this bug.