Skip to main content

Experimental components

A small set of components are still under evaluation and are not included in the thumbmark hash by default. They only run when you opt in:

const t = new Thumbmark({ experimental: true });
const { experimental } = await t.get();

When enabled, the resolved values appear on ThumbmarkResponse.experimental rather than components. The set is currently:

intl

Captures the output of the Intl APIs against a fixed reference date, including:

  • Date formatting (full, medium, long styles, both Latin and non-Latin locales)
  • Number, currency and percentage formatting
  • Intl.ListFormat and Intl.DisplayNames output where supported

The collected outputs are reduced to a single hash. Differences in ICU data and locale support across browsers and OS versions make this a useful signal.

mathml

Renders a series of MathML structures (integrals, fractions, matrices, multi-script symbols using blackboard-bold and Greek glyphs) inside an ephemeral iframe and measures their bounding boxes plus the resolved font style. Both the per-structure dimensions and the font-style hash are captured.

This is sensitive to the OS-installed math fonts and the browser's MathML implementation, which together vary considerably across platforms.

mediadevices

Calls navigator.mediaDevices.enumerateDevices() and counts how many devices of each kind are present:

"mediadevices": {
"audioinput": 2,
"audiooutput": 2,
"videoinput": 1
}

Note that without permission grants, only the counts (not device labels or IDs) are exposed by the browser.

Code

See the experimental components in the source tree (intl, mathml, mediaDevices).