Closed Bug 1812778 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 38206 - Update popover post-toggle event naming and behavior

Categories

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

task

Tracking

()

RESOLVED FIXED
111 Branch
Tracking Status
firefox111 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Mason Freed <masonf@chromium.org> wrote:

Update popover post-toggle event naming and behavior

This CL updates the post-toggle event in the following ways:

  1. Rename the 'aftertoggle' event to 'toggle'.
  2. Rename PopoverToggleEvent to ToggleEvent.
  3. Rename the currentState attribute to oldState.
  4. Add event coalescing behavior. If two transitions occur before the
    first 'toggle' event has been fired, cancel the first event and
    queue a replacement that has oldState === newState.

These changes were driven by the corresponding changes to the spec PR:
https://github.com/whatwg/html/pull/8717

Bug: 1307772
Change-Id: Iabc5a9093d7cef3bbd6e54e488d8e571c51ea568
Reviewed-on: https://chromium-review.googlesource.com/4195120
WPT-Export-Revision: f6f6f3a2533af9efe4cadffa73671f2c5b3ba278

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

CI Results

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

Total 3 tests and 37 subtests

Status Summary

Firefox

OK : 3
PASS : 14
FAIL : 123

Chrome

OK : 2
PASS : 87
FAIL : 50
ERROR: 1

Safari

OK : 3
PASS : 14
FAIL : 123

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /html/semantics/popovers/idlharness.tentative.html [wpt.fyi]
    • ToggleEvent interface: existence and properties of interface object: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface object length: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface object name: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface: existence and properties of interface prototype object: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface: existence and properties of interface prototype object's "constructor" property: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface: existence and properties of interface prototype object's @@unscopables property: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface: attribute oldState: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEvent interface: attribute newState: FAIL (Chrome: FAIL, Safari: FAIL)
    • HTMLElement interface: operation togglePopover(optional boolean): FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: operation showPopover(): FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: operation hidePopover(): FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: attribute popover: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p1") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("p1") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p1") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p1") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p1") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p2") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("p2") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p2") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p2") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p2") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p3") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("p3") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p3") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p3") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("p3") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: attribute popoverToggleTargetElement: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: attribute popoverHideTargetElement: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: attribute popoverShowTargetElement: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i1") must inherit property "popoverToggleTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i1") must inherit property "popoverHideTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i1") must inherit property "popoverShowTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i1") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("i1") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i1") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i1") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i1") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i2") must inherit property "popoverToggleTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i2") must inherit property "popoverHideTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i2") must inherit property "popoverShowTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i2") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("i2") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i2") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i2") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i2") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i3") must inherit property "popoverToggleTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i3") must inherit property "popoverHideTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLInputElement interface: document.getElementById("i3") must inherit property "popoverShowTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i3") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("i3") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i3") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i3") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("i3") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: attribute popoverToggleTargetElement: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: attribute popoverHideTargetElement: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: attribute popoverShowTargetElement: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b1") must inherit property "popoverToggleTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b1") must inherit property "popoverHideTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b1") must inherit property "popoverShowTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b1") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("b1") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b1") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b1") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b1") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b2") must inherit property "popoverToggleTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b2") must inherit property "popoverHideTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b2") must inherit property "popoverShowTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b2") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("b2") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b2") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b2") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b2") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b3") must inherit property "popoverToggleTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b3") must inherit property "popoverHideTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLButtonElement interface: document.getElementById("b3") must inherit property "popoverShowTargetElement" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b3") must inherit property "togglePopover(optional boolean)" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: calling togglePopover(optional boolean) on document.getElementById("b3") with too few arguments must throw TypeError: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b3") must inherit property "showPopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b3") must inherit property "hidePopover()" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
    • HTMLElement interface: document.getElementById("b3") must inherit property "popover" with the proper type: FAIL (Chrome: PASS, Safari: FAIL)
  • /html/semantics/popovers/popover-events.tentative.html [wpt.fyi]
    • The "beforetoggle" event (listener) get properly dispatched for popovers: FAIL (Chrome: FAIL, Safari: FAIL)
    • The "beforetoggle" event (attribute) get properly dispatched for popovers: FAIL (Chrome: FAIL, Safari: FAIL)
    • The "beforetoggle" event is cancelable for the "opening" transition: FAIL (Chrome: FAIL, Safari: FAIL)
    • The "beforetoggle" event is not fired for element removal: FAIL (Chrome: FAIL, Safari: FAIL)
    • The "toggle" event is coalesced: FAIL (Chrome: FAIL, Safari: FAIL)
  • /html/semantics/popovers/toggleevent-interface.tentative.html [wpt.fyi]
    • the event is an instance of ToggleEvent: FAIL (Chrome: FAIL, Safari: FAIL)
    • the event inherts from Event: FAIL (Chrome: FAIL, Safari: FAIL)
    • Missing type argument: FAIL (Chrome: FAIL, Safari: FAIL)
    • type argument is string: FAIL (Chrome: FAIL, Safari: FAIL)
    • type argument is null: FAIL (Chrome: FAIL, Safari: FAIL)
    • event type set to undefined: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState has default value of empty string: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState is readonly: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState has default value of empty string: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState is readonly: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit argument is null: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit argument is undefined: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit argument is empty dictionary: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to 'sample': FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to undefined: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to null: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to false: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to true: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to a number: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to []: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to [1, 2, 3]: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to an object: FAIL (Chrome: FAIL, Safari: FAIL)
    • oldState set to an object with a valueOf function: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit properties set value: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit properties set value 2: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit properties set value 3: FAIL (Chrome: FAIL, Safari: FAIL)
    • ToggleEventInit properties set value 4: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to 'sample': FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to undefined: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to null: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to false: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to true: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to a number: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to []: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to [1, 2, 3]: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to an object: FAIL (Chrome: FAIL, Safari: FAIL)
    • newState set to an object with a valueOf function: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/08cec2a170c4
[wpt PR 38206] - Update popover post-toggle event naming and behavior, a=testonly
https://hg.mozilla.org/integration/autoland/rev/4a6e3222582c
[wpt PR 38206] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 111 Branch
You need to log in before you can comment on or make changes to this bug.