[wpt-sync] Sync PR 43737 - Update popover=hint behavior to allow a stack of hints
Categories
(Core :: DOM: Core & HTML, task, P4)
Tracking
()
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: Ic064ecf1377bb8abfc812654c85016e6d1cbbdafReviewed-on: https://chromium-review.googlesource.com/5133909
WPT-Export-Revision: c4dc7ebef591d7fc007323ab6c33d7155f02f3ab
Assignee | ||
Updated•1 year ago
|
Assignee | ||
Comment 1•1 year ago
|
||
Assignee | ||
Comment 2•1 year ago
|
||
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
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
)
- Mixed auto/hint light dismiss behavior, click on auto1:
- /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
)
- manuals do not close popovers:
Comment 4•1 year ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fcb792a0665a
https://hg.mozilla.org/mozilla-central/rev/5cf5e071b619
Description
•