Implement a policy to prevent multiple popups from appearing simultaneously
Categories
(Toolkit :: PopupNotifications and Notification Bars, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox142 | --- | fixed |
People
(Reporter: baku, Assigned: baku)
References
(Regressed 1 open bug)
Details
(Whiteboard: [addons-jira])
Attachments
(2 files)
We're facing multiple bugs caused by overlapping popups, often triggered by malicious sites or extensions. Multiple popups are a poor UX pattern and confuse users. A centralized policy allows async or low-priority popups to be queued and displayed safely.
| Assignee | ||
Comment 1•1 year ago
|
||
The logic I would like to implement is as follows:
- Popups with the
queueableattribute set totruecan be displayed asynchronously. - Only one queueable popup can be visible at a time. The next one is shown once the current one is dismissed or hidden.
- When a non-queueable popup is shown, any currently visible queueable popup is dismissed.
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 2•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 3•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Comment 4•1 year ago
|
||
This is a blocker to expanding the availability of the action.openPopup() extension API. The current patches here offer the ability to queue panels, but do not apply that to extension popups. Implementing that could be a part of bug 1799347 or a separate bug.
Backed out for causing bc failures @ browser_TabUnloader.js
| Assignee | ||
Updated•1 year ago
|
Comment 9•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/ea9a8eadf9b4
https://hg.mozilla.org/mozilla-central/rev/a90471f599bc
Comment 10•1 year ago
|
||
Comment 11•1 year ago
|
||
Backed out for causing Mn assertion failures @ ClearOnShutdown.cpp
Backout link: hg.mozilla.org/integration/autoland/rev/9945a98390811f55b4364894d97c45143e78b513
Comment 12•1 year ago
|
||
Stack of crash, for future reference:
MOZ_ASSERT(false) (ClearOnShutdown for phase that already was cleared) [@ mozilla::ClearOnShutdown_Internal::InsertIntoShutdownList] | browser/components/sidebar/tests/marionette/test_initialize_vertical_tabs.py TestInitializeVerticalTabs.test_restore_tabstrip_customizations
0 xul.dll!mozilla::ClearOnShutdown_Internal::InsertIntoShutdownList(mozilla::ClearOnShutdown_Internal::ShutdownObserver*, mozilla::ShutdownPhase) [ClearOnShutdown.cpp:...]
1 xul.dll!mozilla::ClearOnShutdown(mozilla::StaticRefPtr<PopupQueue>*, mozilla::ShutdownPhase) [ClearOnShutdown.cpp:...]
2 xul.dll!PopupQueue::GetInstance() [PopupQueue.cpp:...]
3 xul.dll!nsXULPopupManager::HidePopup(mozilla::dom::Element*, mozilla::EnumSet<HidePopupOption,unsigned char>, mozilla::dom::Element*) [nsXULPopupManager.cpp:...]
4 xul.dll!nsXULTooltipListener::HideTooltip() [nsXULTooltipListener.cpp:...]
5 xul.dll!nsXULTooltipListener::~nsXULTooltipListener() [nsXULTooltipListener.cpp:...]
6 xul.dll!nsXULTooltipListener::Release() [nsXULTooltipListener.cpp:...]
7 xul.dll!mozilla::dom::CallbackObjectHolder<mozilla::dom::EventListener,nsIDOMEventListener>::UnlinkSelf() [CallbackObject.h:...]
8 xul.dll!mozilla::dom::CallbackObjectHolder<mozilla::dom::EventListener,nsIDOMEventListener>::~CallbackObjectHolder() [CallbackObject.h:...]
9 xul.dll!mozilla::EventListenerManager::Listener::~Listener() [EventListenerManager.h:...]
...
15 xul.dll!mozilla::EventListenerManager::ListenerArray::Release() [EventListenerManager.h:...]
...
24 xul.dll!mozilla::EventListenerManager::EventListenerMap::Clear() [EventListenerManager.h:...]
25 xul.dll!mozilla::EventListenerManager::RemoveAllListenersSilently() [EventListenerManager.cpp:...]
26 xul.dll!mozilla::EventListenerManager::Disconnect() [EventListenerManager.cpp:...]
27 xul.dll!mozilla::EventListenerManager::cycleCollection::Unlink(void*) [EventListenerManager.cpp:...]
| Assignee | ||
Updated•1 year ago
|
Comment 13•1 year ago
|
||
Comment 14•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/e0f8ad3a2d97
https://hg.mozilla.org/mozilla-central/rev/6e2ddca9ae51
Updated•1 year ago
|
Description
•