Chrome 149
Loading https://fingerprint.com/ kills the renderer process. Playwright's crash event fires and
the tab is unrecoverable. The same page in stock Chrome on the same machine, same network, is fine.
https://creepjs.org/checker crashes the same way, reportedly after it finishes collecting.
The crash is not in the fingerprint layer: it reproduces with no fingerprint option passed at
all, on a bare launchPersistentContext, with no proxy and no capture.
Reproduction
import { launchPersistentContext } from "clearcote";
const context = await launchPersistentContext("./probe", { headless: false });
const page = context.pages()[0] ?? (await context.newPage());
page.on("crash", () => console.log("RENDERER CRASHED"));
await page.goto("https://fingerprint.com/", { waitUntil: "domcontentloaded" });
await new Promise((r) => setTimeout(r, 20000));
await page.evaluate("1+1"); // throws: Target crashed
Reproduces every attempt. creepjs.org/checker needs a longer wait — roughly 35 s — because it
crashes late rather than on load.
Chrome 149
Loading
https://fingerprint.com/kills the renderer process. Playwright'scrashevent fires andthe tab is unrecoverable. The same page in stock Chrome on the same machine, same network, is fine.
https://creepjs.org/checkercrashes the same way, reportedly after it finishes collecting.The crash is not in the fingerprint layer: it reproduces with no
fingerprintoption passed atall, on a bare
launchPersistentContext, with no proxy and no capture.Reproduction
Reproduces every attempt.
creepjs.org/checkerneeds a longer wait — roughly 35 s — because itcrashes late rather than on load.