screen.pixelDepth and screen.colorDepth disagree (aliases that are always equal on a real display)

br.screen_depth_incoherent  ·  convicts

browserlayer
coherencecategory
1evaders caught

What it catches

screen.pixelDepth and screen.colorDepth are two names for the SAME quantity — the display's bits-per-pixel — and return an identical value on every real browser (both 24 on a typical panel, 30 on a 10-bit/HDR one; MDN notes pixelDepth is kept equal to colorDepth for compatibility). A session where they DISAGREE has a spoof that patched one dimension of the screen object but not its alias — a naive screen-randomiser tell of the same family as br.screen_impossible (avail > total), read from a surface real captchas probe (the teardown delta). FP-SAFE by construction: a genuine browser never mismatches the two; a coherent screen spoof that sets both stays silent (the point). EXPERIMENTAL (w0.5, corroborating): low base-rate (only a clumsy spoof trips it), zero-FP. GROUNDED: the detector's own collector reads both; a real Chromium/Gecko session reports pixelDepth == colorDepth and does NOT fire; a synthetic session with pixelDepth != colorDepth FIRES screen_depth_incoherent.

Signals it reads

browser.screen_depth_incoherent

How it fires

present

Evaders it caught 1

Bypassed by 10

Frontier evaders that reach the detector uncaught (scored only suspicious, defeating every convicting tell) — this check is not one that stops them. The red-team frontier this detection still has to convict.

← all detections