From 2a286686d6d7356ec96785afb0afeb23e6a2a41d Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Sun, 16 Nov 2025 14:53:24 +0100 Subject: [PATCH] reset state --- playwriter/src/extension/cdp-relay.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/playwriter/src/extension/cdp-relay.ts b/playwriter/src/extension/cdp-relay.ts index c47ba18..36bdd4a 100644 --- a/playwriter/src/extension/cdp-relay.ts +++ b/playwriter/src/extension/cdp-relay.ts @@ -340,8 +340,30 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127. return } + logger.log('Extension connecting, resetting server state') + + // Clear stale targets from previous connections + const staleTargetCount = connectedTargets.size + if (staleTargetCount > 0) { + logger.log(`Clearing ${staleTargetCount} stale targets from previous connection`) + connectedTargets.clear() + } + + // Reject any pending requests from previous connection + const pendingRequestCount = extensionPendingRequests.size + if (pendingRequestCount > 0) { + logger.log(`Rejecting ${pendingRequestCount} pending requests from previous connection`) + for (const pending of extensionPendingRequests.values()) { + pending.reject(new Error('Extension reconnected, request cancelled')) + } + extensionPendingRequests.clear() + } + + // Reset message ID counter + extensionMessageId = 0 + extensionWs = ws - logger.log('Extension connected') + logger.log('Extension connected with clean state') }, async onMessage(event, ws) {