Sari la conținut

Această pagină nu este încă în limba dumneavoastră. Citiți textul în engleză.

Glossary

Blink

Layout, the document tree and almost every reading a fingerprint is built from come out of one engine. Where an answer is produced decides whether a site reads a value or catches it being replaced.

Blink is the rendering engine inside Chromium, and it answers nearly everything a site asks about your machine.

What the rendering engine is for

Blink turns markup and style into a page and runs the browser half of the web platform. It was forked from the engine behind Safari and now ships in every Chromium build.

Almost every name a fingerprinting script touches is a getter in it. Fonts, screen, graphics strings, canvas pixels and the sound buffer all come from here.

  • Layout and paint

    The document tree, the style rules and the pixels a page finally shows.

  • The platform surface

    The navigator, screen, canvas, WebGL, WebGPU and audio interfaces a page calls.

  • The device story

    Cores, memory, touch points, language and zone are read through it rather than around it.

What the engine answers about you

These names are read in the browser you are reading this in. Inside a profile the same names answer from its seed instead of from your own machine.

Dispozitivul dumneavoastră, chiar acum

Platform
se măsoară pe dispozitivul dumneavoastră
Cores
se măsoară pe dispozitivul dumneavoastră
Device memory
se măsoară pe dispozitivul dumneavoastră
Automation flag
se măsoară pe dispozitivul dumneavoastră

Citit în browserul dumneavoastră și afișat aici. Nu se trimite nimic nicăieri.

Where our patches land in the tree

Our build patches 39 files of the Chromium tree and adds 10 of its own. All but a handful of them sit under this engine.

The rest are the two layers above it. One declares the switch that carries the profile seed, the other builds the browser string.

  • Canvas and audio

    The drawing context, the picture writer and the sound buffer answer with a stable perturbation.

  • Fonts and screen

    The font store and the screen object answer from the profile rather than from the host.

  • navigator and client hints

    Platform, cores, memory, touch points and the hint headers come from one seed.

  • Devices and voices and network

    The device count, the voice list and the connection numbers belong to the profile.

One seed for every renderer

The machine a profile claims is one value handed over at launch. The browser process forwards it to every renderer it starts.

  1. 1

    Handed over once

    A single value on the launch line carries device, screen, fonts, zone and language.

  2. 2

    Forwarded to each renderer

    A tab opened ten minutes later starts with the same value as the first one did.

  3. 3

    Decoded once per process

    The engine reads it when the first getter asks and keeps the answer for that process.

Why a swap inside the page falls short

A defence written in script runs after the page has loaded and lives in one world. A worker or a frame starts a world of its own, and the replacement is simply absent there.

An engine level answer leaves no rewritten function behind. Asking a function about itself proves nothing, because nothing in the page was touched.

Often confused with

  • V8

    The JavaScript engine beside it. That one runs the script, this one answers what the script asks for.

  • Chromium

    The whole browser project. This is the part inside it that lays out pages and exposes the platform.

  • WebKit

    The engine this one was forked from. Safari still renders with it, and the two have drifted apart.

What this does not do

  • It does not decide your address. Where traffic leaves from and what that address has done before are separate problems.
  • A patched engine does not separate accounts by itself. Two accounts opened in one profile share one folder and one seed.
  • It does not make every reading identical to a real machine. What still differs is written down and compared rather than assumed.
  • It does not change how scripts run. Timing, arithmetic and the speed of a page are left exactly as they are.

Check it

Every line above is a file you can open.

What the build applies and in what order
engine/patches/series
The build applies the real patch set and not a placeholder
apps/desktop/test/engine-patches-real.js
Workers and frames answer like the document above them
apps/desktop/test/fingerprint-realms.js
The acceptance run of the build that ships today
engine/приёмка-отчёт.json

Questions

Is Blink the same as Chromium?
No. Chromium is the whole browser project, and this is the part inside it that lays out pages and hands the platform to script.
Is it the same as V8?
No. They sit side by side. One executes the script and the other answers the names that script asks for.
Which browsers render with it?
Almost every desktop browser outside Safari and Firefox. That is why one fingerprinting script covers so many of them at once.
Can a site tell which engine it is running in?
Easily. Feature names, rounding rules and error text differ between engines, and each of those is one line of script.
Why patch the engine instead of the page?
A page level replacement is visible to the page and missing from workers and frames. An answer produced inside the engine is neither.

See what this browser answers

The checker reads 12 values in this tab and sends nothing anywhere.