diff --git a/src/background/index.js b/src/background/index.js index 799bf73..46314e7 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -336,6 +336,18 @@ async function broadcastAccountsChanged() { for (const key of Object.keys(connectedSites)) { delete connectedSites[key]; } + // Reject and close any pending approval popups so they don't hang + for (const [id, approval] of Object.entries(pendingApprovals)) { + approval.resolve({ approved: false, remember: false }); + if (approval.windowId) { + windowsApi.remove(approval.windowId, () => { + if (runtime.lastError) { + // window already closed + } + }); + } + delete pendingApprovals[id]; + } const s = await getState(); const activeAddress = await getActiveAddress(); const allowed = activeAddress ? s.allowedSites[activeAddress] || [] : [];