Use XULPopupElement.activateElement rather than menuitem.click() for testing menuitems
Categories
(Firefox :: Menus, task)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox110 | --- | fixed |
People
(Reporter: emilio, Assigned: emilio)
References
Details
Attachments
(1 file)
| Assignee | ||
Comment 1•3 years ago
|
||
Bug 1805414 will move menu event handling to the DOM.
With that change the current synthetic click behavior of XUL menuitems
breaks. On current central, we rely on nsMenuFrame::HandleEvent not
getting called at all for synthetic clicks, and instead we just fire a
command event synchronously here:
After my patch the command event is fired properly (potentially
asynchronously too) by the regular menu activation machinery, which is
preferable.
-
They fire a command event synchronously (even though on some
platforms like macOS activating a context menu item is async). -
They use a totally different codepath from what a user does.
-
They don't deal with native menus, etc.
We have a proper API for this (activateItem) which takes a much more
closer codepath to what users do, requires that the menu is shown, etc.
Use that API instead for testing.
As a benefit, tests now do not need to close the context menu manually
when clicking on a menu item (because we trigger the same code path as
users clicking the menu).
Comment 4•3 years ago
|
||
Backed out for causing dt failures on browser_net_telemetry_throttle_changed.js
- Backout link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js | Uncaught exception in test - InvalidStateError: XULPopupElement.activateItem: Menu containing menu item is not open
Comment 5•3 years ago
|
||
| Assignee | ||
Updated•3 years ago
|
Comment 7•3 years ago
|
||
| bugherder | ||
Description
•