Privacy and anti-fingerprinting
Anti-Fingerprint Chromium Browser
A hardened Chromium browser we built for a private client. Canvas, WebGL, audio and font signals are controlled in the engine, so they stay consistent with each other.
- Chromium
- C++
- Canvas
- WebGL
- Audio context
- Fonts
- Built on
- Chromium
- Our part
- We changed the Chromium code that produces four fingerprinting signals and built the hardened browser.
The client and the problem
The client wanted a browser that limits what device-fingerprinting scripts can learn about the computer it runs on, without the browser itself looking unusual to the sites people visit.
What we built
We changed the Chromium code behind four signals that sites use to recognize a device: canvas rendering, WebGL, the audio context and the list of installed fonts. Because the changes live in the engine, the values hold steady for a whole session and agree with each other, so the browser does not look tampered with.
- Controlled canvas and WebGL output, changed in Chromium’s rendering code
- Controlled audio-context output and a controlled list of detectable fonts
- A standalone hardened Chromium build
Why it was hard
Fingerprint protection is easy to get wrong. Values randomized without care contradict each other, and a profile that contradicts itself stands out more than an ordinary one. Detection scripts cross-check canvas, WebGL, audio and font results, so the changes had to be tested against those scripts as a set, not one signal at a time.
How it works
Illustration: the browser signals a site can read, and where the hardening sits.
How it fits together
Where the fingerprint controls sit
The browser
The client’s product: a hardened Chromium build with no separate branding, so it looks and behaves like an ordinary browser.
Canvas and WebGL control
Rendering output for canvas and WebGL is controlled where it is produced, so repeated reads return the same result.
Audio-context and font control
The same approach applied to audio-context fingerprinting and to the list of fonts a page can detect.
Chromium
The engine that generates these signals, changed in its C++ code.
Build and release
Compiled and packaged as a standalone hardened browser.
- Client's product
- Our engineering
- Upstream: third-party code we build on
- Platforms and release
Related services
Facing a similar engineering problem?
Tell us what you are building. A browser engineer will walk you through how we would approach it, what is hard about it and what it takes to keep it current after launch.
More case studies: Privacy and anti-fingerprinting

Max Browser
A no-logs Chromium browser for DataBench in Australia. We built its privacy core, its anti-censorship features and its blocking of big-tech tracking and data brokers.
- Privacy
- Anti-censorship
- Tracker blocking
Epic Privacy Browser
Chromium development for Hidden Reflex, the company that makes Epic Privacy Browser. Hidden Reflex hired us twice through Upwork.
- Privacy browser
- Chromium
- C++
