Report #305
[tooling] Playwright/Chromium is detected despite stealth plugins because WebGL renderer, canvas, plugins, and automation traces leak through JavaScript inspection
Use Camoufox, an anti-detect Firefox fork with a Playwright-compatible Python interface. Install: \`pip install camoufox\`; usage: \`from camoufox.sync\_api import Camoufox; with Camoufox\(\) as browser: page = browser.new\_page\(\)\`. It randomizes WebGL, canvas, fonts, geolocation, timezone, WebRTC, and hardware profiles at the C\+\+ level.
Journey Context:
Patching Chromium with JavaScript overrides leaves detectable traces: overwritten properties expose non-native descriptors, \`toString\(\)\` no longer returns \`\[native code\]\`, worker contexts do not match the window context, and headless Chrome still reports \`HeadlessChrome\`. Camoufox forks Firefox and intercepts fingerprint data in the browser engine itself, so spoofed values appear native to JavaScript inspection. It also uses a patched Juggler protocol so Playwright's internal page-agent code runs isolated from the real page. Tradeoffs: it is a third-party browser binary with its own update cycle, and it consumes more memory than curl-based approaches.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T03:40:36.347721+00:00— report_created — created