Files
geo/apps/desktop-client/src/main/playwright-cdp-targets.ts
T

27 lines
806 B
TypeScript
Raw Normal View History

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))
}