TorZillaPrint |
return to TZP 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 | |
visualViewport | viewport 4 | | |
[visualViewport | 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 | |
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 | ||
appCodeName | ||
appName | ||
appVersion | ||
buildID | ||
oscpu | ||
platform | ||
product | ||
productSub | ||
userAgent | ||
vendor | ||
vendorSub | ||
--- 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 Gecko , are to show that you cannot hide your
engine [PoC1]
+ [PoC2], version
[PoC], or OS .
| |
[ re-run ]
| |
[css] branding | |
[css] browser | |
[ i ]
Firefox 89+   [platform] architecturejavascript.options.large_arraybuffers | |
version | |
[resource://] browser | |
[chrome://] os | |
[css] os 1 | LinuxMacWindowsAndroid |
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 ]
| |
[screen] pixel depth | color depth | | |
[css | matchMedia] color | | |
[css | matchMedia] color gamut | | |
[ 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 |
test | result |
These tests are only checking for protection, not entropy. Additional canvas tests [iframes, workers, offscreen] can be found at CanvasBlocker | |
[ re-run ]
| |
[PoC]
  [ i ]random per run
  getImageData | |
isPointInPath | |
isPointInStroke | |
toBlob | |
[PoC]   toDataURL | |
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 |
[ 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 | |
--- support --- | |
font-format | |
font-tech | |
[css | test] woff2 1 | | |
--- fonts --- | |
[names] fonts 2, 3 | |
[ show ] [sizes] fonts 2, 3 | |
offset 2 | |
client 3 | |
scroll 3 | |
pixel 3 | |
pixelsize 3 | |
perspective 3 | |
transform 3 | |
[number] pixel 3 | |
[number] pixelsize 3 | |
[number] perspective 3 | |
[number] transform 3 | |
[base sizes] fonts 2, 3 | |
[system] fonts | |
[widget] fonts | |
--- glyphs --- | |
offset 4 | |
clientrect 4 | |
[measureText] width 4 | |
--- textmetrics --- | |
actualBoundingBoxAscent | |
actualBoundingBoxDescent | |
actualBoundingBoxLeft | |
actualBoundingBoxRight | |
alphabeticBaseline | |
emHeightAscent | |
emHeightDescent | |
fontBoundingBoxAscent | |
fontBoundingBoxDescent | |
hangingBaseline | |
ideographicBaseline | |
code based on work by Filament Group 1 , fingerprintjs2 2 , CreepJS 3 and David Fifield & Serge Egelman 4 |
[ re-run ]
| ||
[-moz-] colors | ||
[stand-in] [-moz-] colors | ||
[css4] system colors | ||
[deprecated] system colors | ||
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 | ||
[clientrect] lineheight | ||
[ i ]
mathml.disabled
  [offset] mathml | ||
--- clientrect --- | ||
Element.getBoundingClientRect | ||
Element.getClientRects | ||
Range.getBoundingClientRect | ||
Range.getClientRects | ||
code provided by CreepJS 1, clientrect code based on work by kkapsner & CanvasBlocker |
test | result |
test | result |
[ re-run ]
| |
[ i ]
Firefox 74+ : javascript.options.   errorsproperty_error_message_fix | |
[PoC]   [other] math | |
[trigonometric] math | |
[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 | |
[ i ]
dom.window.content.untrusted.enabled
  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 | |||
--- debug --- | |||