diff --git a/src/browser/extension-relay.ts b/src/browser/extension-relay.ts index defacc88955..c6a0a47398b 100644 --- a/src/browser/extension-relay.ts +++ b/src/browser/extension-relay.ts @@ -147,8 +147,6 @@ function rejectUpgrade(socket: Duplex, status: number, bodyText: string) { const serversByPort = new Map(); const relayAuthByPort = new Map(); -// Track original requested port -> relay when fallback occurs (EADDRINUSE) -const relayByOriginalPort = new Map(); function relayAuthTokenForUrl(url: string): string | null { try { @@ -187,7 +185,7 @@ export async function ensureChromeExtensionRelayServer(opts: { throw new Error(`extension relay requires loopback cdpUrl host (got ${info.host})`); } - const existing = serversByPort.get(info.port) ?? relayByOriginalPort.get(info.port); + const existing = serversByPort.get(info.port); if (existing) { return existing; } @@ -754,8 +752,6 @@ export async function ensureChromeExtensionRelayServer(opts: { stop: async () => { serversByPort.delete(port); relayAuthByPort.delete(port); - // Also clean up original port mapping if this was a fallback - relayByOriginalPort.delete(info.port); try { extensionWs?.close(1001, "server stopping"); } catch { @@ -778,21 +774,16 @@ export async function ensureChromeExtensionRelayServer(opts: { relayAuthByPort.set(port, relayAuthToken); serversByPort.set(port, relay); - // If we fell back to a different port, also map the original requested port - if (port !== info.port) { - relayByOriginalPort.set(info.port, relay); - } return relay; } export async function stopChromeExtensionRelayServer(opts: { cdpUrl: string }): Promise { const info = parseBaseUrl(opts.cdpUrl); - const existing = serversByPort.get(info.port) ?? relayByOriginalPort.get(info.port); + const existing = serversByPort.get(info.port); if (!existing) { return false; } await existing.stop(); - // Note: stop() cleans up both serversByPort and relayByOriginalPort - relayAuthByPort.delete(existing.port); + relayAuthByPort.delete(info.port); return true; }