Closed Bug 1821732 Opened 1 year ago Closed 7 months ago

implement popover light dismiss

Categories

(Core :: DOM: Core & HTML, enhancement)

enhancement

Tracking

()

RESOLVED FIXED

People

(Reporter: surkov, Assigned: surkov)

References

(Depends on 1 open bug, Blocks 1 open bug, Regressed 1 open bug)

Details

Attachments

(13 files, 2 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
Attachment #9322453 - Attachment description: WIP: Bug 1821732 - implement popover light dismiss → Bug 1821732 - implement auto popover list
Attachment #9322453 - Attachment description: Bug 1821732 - implement auto popover list → WIP: Bug 1821732 - implement popover light dismiss
Attachment #9322453 - Attachment description: WIP: Bug 1821732 - implement popover light dismiss → WIP: Bug 1821732 - implement auto popover list
Attachment #9322453 - Attachment description: WIP: Bug 1821732 - implement auto popover list → Bug 1821732 - implement auto popover list
Attachment #9322453 - Attachment description: Bug 1821732 - implement auto popover list → Bug 1821732 - implement auto popover list, r?emilio
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 113 Branch

more patches are coming

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Status: REOPENED → ASSIGNED
Target Milestone: 113 Branch → ---
Keywords: leave-open
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/34b104a10e48
implement "hide all popovers unitl" algorithm, r=emilio
Attachment #9323997 - Attachment description: WIP: Bug 1821732 - implement the nearest inclusive open popover algorithm → Bug 1821732 - implement the nearest inclusive open popover algorithm
Attachment #9323997 - Attachment description: Bug 1821732 - implement the nearest inclusive open popover algorithm → Bug 1821732 - implement the nearest inclusive open popover algorithm, r?emilio
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/2622ca0f5a6c
implement the nearest inclusive open popover algorithm, r=emilio
Type: task → enhancement

Comment on attachment 9324239 [details]
WIP: Bug 1821732 - support PopoverInvokerElement

Revision D173180 was moved to bug 1823757. Setting attachment 9324239 [details] to obsolete.

Attachment #9324239 - Attachment is obsolete: true
Blocks: 1824374
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/41dd97c2aeaf
implement nearest invlusive target popover for invoker alg, r=emilio
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/a3a7ad63c14a
implement the topmost clicked popover algorithm, r=emilio
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/c82f0271d0f6
implement get popover target alg, r=emilio
Attachment #9327365 - Attachment description: Bug 1821732 - implement popover light dismiss, r?emilio → Bug 1821732 - implement light dismiss open popovers on pointer events, r?emilio
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/bdf80a0626c0
polyfill the declarative shadow DOM feature in popover-light-dismiss.html test, r=emilio
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/39910 for changes under testing/web-platform/tests
Upstream PR merged by moz-wptsync-bot
Depends on: 1828674

Temporary auto popover list variable is freed while it's used for mozilla::Reversed, thus
GetTopmostClickedPopover comparisment fails.

Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/4b1185a310de
GetTopmostClickedPopover fails to return a popover, r=emilio

Actions don't drop their state on send, subsequent send() call retriggers the whole sequence
which may lead to unexpected errors, see https://github.com/web-platform-tests/wpt/issues/40062

Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/e6916184642e
popover-light-dismiss tests shouldn't reuse existing actions, r=emilio
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/40179 for changes under testing/web-platform/tests
Upstream PR merged by moz-wptsync-bot
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/0f52c6760d33
fix 'Popovers close on pointerup, not pointerdown' test in popover_light_dismiss.html, r=emilio
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/40200 for changes under testing/web-platform/tests

Internal wpt webdriver error may cause get_context call for an object in the case,
for example, of subsequent sending of the webdriver actions, which alters action origin
from an element to an object.

Regressions: 1834837

Promise reject should always go with an Error object because unhandled
promise throws the given value.

If webdriver action fails, then it prints stack in terminal and all the wpt testsuite
has is {status:error} object with no context. The given data has no |message|
field either so the promise is rejected with 'error: undefined' string which makes
a very misterious error. Throwing a real error with a good message gives a stack
and a hint how to debug the failure.

Upstream PR merged by moz-wptsync-bot
Attachment #9335719 - Attachment is obsolete: true

HTML anchor is a separate spec from popover spec and they should be tested
independently. Having unitary testing for different spec helps to uncover bugs
easily as well as it helpful to test one spec while the other one is not yet
implemented. Now popover-light-dismiss test is neary useless if anchor spec is
not implemented, because the test just fails.

If integration tests to cover popover and anchor specs are needed, they should
be added separately.

Attachment #9341061 - Attachment description: WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Attachment #9341061 - Attachment description: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Attachment #9341061 - Attachment description: WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Attachment #9341061 - Attachment description: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Attachment #9341061 - Attachment description: WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/63f48f5eacea
popover-light-dismiss test should have no dependency on anchor r=mbrodesser-Igalia,emilio
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/41189 for changes under testing/web-platform/tests
Regressions: 1845592

Backed out for causing failures on popover-light-dismiss-with-anchor.tentative.html

Backout link

Push with failures

Failure log

Flags: needinfo?(surkov.alexander)
Upstream PR was closed without merging
Attachment #9341061 - Attachment description: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Attachment #9341061 - Attachment description: WIP: Bug 1821732 - popover-light-dismiss test should have no dependency on anchor → Bug 1821732 - popover-light-dismiss test should have no dependency on anchor
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/80431152bbf5
popover-light-dismiss test should have no dependency on anchor r=mbrodesser-Igalia,emilio

Backed out for causing failures on popover-light-dismiss.html

[task 2023-07-27T20:27:07.975Z] 20:27:07     INFO - TEST-PASS | /html/semantics/popovers/popover-light-dismiss.html | Scrolling within a popover should not close the popover 
[task 2023-07-27T20:27:07.975Z] 20:27:07     INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-light-dismiss.html | Clicking inside a shadow DOM popover does not close that popover - expected FAIL
[task 2023-07-27T20:27:07.976Z] 20:27:07     INFO - TEST-INFO | expected FAIL
[task 2023-07-27T20:27:07.981Z] 20:27:07     INFO - .........
[task 2023-07-27T20:27:07.982Z] 20:27:07     INFO - TEST-OK | /html/semantics/popovers/popover-light-dismiss.html | took 4114ms
Upstream PR was closed without merging
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/a0effe93b699
popover-light-dismiss test should have no dependency on anchor r=mbrodesser-Igalia,emilio
Flags: needinfo?(surkov.alexander)
Upstream PR merged by moz-wptsync-bot
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/4d64571ef929
implement light dismiss open popovers on pointer events, r=smaug

Backed out for popovers related unexpected passes.

Push with failures: https://treeherder.mozilla.org/jobs?repo=autoland&selectedTaskRun=Hy9h6TkpSISXGrhF4I5mAw.0&resultStatus=testfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel&searchStr=web&revision=82ae09837aed66d319e3280febbf971a401bd8a6&test_paths=%2Fhtml%2Fsemantics%2Fpopovers

Failure log: https://treeherder.mozilla.org/logviewer?job_id=430452286&repo=autoland

Backout link: https://hg.mozilla.org/integration/autoland/rev/ddf1641161472c3988d14e919e61e23f57fe3f8d

Full list of unexpected passes:

13795	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: pointerdown, capture: true - expected FAIL
13798	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: pointerup, capture: true - expected FAIL
13801	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: mousedown, capture: true - expected FAIL
13804	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: mouseup, capture: true - expected FAIL
13807	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: click, capture: true - expected FAIL
13810	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: pointerdown, capture: false - expected FAIL
13813	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: pointerup, capture: false - expected FAIL
13816	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: mousedown, capture: false - expected FAIL
13819	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: mouseup, capture: false - expected FAIL
13822	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the interactions between popover light dismiss and pointer/mouse events. eventName: click, capture: false - expected FAIL
13825	07:22:25 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/light-dismiss-event-ordering.html | Tests the order of pointer/mouse events during popover light dismiss. - expected FAIL
14043	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from auto to manual (via attr), and then auto during 'beforetoggle' works - expected FAIL
14050	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from auto to invalid (via attr), and then auto during 'beforetoggle' works - expected FAIL
14057	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from auto to null (via attr), and then auto during 'beforetoggle' works - expected FAIL
14089	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from manual to auto (via attr), and then auto during 'beforetoggle' works - expected FAIL
14122	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from auto to manual (via idl), and then auto during 'beforetoggle' works - expected FAIL
14129	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from auto to invalid (via idl), and then auto during 'beforetoggle' works - expected FAIL
14182	07:22:39 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-attribute-basic.html | Changing a popover from manual to auto (via idl), and then auto during 'beforetoggle' works - expected FAIL
15136	07:23:55 WARNING - ValueError: Selector '#\69 \6e \6e \65 \72 \50 \6f \70 \6f \76 \65 \72 \54 \6f \67 \67 \6c \65 ' matches no elements
15293	07:23:59 INFO - TEST-UNEXPECTED-PASS | /html/semantics/popovers/popover-light-dismiss-with-anchor.tentative.html | Clicking on anchor element (that isn't an invoking element) shouldn't prevent its popover from being closed - expected FAIL
Flags: needinfo?(surkov.alexander)
Backout by csabou@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/583f2081d1ac
Backed out changeset 4d64571ef929 for popovers related unexpected passes. CLOSED TREE
Pushed by surkov.alexander@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/47cc6b5e8fa4
implement light dismiss open popovers on pointer events, r=smaug

marking as fixed, bug 1836263 will handle esc key.

Status: ASSIGNED → RESOLVED
Closed: 1 year ago7 months ago
Flags: needinfo?(surkov.alexander)
Resolution: --- → FIXED
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/42211 for changes under testing/web-platform/tests
Upstream PR merged by moz-wptsync-bot
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: