TorZillaPrint |
| return to Browser Fingerprinting index |
|
[ re-run ]
  top level | |
| prototype lies 2 | |
| proxy lies 2 | |
| untrustworthy | known lies | |
| methods | |
| errors | |
| fingerprints should always be considered loose 1, prototype/proxy lies code provided by CreepJS 2 | |
|
[ re-run ]
| |
|
[ i ]range 500-2560
  [css min-device-] screen resolution 1 | |
| [matchMedia] screen resolution 2 | |
| screen resolution ● | |
| available resolution ● | |
| outer window ● | |
| inner window ● | |
[ i ]
range 450-2560
  [css min-] inner window 1, 3 | |
| [matchMedia] inner window 2 | |
| viewport 4 | |
| [viewport | element] scrollbars | |
|
[ i ]
left
  [screen] positionstop availLeft availTop | |
|
[ i ]
screenX
  [window] positionsscreenY mozInnerScreenX mozInnerScreenY | |
| [css | matchMedia] display-mode | | |
| full screen | |
[ i ]
full-screen-api.enabled
  [api] full screen | |
| [ click here ]
[ i ]
DON'T PANIC as you briefly
  [test] full screen 4enter and then exit full screen | |
| [ click here ]
[ i ]
will attempt to open a new
  new windowwindow as big as possible and grab the dimensions | |
| [android] new window | |
|
[ i ]
FF83+
  private windowdom.indexedDB.privateBrowsing.enabled | |
| [screen] orientation | mozOrientation | angle | |
| [css] -moz- | orientation | aspect-ratio | device-aspect-ratio | | | | |
| [matchMedia] -moz- | orientation | aspect-ratio | device-aspect-ratio | |
| [screen] pixel depth | color depth | | |
| [css | matchMedia] color | | |
| dpi | |
[ i ]range 40-400
  [css min-resolution] dpi | |
| [matchMedia max-resolution] dpi | dppx | dpcm | |
[ i ]dom.visualviewport.enabled
  [visual viewport] scale | |
| devicePixelRatio | |
| [matchMedia -webkit- | -moz-] device-pixel-ratio | | |
| --- android --- | |
| keyboard height | |
| toolbar height | |
| code based on work by Arthur Edelstein 1 , kkapsner & CanvasBlocker 2 , Matt Traudt 3 and earthlng 4 | |
|
[ re-run ]
| ||
| hash | ||
| userAgent | ||
| appCodeName | ||
| appName | ||
| product | ||
| appVersion | ||
| oscpu | ||
| platform | ||
| buildID | ||
| productSub | ||
| vendor | ||
| vendorSub | ||
| absolute BS detected ▶ | ||
| --- other methods --- | ||
| [ show ] iframes 1 | ||
| [contentWindow] document root | ||
| [contentWindow] with URL | ||
| [window] document root | ||
| [window] with URL | ||
| iframe access | ||
| nested | ||
| window access | ||
| [ show ] workers | ||
| web worker | ||
| shared worker | ||
| service worker | ||
| nested worker | ||
| worker from blob | ||
| [ click here ] window.open | ||
| iframe code based on work by kkapsner & CreepJS 1 | ||
These tests, tailored for Firefox, are to show that you cannot hide your browser,
version or OS. Some OS "guesses" don't have to be "correct"; the measurements provide
the real entropy, such as math hashes, branding dimensions, and pixel values.
| |
|
[ re-run ]
| |
| [css] branding | |
| [css] browser | |
[ i ]
Firefox 89+   [platform] architecturejavascript.options.large_arraybuffers | |
| [PoC]
  [ i ] Firefox 60+ only
  [feature detection] version | |
