Me gustaría desarrollar una extensión de Thunderbird que escanee la lista de destinatarios y se abra bajo ciertas condiciones como una ventana emergente.
Desafortunadamente, la API de la libreta de direcciones es en su mayoría asíncrona, por lo que resolver la lista de destinatarios también es un código asíncrono.
Después de llamar a esta API asíncrona, mi controlador lamentablemente pierde el atributo del controlador de entrada y ya no puedo llamar a composeAction.openPopup :
Error: composeAction.openPopup may only be called from a user input handler ¿Hay alguna solución? Al observar otras extensiones, todas usan browser.windows.create , que parece ser un controlador de entrada externo invocable...
Aquí las partes relevantes de mi código:
browser.compose.onBeforeSend.addListener(async (tab, details) => { const canBeSent = await checkMail(); if (canBeSent) { return Promise.resolve(); } browser.composeAction.openPopup(); // does not work because of async // further code }