Closed Bug 1870961 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 43737 - Update popover=hint behavior to allow a stack of hints

Categories

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

task

Tracking

()

RESOLVED FIXED
123 Branch
Tracking Status
firefox123 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Mason Freed <masonf@chromium.org> wrote:

Update popover=hint behavior to allow a stack of hints

The previous implementation only allowed one popover=hint to be open
at a time. Per conversation at [1], developers feel that it should be
possible to nest popover=hint popovers. This CL implements that
capability.

There are now two popover stacks in Document: PopoverAutoStack and
PopoverHintStack. Since it is possible to nest hints within autos,
the PopoverAutoStack can contain hints. However, there
are a few constraints:

  • The PopoverHintStack only ever contains hints.
  • Once the PopoverAutoStack contains a hint, all subsequent popovers
    in the stack must also be hints.
  • A popover=hint can never be the ancestor of a popover=auto.

The light dismiss behavior is roughly the same as before, with a
slight tweak that simplifies behavior: closing anything in the
PopoverAutoStack will always close everything in the PopoverHintStack.
That was not the case before, but it was a bit of a weird corner case.

Note that I found a crasher (happens in stable, with just auto
popovers) that I added a test for here. The bug for that is
crbug.com/1513282. I'll fix that in a followup.

[1] https://github.com/whatwg/html/issues/9776#issuecomment-1785814179

Bug: 1416284,1513282
Change-Id: Ic064ecf1377bb8abfc812654c85016e6d1cbbdaf

Reviewed-on: https://chromium-review.googlesource.com/5133909
WPT-Export-Revision: c4dc7ebef591d7fc007323ab6c33d7155f02f3ab

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

CI Results

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

Total 4 tests

Status Summary

Firefox

OK : 3
PASS : 29
FAIL : 16

Chrome

OK : 3
PASS : 30
CRASH: 1
FAIL : 14

Safari

OK : 3
PASS : 29
FAIL : 16

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /html/semantics/popovers/popover-light-dismiss-hint.tentative.html [wpt.fyi]
    • Mixed auto/hint light dismiss behavior, click on auto1: FAIL (Chrome: FAIL, Safari: FAIL)
    • Mixed auto/hint light dismiss behavior, click on auto2: FAIL (Chrome: FAIL, Safari: FAIL)
    • Mixed auto/hint light dismiss behavior, click on innerhint1: FAIL (Chrome: FAIL, Safari: FAIL)
    • Mixed auto/hint light dismiss behavior, click on innerhint2: FAIL (Chrome: FAIL, Safari: FAIL)
    • Mixed auto/hint light dismiss behavior, click on hint1: FAIL (Chrome: FAIL, Safari: FAIL)
    • Mixed auto/hint light dismiss behavior, click on hint2: FAIL (Chrome: FAIL, Safari: FAIL)
    • Clicking outside closes all: FAIL (Chrome: FAIL, Safari: FAIL)
    • Auto cannot be nested inside hint (invalidauto1): FAIL (Chrome: FAIL, Safari: FAIL)
    • Auto cannot be nested inside hint (invalidauto2): FAIL (Chrome: FAIL, Safari: FAIL)
  • /html/semantics/popovers/popover-types-with-hints.tentative.html [wpt.fyi]
    • manuals do not close popovers: FAIL (Chrome: FAIL, Safari: FAIL)
    • autos close hints but not manuals: FAIL (Chrome: FAIL, Safari: FAIL)
    • hint is not closed by pre-existing auto: FAIL (Chrome: PASS, Safari: FAIL)
    • You can nest hint popovers: FAIL (Chrome: FAIL, Safari: FAIL)
    • If a popover=auto is shown, it should hide any open popover=hint, including if the popover=hint is an ancestral popover of the popover=auto. (You can't nest a popover=auto inside a popover=hint): FAIL (Chrome: PASS, Safari: FAIL)
    • If you: a) show a popover=auto (call it D), then b) show a descendent popover=hint of D (call it T), then c) hide D, then T should be hidden. (A popover=hint can be nested inside a popover=auto): FAIL (Chrome: PASS, Safari: FAIL)
    • If you: a) show a popover=auto (call it D), then b) show a non-descendent popover=hint of D (call it T), then c) hide D, then T should be hidden. (Non-nested popover=hint gets hidden when unrelated popover=autos are hidden): FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fcb792a0665a [wpt PR 43737] - Update popover=hint behavior to allow a stack of hints, a=testonly https://hg.mozilla.org/integration/autoland/rev/5cf5e071b619 [wpt PR 43737] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 123 Branch
You need to log in before you can comment on or make changes to this bug.