Closed Bug 1846030 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 41229 - CloseWatcher: factor out and expand Esc key tests

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox118 fixed)

RESOLVED FIXED
118 Branch
Tracking Status
firefox118 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Domenic Denicola <domenic@chromium.org> wrote:

CloseWatcher: factor out and expand Esc key tests

Previously, tests which assumed the Esc key was the close signal were
mixed up with tests that were generic for any close signal. Factor out
those tests from basic.html and after-other-listeners.html, and expand
them to cover keyup and keypress in addition to keydown.

Bug: 1171318
Change-Id: I09a62b087f5f2b0b7032adbd9f987dca711950a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4721668
Commit-Queue: Domenic Denicola \<domenic@chromium.org>
Reviewed-by: Nate Chapin \<japhet@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1176390}

PR 41229 applied with additional changes from upstream: d8c9a694e850e1715d83802f1b2adb0c2f8d41b7, d5c4e9b3ef79ee0fd420e3ce477c10fb1ab5ff8d

CI Results

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

Total 6 tests and 17 subtests

Status Summary

Firefox

OK : 6
FAIL: 37

Chrome

OK : 6
FAIL: 37

Safari

OK : 6
FAIL: 37

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /close-watcher/basic.html [wpt.fyi]
    • requestClose() with no user activation only fires close: FAIL (Chrome: FAIL, Safari: FAIL)
    • destroy() then requestClose() fires no events: FAIL (Chrome: FAIL, Safari: FAIL)
    • close() then requestClose() fires only one close event: FAIL (Chrome: FAIL, Safari: FAIL)
    • requestClose() then destroy() fires only one close event: FAIL (Chrome: FAIL, Safari: FAIL)
    • close() then destroy() fires only one close event: FAIL (Chrome: FAIL, Safari: FAIL)
    • destroy() then close signal fires no events: FAIL (Chrome: FAIL, Safari: FAIL)
    • Close signal then destroy() fires only one close event: FAIL (Chrome: FAIL, Safari: FAIL)
  • /close-watcher/esc-key.html [wpt.fyi]
    • Esc key does not count as user activation, so if it is the sole user interaction, that fires close but not cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • A keydown listener can prevent the Esc keypress from being interpreted as a close signal: FAIL (Chrome: FAIL, Safari: FAIL)
    • A keyup listener can prevent the Esc keypress from being interpreted as a close signal: FAIL (Chrome: FAIL, Safari: FAIL)
    • A keypress listener can prevent the Esc keypress from being interpreted as a close signal: FAIL (Chrome: FAIL, Safari: FAIL)
    • close via synthesized Esc key must not work: FAIL (Chrome: FAIL, Safari: FAIL)
  • /close-watcher/event-properties.html [wpt.fyi]
    • cancel and close event properties are correct: FAIL (Chrome: FAIL, Safari: FAIL)
  • /close-watcher/inside-event-listeners.html [wpt.fyi]
    • destroy() inside oncancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • destroy() inside onclose: FAIL (Chrome: FAIL, Safari: FAIL)
    • close() inside oncancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • close() inside onclose: FAIL (Chrome: FAIL, Safari: FAIL)
    • requestClose() inside oncancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • requestClose() inside onclose: FAIL (Chrome: FAIL, Safari: FAIL)
  • /close-watcher/user-activation-multiple-plus-free.html [wpt.fyi]
    • Multiple CloseWatchers created from a single user activation close together, but original free CloseWatcher closes separately: FAIL (Chrome: FAIL, Safari: FAIL)
  • /close-watcher/user-activation.html [wpt.fyi]
    • CloseWatchers created without user activation, but requestClose()d via user activation, fires cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • CloseWatchers created without user activation, but requestClose()d via user activation, fires cancel, which can be preventDefault()ed: FAIL (Chrome: FAIL, Safari: FAIL)
    • CloseWatchers created without user activation, but close()d via user activation, do not fire cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • CloseWatchers created without user activation, but closed via a close signal after user activation, fires cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • CloseWatchers created without user activation, but closed via a close signal after user activation, fires cancel, which can be preventDefault()ed: FAIL (Chrome: FAIL, Safari: FAIL)
    • Multiple CloseWatchers created without user activation close together (with no cancel): FAIL (Chrome: FAIL, Safari: FAIL)
    • Creating a CloseWatcher from user activation keeps it separate from the free CloseWatcher, but they don't fire cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • Creating a CloseWatcher from user activation, and requestClose()ing CloseWatchers with user activation, fires cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • Creating a CloseWatcher from user activation, and closing CloseWatchers with a close signal after user activation, fires cancel: FAIL (Chrome: FAIL, Safari: FAIL)
    • Multiple CloseWatchers created with user activation close in reverse order: FAIL (Chrome: FAIL, Safari: FAIL)
    • 3 user activations let you have 3 + 1 = 4 ungrouped close watchers/0 cancel events: FAIL (Chrome: FAIL, Safari: FAIL)
    • 3 user activations let you have 2 close watchers with 1 cancel event, even if the first cancel event is prevented: FAIL (Chrome: FAIL, Safari: FAIL)
    • destroy()ing the free CloseWatcher allows a new free one to be created without user activation, and it receives the close signal: FAIL (Chrome: FAIL, Safari: FAIL)
    • requestClose()ing the free CloseWatcher allows a new free one to be created without user activation, and it receives the close signal: FAIL (Chrome: FAIL, Safari: FAIL)
    • closing the free CloseWatcher via a close signal allows a new free one to be created without user activation, and it receives a second close signal: FAIL (Chrome: FAIL, Safari: FAIL)
    • The second watcher can be the free watcher, if the first is created with user activation: FAIL (Chrome: FAIL, Safari: FAIL)
    • The third watcher can be the free watcher, if the first two are created with user activation: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/eaaafbe87d29
[wpt PR 41229] - CloseWatcher: factor out and expand Esc key tests, a=testonly
https://hg.mozilla.org/integration/autoland/rev/2333a9a4c24f
[wpt PR 41229] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 118 Branch
You need to log in before you can comment on or make changes to this bug.