Bug 1928661 - Make sure showing-fxa-menu-message attribute is set before ViewShowing fires for AppMenu or FxA avatar menu panels. a=dmeehan

The async constructFxAMessage message was often not resolving before the ViewShowing
event fired, meaning that the attribute wasn't set in time.

Original Revision: https://phabricator.services.mozilla.com/D227668

Differential Revision: https://phabricator.services.mozilla.com/D227829
This commit is contained in:
Mike Conley 2024-11-04 18:02:14 +00:00
parent 28a9cc277e
commit 870a27efcc

View File

@ -69,6 +69,11 @@ export const MenuMessage = {
return;
}
win.PanelUI.mainView.setAttribute(
MenuMessage.SHOWING_FXA_MENU_MESSAGE_ATTR,
message.id
);
let msgElement = await this.constructFxAMessage(
win,
message,
@ -83,11 +88,6 @@ export const MenuMessage = {
msgContainer.appendChild(msgElement);
win.PanelUI.mainView.setAttribute(
MenuMessage.SHOWING_FXA_MENU_MESSAGE_ATTR,
message.id
);
if (force) {
win.PanelUI.show();
}
@ -125,12 +125,17 @@ export const MenuMessage = {
return;
}
let fxaPanelView = lazy.PanelMultiView.getViewNode(document, "PanelUI-fxa");
fxaPanelView.setAttribute(
MenuMessage.SHOWING_FXA_MENU_MESSAGE_ATTR,
message.id
);
let msgElement = await this.constructFxAMessage(
win,
message,
MenuMessage.SOURCES.PXI_MENU
);
let fxaPanelView = lazy.PanelMultiView.getViewNode(document, "PanelUI-fxa");
msgElement.addEventListener("FxAMenuMessage:Close", () => {
fxaPanelView.removeAttribute(MenuMessage.SHOWING_FXA_MENU_MESSAGE_ATTR);
@ -138,11 +143,6 @@ export const MenuMessage = {
msgContainer.appendChild(msgElement);
fxaPanelView.setAttribute(
MenuMessage.SHOWING_FXA_MENU_MESSAGE_ATTR,
message.id
);
if (force) {
await win.gSync.toggleAccountPanel(
document.getElementById("fxa-toolbar-menu-button"),