Skip to content
All fingerprint checks
Render & GPU

the same surfaces sampled twice in one page return the same answers

Pim· Clearcote Research 2 min readCheck id answer-stability-across-passes

Every sampled surface returns an identical answer on both passes. Brave's stock farbling makes several of them move and is declined rather than scored.

What a detector infers

This is the two repeat-render rows generalised across every surface at once, and the argument for it comes from how detector scores actually behave rather than from any single probe. In a published teardown of a deployed commercial agent, identical captured payloads resubmitted a week apart came back with materially different tampering and anti-detect verdicts — model drift, accumulated replay history, or both, not separated by the researchers.

The lesson survives past that one vendor: an absolute score from a live detector is not a measurement, and the only comparison that carries information is a difference against a control taken in the same session. That discipline has to apply to this page too, because this page publishes a number.

A browser whose surfaces move between two samples taken seconds apart does not have a fingerprint — it has a distribution, and every other row in the report is a single draw from it, including the score at the top. Only surfaces that are functions of the BUILD are sampled: canvas, WebGL readback, text metrics, element geometry, the parameter table and the hardware scalars.

Everything that reads a clock or a counter is deliberately excluded, because those are supposed to move, and a stability check that flagged them would be measuring the wrong thing.

How to resolve it

Seed per-surface noise once per session rather than per call. Past the tell itself, instability undermines your own testing: interpreting any detector's score requires a control measured in the same session, and that comparison is only valid if the browser answers the same question the same way twice.

How automation gets caught, layer by layer

Nearby checks in Render & GPU

See all 46 checks in Render & GPU
Who builds this test

Clearcote is a browser built for fingerprint coherence

It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.

This audit takes no position on how Clearcote scores on Render & GPU checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.

See the other checks in Render & GPU — the family answer-stability-across-passes belongs to.