Home Page

You can try Am I Unique or Panopticlick to learn how identifiable you are on the Internet and test JavaScript Restrictor Extension


jShelter Test Page


High precision timer sources

Date object 00: 00: 00. 000
performance.now Current performance is: -
Events
Timestamp of an event created during page load is: -
Timestamp of a recent event is: -




Canvas fingerprinting

window.HTMLCanvasElement.toDataURL() example

Canvas frame


Original canvas:

.getImageData result:

.toDataURL result:

.isPointInStroke:

.isPointInPath:

Initial .isPointInStroke test: false

Initial .isPointInPath test: false





WebGL

Original canvas:

.readPixels result:

.toDataURL result:

GL version:

Shading language version:

Vendor:

Unmasked vendor:

Renderer:

Unmasked renderer:

Enabled WebGL extenstions:

WebGL shader precisions:





Audio

.getChannelData:

.copyFromChannel:

.getFloatFrequencyData:

.getByteFrequencyData:

.getFloatTimeDomainData:

.getByteTimeDomainData:





Plugins

Plugins:

Mime Types:





Hardware information





Arrays

crypto.getRandomValues:




navigator.geolocation example



Redraw map, when position changes







Your devices connected to the computer

Cameras and microphones

Gamepads

Virtual reality sets





Mixed reality support





window.XMLHttpRequest example





Wrappers and iframes

Iframes can be misused to evade wrappers. Prior to 0.5, jShelter limited some wrappers but not all. To be fully protected, you should see [native code] as a body of all displayed functions. Note that you should see the same content even if you do not use any extension that modifies the calls. We want not to be distinguishable even if fully protected to limit fingerprinting.

JavaScript executed in the main page

JavaScript executed in a regular iframe

JavaScript executed in a same origin iframe