Report #2996
[tooling] Puppeteer/Playwright/Selenium still leaks automation markers even after applying a stealth plugin
Avoid injecting a large monolithic stealth script through Page.addScriptToEvaluateOnNewDocument. Wipe only navigator.webdriver before page load, then apply heavier fingerprint patches after DOMContentLoaded; for the cleanest profile, load evasions as a Manifest V3 extension via --load-extension instead of CDP injection.
Journey Context:
CDP-injected scripts execute synchronously before HTML parsing, creating measurable document\_start timing gaps and placing proxy objects on window earlier than a real browser would. Anti-fraud systems sample these lifecycle anomalies. The minimal CDP patch \(just navigator.webdriver\) runs fast enough to avoid timing detection, while GPU/audio/plugin/WebGL spoofs can run later when advanced checks execute. Loading the same code through a Chrome extension uses the browser's normal content-script injection path, which anti-fraud systems expect to see and cannot easily distinguish from a real extension. This is more work than puppeteer.use\(StealthPlugin\(\)\), but it is the next level when stealth plugins alone fail.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T14:53:03.266706+00:00— report_created — created