$ fingerprint@info:~ echo $CHROME-DETECT
In a browser, the chrome is any visible aspect aside from the webpages themselves (e.g., toolbars, menu bars, tabs).
This is not to be confused with the Google Chrome browser.
For more details see e.g. MDN web docs
Chrome providers
A supplier of chrome for a given window type (e.g., for the browser window) is called a chrome provider.
Providers work together to supply a complete set of chrome for a particular window. This ranges from the images
on the toolbar buttons to the files that describe the text, content, and appearance of the window itself.
Chrome registry
The Gecko runtime maintains a service known as the chrome registry which provides mappings from chrome package names to the physical location of chrome packages on disk.
This chrome registry is configurable and persistent, and thus, a user can install different chrome providers, and select a preferred skin and locale. This is accomplished through xpinstall and the extension manager.
For more details see e.g. MDN web docs
Mozilla Firefox locates and reads the root chrome.manifest file for extensions and themes from disk.
A user can access chrome resources via the internal Firefox browser URI scheme chrome://.
The default permissions defined in the chrome.manifest file allow specific paths to be called from any web page.
For example, chrome://browser/content/*
or chrome://global/content/*
.
In consequence of these default permissions, hundreds of chrome resources (e.g., JavaScript, CSS, image files
such as JPG, PNG, or SVG, as well as other file types) can be loaded from web pages without the knowledge or consent of the browser user.
Differences in the presence of certain files can reveal Firefox versions as well as the operating systems used (Windows, Mac, Linux, Android).
This technique works alongside with Firefox's built-in fingerprinting protection activated, in private sessions and in the latest Firefox releases.
From Firefox version 21 (May 2013) each version is uniquely identifiable - including operating system detection.
This technique works for Firefox-based browsers. For demonstration purposes the following browsers/browser versions were added:
(without checking Cliqz exclusive files)
(without checking Cliqz exclusive files)
(without checking Pale Moon exclusive files)
(without checking Waterfox exclusive files)
Unwise counter-measures:
$ fingerprint@info:~ run chrome-detect-demo
Your Firefox version is: Test is running...
Your operating system is: Test is running...
Refresh page.