| [resource://] browser | |
[ i ]
Firefox 74+ : javascript.options.   [error messages] browserproperty_error_message_fix | |
| [canonical locales] browser | |
| [PoC]   [supported locales] browser | |
| [math] browser | |
| [PoC]   [math] os | |
| [chrome://] os | |
| [css] os 1 | LinuxMacWindowsAndroid |
| [widgets] os | |
| code based on work by Arthur Edelstein 1 | |
|
[ re-run ]
| |
| language & locale | |
| timezone | |
| date/time & format | |
| geolocation | |
| ▼ show details | |
| language & locale | |
| languages | language | languages[0] | |
[ i ]
Collator   resolvedOptionsDateTimeFormat DisplayNames ListFormat NumberFormat PluralRules RelativeTimeFormat Segmenter | |
| [PoC]   collation | |
| timezone | |
| timezoneOffset | getTime | Date.parse | |
| [PoC]   [timezone offsets] Date.parse | |
| [resolvedOptions] timezone | |
| spare | |
| date/time & format | |
| timeZoneNames | |
| date/time | |
| toString | |
| [long] toLocaleString | |
| [long] toLocaleDateString | |
| [long] toLocaleTimeString | |
| [long] Intl.DateTimeFormat | |
| [formatToParts] Intl.DateTimeFormat | |
| toGMTString | |
| toUTCString | |
| toLocaleString | |
| [Typed Array] toLocaleString | |
| toLocaleDateString | |
| Intl.DateTimeFormat | |
| [relatedYear | yearName] Intl.DateTimeFormat | |
| [dateStyle | timeStyle] Intl.DateTimeFormat | |
| toLocaleTimeString | |
| toTimeString | |
| [resolvedOptions] hourCycle | |
| Intl.ListFormat | |
| [PoC]   [dayPeriod] Intl.DateTimeFormat | |
| [formatRange] Intl.DateTimeFormat | |
| [PoC]   [cardinal] Intl.PluralRules | |
| [ordinal] Intl.PluralRules | |
| Intl.RelativeTimeFormat | |
| [formatToParts] Intl.RelativeTimeFormat | |
| Intl.NumberFormat | |
| [formatToParts] Intl.NumberFormat | |
| [BigInt] Intl.NumberFormat | |
| [BigInt] toLocaleString | |
| [currency] toLocaleString | |
| [Intl.DateTimeFormat] calendar | |
| [DateTime | RelativeTime] numberingSystem | | |
| geolocation | |
[ i ]
geo.enabled   [api | window] geolocation | |
[ i ]
permissions.default.geo   [permission] geolocation | |
|
[ re-run ]
| |
[ i ]
beacon.enabled
  beacon | |
| doNotTrack | |
| globalPrivacyControl | |
[ i ]
dom.netinfo.enabled connection | |
| onLine | |
|
[ re-run ]
| |
[ i ]
dom.gamepad.enabled
  gamepads | |
[ i ]
dom.maxHardwareConcurrency
  hardwareConcurrency | |
| keyboard | |
| [api] pointer event | |
| [ mouse/tap here ]
[ i ]
height   [data] pointer event 1isPrimary mozInputSource pointerType pressure tangentialPressure tiltX tiltY twist width | |
| [css | matchMedia] any-hover | hover | | | |
| [css | matchMedia] any-pointer | pointer | | | |
[ i ]
media.webspeech.recognition.enable
  speech recognition | |
[ i ]
ontouchstart   [events] touchontouchend TouchEvent | |
| [maxTouchPoints] touch | |
[ i ]
dom.vr.enabled
  virtual reality | |
| --- enumeration --- | |
[ i ]pdfjs.disabled
  pdfViewerEnabled | |
| plugins | |
| mimeTypes | |
[ i ]
media.navigator.enabled
  media devices | |
[ i ]
media.webspeech.synth.enabled
  speech engines | |
| pointer code based on work by Patrick Lauke 1 | |
|
[ re-run ]
| |
| Element.getBoundingClientRect | |
| Element.getClientRects | |
| Range.getBoundingClientRect | |
| Range.getClientRects | |
| click here to view what is being rendered | |
| domrect code based on work by kkapsner & CanvasBlocker | |
| Additonal canvas tests [iframes, workers, offscreen] can be found at CanvasBlocker | |
|
[ re-run ]
| |
| toDataURL | |
| toBlob | |
| getImageData | |
| isPointInPath | |
| isPointInStroke | |
| canvas code based on work by kkapsner & CanvasBlocker | |
| test | result |
|
[ re-run ]
| |
|
[ i ]dom.webaudio.enabled
  [api] web audio | |
| getChannelData 1 | |
| copyFromChannel 1 | |
| sum 1 | |
| ------ | |
| [ click here ] hash | |
| audioContext 2 | |
| OscillatorNode 2 | |
| OscillatorNode/DynamicsCompressor 2 | |
| audio code based on work by kkapsner & CanvasBlocker 1 and openWPM 2 | |
The font enumeration tests are Firefox only and OS
based to get metrics on stable fonts per OS. The font fallback test is a slower method that
may produce different results. Additional font enumeration tests can be found at CreepJS
| |
|
[ re-run ]
| |
| default proportional font | |
| default font sizes | |
[ i ]
layout.css.font-loading-api.enabled
  css font loading api | |
[ i ]
browser.display.use_document_fonts
  document fonts | |
[ i ]
Firefox 68 or lower
  woff2 1gfx.downloadable_fonts.woff2.enabled | |
| --- fonts --- | |
| [PoC] [ show ] fonts 2, 3 | |
| offset 2 | |
| client 3 | |
| scroll 3 | |
| pixel 3 | |
| size 3 | |
| perspective 3 | |
| transform 3 | |
| [ click here ] font fallback 4 | |
| --- glyphs --- | |
| offset 5 | |
| getBoundingClientRect 5 | |
| getClientRects 5 | |
| --- textmetrics --- | |
| width | |
| actualBoundingBoxAscent | |
| actualBoundingBoxDescent | |
| actualBoundingBoxLeft | |
| actualBoundingBoxRight | |
| alphabeticBaseline | |
| emHeightAscent | |
| emHeightDescent | |
| fontBoundingBoxAscent | |
| fontBoundingBoxDescent | |
| hangingBaseline | |
| ideographicBaseline | |
| ▼ show glyphs | |
| [offset] unicode glyphs | [ copy to clipboard ] |
| code based on work by Filament Group 1 , fingerprintjs2 2 , CreepJS 3 , Arthur Edelstein 4 and David Fifield & Serge Egelman 5 | |
|
[ re-run ]
| ||
| [-moz-] colors | ||
| [stand-in] [-moz-] colors | ||
| [css4] colors | ||
| [system] colors | ||
| [system] fonts | ||
| computed styles 1 | ||
| HTMLElement.style 1 | ||
| CSSRuleList.style 1 | ||
[ i ]ui.prefersReducedMotion
  prefers-reduced-motion |
| | |
[ i ]ui.systemUsesDarkTheme
  prefers-color-scheme |
| | |
| prefers-contrast | | | |
| forced-colors | | | |
| code provided by CreepJS 1 | ||
|
[ re-run ]
| ||
| HTMLElement keys 1 | ||
| lineheight | ||
[ i ]
mathml.disabled
  mathml | ||
| code provided by CreepJS 1 | ||
| test | result |
| test | result |
|
[ re-run ]
| |
| [getEntries* | measure] performance.mark | |
| performance.now | |
| [loadEventEnd] performance.timing | |
| PerformanceNavigationTiming | |
[ i ]
dom.reporting.enabled
  [api] reporting | |
| stack depth | length | |
[ i ]
svg.disabled
  svg | |
[ i ]
javascript.options.wasm
  webassembly | |
| window.content | |
| ------ | |
[ i ]
dom.use_components_shim
  component interfaces | |
| iframe.contentWindow properties 1 | |
| navigator keys | |
| code provided by CreepJS 1 | |
| ▼ show perf & debugging | |
|---|---|
| [details] global perf | |
| [details] click perf | |
| tor browser detection points | |
| alerts | |
| debug | |
| debug | |