demo · v151
Detection Attack Lab
Runs the classic Incognito-detection attack against your current browser — quota threshold check, RAM-fraction inference, and timing variance. The Chrome 151 fix should make this page report "indistinguishable" in both modes.
For research only. This page implements the public detection patterns that paywalls and adblocker-bypass scripts have used for years. The point isn't to detect you — it's to show that Chrome 151 closes the attack. Open this page in normal mode and Incognito; the verdict should match.
controls
verdict
Awaiting probe…
Click "Run attack" to execute every detection vector below.
per-vector breakdown
code (the attack pattern)
// The classic threshold check. Returned ~120 MB in Incognito
// pre-151; bucketed to 10 GiB+ in normal mode.
const { quota } = await navigator.storage.estimate();
const isIncognito = quota < 1_000_000_000; // < 1 GB
// More sophisticated: compare quota against navigator.deviceMemory.
// If quota ≈ deviceMemory * 1e9 / 20, it's the RAM-derived value.
if (Math.abs(quota * 20 - deviceMemory * 1e9) < 50_000_000) {
// RAM-derived → Incognito
}
see also
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