# An anti-detect browser with its own Chromium engine

> Mosaic is an anti-detect browser with its own Chromium engine, Tesseract Chrome: stock source plus 64 patches that change fingerprint values in C++.

Source: https://mosaicbrowser.com/features/engine

## An anti-detect browser with its own Chromium engine

Mosaic is an anti-detect browser with its own Chromium engine, Tesseract Chrome: stock source plus 64 patches that change fingerprint values in C++.

Mosaic is a desktop app

Email yourself the link and open it on your computer.

Mosaic is an anti-detect browser with its own Chromium engine, Tesseract Chrome. It is built from stock Chromium source with a series of 64 patches applied, and the patches change fingerprint values inside the engine, in C++. A page, an iframe, a dedicated worker and a service worker all ask the same code and get the same answer. Nothing is spoofed with JavaScript injected into the page.

"Its own engine" alone does not tell you much. What matters is which values the patches move, what the base is, and whether the result still behaves like the Chrome it claims to be. This page is those three things.

## What the patches change in an anti-detect browser with its own Chromium engine

Each value a site reads to recognise a machine has a patch in the file that produces it: canvas readback, WebGL and WebGPU strings, audio output, the screen geometry, the timezone, client hints, the font list, the speech voice list, media device counts. The values come from the profile, which Mosaic draws from one real device record so they agree with each other ([machines that exist](https://mosaicbrowser.com/features/real-fingerprints) has how). The timezone, language and location come from the proxy's measured exit, as [matched to the exit](https://mosaicbrowser.com/features/exit-matching) describes.

We do not spoof anything in JavaScript on our own engine, even as a backup. Two spoofs of one value compose into something neither side predicted, and a consistency scanner is looking for exactly that: two answers that disagree.

![Mosaic settings showing the installed Tesseract Chrome engine and its version](https://mosaicbrowser.com/shots/engine.png)
*Settings › Engine: the installed Tesseract Chrome build and its version.*

Mosaic is a desktop app

Email yourself the link and open it on your computer.

[How it works: Its own Chromium](https://mosaicbrowser.com/features/engine)

## Stock Chromium, not ungoogled

The base is stock Chromium, not ungoogled-chromium or another privacy fork. A privacy fork removes things Chrome has, and a browser that claims Chrome while missing them reads as masked whatever you configure on top. The TLS handshake is left exactly as Chromium makes it, because the browser really is Chromium and there is nothing to imitate.

## Where plain Chromium is not Chrome

An unbranded Chromium differs from Google Chrome in ways a page can read, and every profile claims Chrome. So the engine closes the differences we have measured:

- Field trials. An unbranded build runs a testing config at every launch, which on our measurement against Chrome 153 meant twenty differences in the API surface, such as no `navigator.runAdAuction` and an extra `window.ModelContext`. Mosaic launches with that config off.
- Speech voices. Branded Chrome lists 199 voices and an unbranded build lists 180. Patch `0145-branded-tts-voices` restores the 19 missing Google voices.
- Widevine. Without Google's signatures, the first licence request carries a per-install device certificate (1,704 bytes, where Chrome sends 2), which would tie every profile on the machine together. So Widevine is off unless a profile asks for it.

[Why we built our own Chromium](https://mosaicbrowser.com/blog/why-we-built-our-own-chromium) tells the story of each of those measurements, including the one we should have run first.

The engine also refuses to claim a brand it cannot spell correctly. Edge is refused, because one switch feeds both the client-hint version lists and the User-Agent suffix, and Edge needs them in two different shapes. Profiles claim Chrome.

## A few things around the engine

With a proxy attached, the engine runs with WebRTC's non-proxied UDP turned off, so WebRTC cannot send traffic around the proxy and expose your real address. On a Mac, every launch runs under a Mosaic launcher bundle, never the raw engine binary, which would put a tile named "Tesseract" with the stock Chromium icon in the Dock. And the engine tracks the current stable Chrome major. Moving it to a new major took 93 minutes on our build machine in September 2026, and changing one patch and relinking takes one to two minutes, which keeps a fix close to the finding that prompted it.

## Getting it

You do not compile it. Settings › Engine installs a published build from its manifest: the download is checked against a SHA-256 before anything is unpacked, then moved into place in one step. The engine download is on every plan, so a free account downloads the browser too. The only engine build so far is for Macs with Apple silicon; there is no Windows engine yet.

None of this makes a browser undetectable, and we do not say it does. It removes the class of mistakes where a browser contradicts itself. The [download page](https://mosaicbrowser.com/download) says what is available for your computer.

## Questions

### Is Tesseract Chrome a fork of Chromium?

No. It is stock Chromium source with a patch series applied on top, rebased when Chrome moves to a new stable major. The base is not ungoogled-chromium or another privacy fork.

### Does Mosaic inject JavaScript to spoof the fingerprint?

No. On its own engine Mosaic changes fingerprint values in C++, so a page, an iframe and a worker all read the same answer. Nothing is spoofed with a script in the page.

### Do I have to compile the engine myself?

No. Settings › Engine installs a prebuilt engine and checks its SHA-256 before unpacking it. A free account can download it.

## The smaller things it does

### The voice list

Branded Chrome lists 19 Google network voices that any unbranded build lacks: 199 against 180. One call reads the whole list, so Tesseract Chrome restores them.

### Field trials

An unbranded build runs test trials no Google Chrome has. Measured against Chrome, that was 20 API entries a page could see. Mosaic launches with them off.

### Widevine off by default

Without Google’s signatures, the first DRM licence request carries a certificate that is the same for every profile on the computer. So the DRM module stays off unless you turn it on.

### Chrome, never Edge

The engine cannot spell Edge’s client hints and its user agent correctly at the same time, so profiles claim Chrome only.

Chromium only. There is no Firefox engine.

## Works with

### Every profile is drawn from one real computer, not from separate lists

GPU, screen, CPU and fonts from one real device.

### Test a profile the way a site would, before a site does

A leak test and 49 public detectors, read for you.

### Timezone, language and location come from where the proxy comes out

Timezone, language and location follow the proxy.

[All 29 features](https://mosaicbrowser.com/features)

## Its own Chromium is in every plan

Free holds 3 profiles and 10 profile creations, with the same engine as Pro. Pro is $49 a month for any number.

Mosaic is a desktop app

Email yourself the link and open it on your computer.
