From dd791941791944dc22b1d156d8dfbd85bc10ec67 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 12 Aug 2026 20:56:16 +0800 Subject: [PATCH] fix: add PageRegistry.clear() and getAll(), fix BrowserManager.cleanup() to clear registry --- packages/daemon/src/browser-manager.ts | 4 ++-- packages/daemon/src/page-registry.ts | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/daemon/src/browser-manager.ts b/packages/daemon/src/browser-manager.ts index 0d26113..ab51ab2 100644 --- a/packages/daemon/src/browser-manager.ts +++ b/packages/daemon/src/browser-manager.ts @@ -90,10 +90,10 @@ export class BrowserManager { async cleanup(): Promise { // Close all contexts / 关闭所有上下文 - const entries = this.registry['pages']?.values() ?? []; - for (const entry of entries) { + for (const entry of this.registry.getAll()) { try { await entry.context.close(); } catch { /* ignore / 忽略 */ } } + this.registry.clear(); if (this.browser) { await this.browser.close(); this.browser = null; diff --git a/packages/daemon/src/page-registry.ts b/packages/daemon/src/page-registry.ts index 8626d78..749027c 100644 --- a/packages/daemon/src/page-registry.ts +++ b/packages/daemon/src/page-registry.ts @@ -45,4 +45,15 @@ export class PageRegistry { hasAlias(alias: string): boolean { return this.aliasMap.has(alias); } + + /** Return all registered entries for iteration / 返回所有已注册条目用于遍历 */ + getAll(): RegisteredPage[] { + return Array.from(this.pages.values()); + } + + /** Clear all entries / 清除所有条目 */ + clear(): void { + this.pages.clear(); + this.aliasMap.clear(); + } }