diff --git a/apps/extension/src/background/approvals/init.ts b/apps/extension/src/background/approvals/init.ts index 7c32746a2..f9065dca4 100644 --- a/apps/extension/src/background/approvals/init.ts +++ b/apps/extension/src/background/approvals/init.ts @@ -34,8 +34,8 @@ export function init(router: Router, service: ApprovalsService): void { router.registerMessage(SubmitApprovedSignLedgerTxMsg); router.registerMessage(IsConnectionApprovedMsg); router.registerMessage(ApproveConnectInterfaceMsg); - router.registerMessage(ApproveDisconnectInterfaceMsg); router.registerMessage(ConnectInterfaceResponseMsg); + router.registerMessage(ApproveDisconnectInterfaceMsg); router.registerMessage(DisconnectInterfaceResponseMsg); router.registerMessage(RevokeConnectionMsg); router.registerMessage(QueryTxDetailsMsg); diff --git a/apps/extension/src/background/approvals/service.test.ts b/apps/extension/src/background/approvals/service.test.ts index fb40739f0..52247a1bf 100644 --- a/apps/extension/src/background/approvals/service.test.ts +++ b/apps/extension/src/background/approvals/service.test.ts @@ -278,7 +278,7 @@ describe("approvals service", () => { ); service["resolverMap"][tabId]?.resolve(true); - expect((service as any).launchApprovalPopup).toHaveBeenCalledWith( + expect(service["launchApprovalPopup"]).toHaveBeenCalledWith( "/approve-connection", { interfaceOrigin } ); diff --git a/apps/extension/src/background/approvals/service.ts b/apps/extension/src/background/approvals/service.ts index 9c77337ab..ca167473d 100644 --- a/apps/extension/src/background/approvals/service.ts +++ b/apps/extension/src/background/approvals/service.ts @@ -39,7 +39,11 @@ export class ApprovalsService { protected readonly broadcaster: ExtensionBroadcaster ) { browser.tabs.onRemoved.addListener((tabId) => { - this.removeResolver(tabId); + const resolver = this.getResolver(tabId); + if (resolver) { + resolver.reject(new Error("Window closed")); + this.removeResolver(tabId); + } }); }