https://browserleaks.com/rects

Element.getClientRects (̿▀̿ ̿Ĺ̯̿̿▀̿ ̿)̄
                                                            F i n g e r p r i n t i n g ?
lineheight
x=−b ±b2−4 ⁢a⁢c 2⁢a
x=b ±b24 ac 2a
line height
₹ ▁ ₺ ꜽ � ₸ ׆ ẞ ॿ  ᳚ ៝ ⎮ ം ஂ ᅚ ␥ 〮 ꠰ ⬆ ⇤ ₽ ⱻ ₰ ﯮ  ￿  Ⴀ 𝞐 ܀ ᥐ ゕ 匭 ؜ ⃣  Ș ֏ ࣤ ঳ ᱐ ☙
a   b
a b
2020-1
2020-12020-1

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
top
availLeft
availTop
  [screen] positions
[ i ] screenX
screenY
mozInnerScreenX
mozInnerScreenY
  [window] positions
[css | matchMedia] display-mode |
full screen
[ i ] full-screen-api.enabled
  [api] full screen
[ click here ]
[ i ] DON'T PANIC as you briefly
enter and then exit full screen
  [test] full screen 4
[ click here ]
[ i ] will attempt to open a new
window as big as possible
and grab the dimensions
  new window
[android] new window
[ i ] FF83+
dom.indexedDB.privateBrowsing.enabled
  private window
[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+
javascript.options.large_arraybuffers
  [platform] architecture
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
DateTimeFormat
DisplayNames
ListFormat
NumberFormat
PluralRules
RelativeTimeFormat
Segmenter
  resolvedOptions
[PoC]   collation
timezone
timezoneOffset | getTime | Date.parse
[PoC]   [timezone offsets] Date.parse
[resolvedOptions] timezone
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
The [cookie], [localStorage], [sessionStorage] and [indexedDB] tests, on each run, individually attempt to set a new random name and value, and then to read them back. Only when it successfully reads back a matching value is it deemed to be available and working.
[ re-run ]
[navigator] cookieEnabled
[javascript 1st party cookie] session | persistent |
localStorage | test |
sessionStorage | test |
indexedDB | test |
[ i ] browser.cache.offline.enable
  appCache
worker
web worker | shared worker |
[ i ] dom.serviceWorkers.enabled
  service worker | test
|
[ i ] dom.caches.enabled
  service worker cache | test
|
notifications | test |
[permission] notifications | push | persistent-storage | |
[ i ] dom.storageManager.enabled
  storage manager
[ click here ] [properties | test] storage manager |
[ 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
isPrimary
mozInputSource
pointerType
pressure
tangentialPressure
tiltX
tiltY
twist
width
  [data] pointer event 1
[css | matchMedia] any-hover | hover | |
[css | matchMedia] any-pointer | pointer | |
[ i ] media.webspeech.recognition.enable
  speech recognition
[ i ] ontouchstart
ontouchend
TouchEvent
  [events] touch
[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
testresult
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
testresult
[ 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 ]
[ i ]media.media-capabilities.enabled
  mediaCapabilities
[ i ]dom.media.mediasession.enabled
  [api] mediaSession
[canPlayType] audio
[isTypeSupported] audio
[canPlayType] video
[isTypeSupported] video
[ 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
testresult
testresult
[ re-run ]
[ i ] Firefox 74+ : javascript.options.
property_error_message_fix
  errors
[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 ---