export interface CDPTargetDescriptor { id?: string; type?: string; title?: string; url?: string; } const hiddenPlaywrightTargetMarkers = [ "hidden-playwright", "geo-hidden-playwright-token", ] as const; export function isReclaimableHiddenPlaywrightTarget(target: CDPTargetDescriptor): boolean { if ((target.type ?? "").trim() !== "page") { return false; } if (!(target.id ?? "").trim()) { return false; } const title = target.title ?? ""; const url = target.url ?? ""; const haystack = `${title}\n${url}`.toLowerCase(); // Blank Electron page targets can belong to visible BrowserWindow shells. // Only reclaim targets that we can prove were created by the hidden // Playwright bootstrap flow. return hiddenPlaywrightTargetMarkers.some((marker) => haystack.includes(marker)); }