Compare Revisions
Resist Fingerprinting
Revision 286715:
Revision 286715 by michro on
Revision 286748:
Revision 286748 by AliceWyman on
Keywords:
Search results summary:
Resist Fingerprinting in Firefox limits the personal characteristics of the operating system and hardware exposed to websites
Resist Fingerprinting in Firefox limits the personal characteristics of the operating system and hardware exposed to websites
Content:
Firefox contains a feature known as ‘Resist Fingerprinting’ that limits the personal characteristics of a user’s operating system and hardware exposed to websites and is not recommended for normal use. Resist Fingerprinting takes a very strict approach and often causes web pages to work improperly. Mozilla does not recommend enabling Resist Fingerprinting, and instead recommends using the supported Fingerprinting Protection mode which minimizes broken websites.
Resist Fingerprinting is exposed to add-ons to control, which means it may have been enabled without your explicit knowledge. It can also be set by altering the preference privacy.resistFingerprinting in about:config.
==How to tell if you have Resist Fingerprinting enabled, and if so, disable it.==
[[Template:aboutconfigwarning]]
To disable Resist Fingerprinting:
#[[Template:aboutconfig]]
#In the search bar at the top, search for {pref privacy.resistFingerprinting}.
#A number of preferences will appear but see if either {pref privacy.resistFingerprinting} or {pref privacy.resistFingerprinting.pbMode} have a value of {pref true}.
#To tell if an extension is controlling this preference, you can click toggle the value back to {pref false} and restart your browser. After restarting, visit about:config again, and see if the value has been returned to {pref true}.
If it has been, you will need to determine which of your extensions is controlling the preference and disable or remove them. One way to do this is to disable the installed extensions one by one, and restart the browser, seeing if the preference is changed upon restarting Firefox. Please be aware that in rare cases ‘’multiple’’ extensions might be setting the preference.
[[UI:details_start]]
==How might Resist Fingerprinting break web pages?==
Resist Fingerprinting causes a number of strange behaviors that are commonly filed as bugs. While they do cause the website to behave strangely or incorrectly, these behaviors also mean that Resist Fingerprinting is working as intended, which is why we do not recommend this feature for the average Firefox user.
It is also important to note that if {pref privacy.resistFingerprinting.pbMode} is set, but {pref privacy.resistFingerprinting} is not - you will still get certain Resist Fingerprinting behaviors on normal windows, because it is not possible to separate these behaviors per-window. This includes using fixed instead of system colors, and others.
The most common unexpected behaviors include:
*Times are displayed incorrectly, or more accurately - they are displayed in the wrong timezone.
*Images, especially those created as a result of uploading/editing an image in the browser, may display random lines. For example:
[[Image:Resist Fingerprinting image breakage]]
*Certain animations or games may run sluggishly.
*Pages may not be localized in the expected language, and be in English instead.
*For users of Mac or Linux, you may receive information or downloads intended for the Windows operating system instead.
*Icons, maps, or images may not be rendered in high fidelity, and appear blurry or low resolution.
*Gamepads do not work.
*Writing tablets, styluses, or touchscreens do not work as expected.
*Display preferences such as Light/Dark Mode, Reduced Animations, and Reduced Transparency are not respected.
*When new windows are opened, they are fixed to a specific size.
*The native system colors are replaced and fixed values are used instead.
[[UI:details_end]]
[[UI:details_start]]
==What does Resist Fingerprinting alter?==
Resist Fingerprinting changes a lot of browser behavior - the list below is intended to be both technical in nature and as comprehensive as possible, but still may omit things by accident.
*The timezone is reported as UTC or Icelandic.
*Math operations in JavaScript may report slightly different values than regular.
*The locale is reported as en-US.
*The only fonts available to be used by websites are those pre-installed in the Operating System. This also excludes fonts in language packs.
*Several properties of the navigator object are fixed, including the hardware concurrency value, application version, build ID. The User Agent version is reported to be the major version (e.g. 119.0 instead of 119.1).
*The Operating System reported in the HTTP header is Windows, the operating system reported in the navigator object in JavaScript is accurate.
*Without granting any permission, only one camera and microphone are reported as media devices. Certain device errors may be reported as ‘not allowed’ instead of ‘not found’. Device Change events are not reported.
*Video and Audio Streams Labels are fixed to “Internal Camera” or “Internal Microphone”.
*Media Capabilities are reported as being supported, smooth, and not power efficient.
*The Video Facing Mode is a fixed value.
*The preferred sample rate for Audio is reported as 44100, and the sample rate is reported as 48000.
*The Audio Context latency is fixed, and the number of maximum channels is reported as 2.
*No gamepads are ever reported as present.
*The Network Connection type is reported as ‘Unknown’.
*On macOS the OS Font Smoothing preference is not respected.
*All Device Sensors are disabled.
*The frame rate is locked at 60 fps.
*The precision of all reported timestamps, timers, and clocks are reduced to 16.67ms (to match 60fps.)
*The Outer Window dimensions are reported to be the same as the inner window dimensions.
*The window.screenX and screenY properties, as well as mozInnerScreenX and mozInnerScreenY, and event screen coordinates are always reported as 0,0.
*The screen top, left, width, and height, and screen available top, left, width, and height are all reported the same as the window inner dimensions.
*The Screen Pixel Depth is reported as 24.
*The device pixel ratio is reported as 2.0.
*The CSS Resolution is reported as the zoom level, instead of taking into account the true device pixel ratio.
*The screen orientation is set to Landscape, as the screen angle is set to 0. OrientationChanged events are suppressed.
*The Radius, Rotation, and Force attributes of Touch Events are set to 0.
*The Max Touch Pointers for Pointer Events is set to 0.
*Several Pointer Event attributes, such as Tilt and Pressure, are set to constant values.
*All pointer events are set to come from a single primary pointing device.
*The pointer capabilities are reported to be Coarse (Android) or Fine & Hover (Desktop).
*The key codes for Keyboard Events are modified to avoid leaking the keyboard layout.
*The WebSpeech API does not report any available voices.
*CSS will report the preferred color scheme as Light.
*CSS will report preferred reduced motion as False.
*CSS will report preferred contrast as No Preference.
[[UI:details_end]]
Firefox contains a feature known as ''Resist Fingerprinting'' that limits the personal characteristics of a user’s operating system and hardware exposed to websites and is not recommended for normal use. Resist Fingerprinting takes a very strict approach and often causes web pages to work improperly. Mozilla does not recommend enabling Resist Fingerprinting, and instead recommends using the supported [[Firefox's protection against fingerprinting|Fingerprinting Protection]] mode which minimizes broken websites.
Resist Fingerprinting is exposed to add-ons to control, which means it may have been enabled without your explicit knowledge. It can also be set by altering the preference {pref privacy.resistFingerprinting} in the [[Configuration Editor for Firefox|Firefox Configuration Editor]] (about:config page).
==How to tell if you have Resist Fingerprinting enabled, and if so, disable it==
[[Template:aboutconfigwarning]]
To disable Resist Fingerprinting:
#[[Template:aboutconfig]]
#In the search bar at the top, search for {pref privacy.resistFingerprinting}.
#A number of preferences will appear but see if either {pref privacy.resistFingerprinting} or {pref privacy.resistFingerprinting.pbMode} have a value of {pref true}.
#To tell if an extension is controlling this preference, you can click toggle the value back to {pref false} and restart your browser. After restarting, visit about:config again, and see if the value has been returned to {pref true}.
If it has been, you will need to determine which of your extensions is controlling the preference and disable or remove them. One way to do this is to disable the installed extensions one by one, and restart the browser, seeing if the preference is changed upon restarting Firefox. Please be aware that in rare cases ‘’multiple’’ extensions might be setting the preference.
[[UI:details_start]]
==How might Resist Fingerprinting break web pages?==
Resist Fingerprinting causes a number of strange behaviors that are commonly filed as bugs. While they do cause the website to behave strangely or incorrectly, these behaviors also mean that Resist Fingerprinting is working as intended, which is why we do not recommend this feature for the average Firefox user.
It is also important to note that if {pref privacy.resistFingerprinting.pbMode} is set, but {pref privacy.resistFingerprinting} is not - you will still get certain Resist Fingerprinting behaviors on normal windows, because it is not possible to separate these behaviors per-window. This includes using fixed instead of system colors, and others.
The most common unexpected behaviors include:
*Times are displayed incorrectly, or more accurately - they are displayed in the wrong timezone.
*Images, especially those created as a result of uploading/editing an image in the browser, may display random lines. For example:
[[Image:Resist Fingerprinting image breakage]]
*Certain animations or games may run sluggishly.
*Pages may not be localized in the expected language, and be in English instead.
*For users of Mac or Linux, you may receive information or downloads intended for the Windows operating system instead.
*Icons, maps, or images may not be rendered in high fidelity, and appear blurry or low resolution.
*Gamepads do not work.
*Writing tablets, styluses, or touchscreens do not work as expected.
*Display preferences such as Light/Dark Mode, Reduced Animations, and Reduced Transparency are not respected.
*When new windows are opened, they are fixed to a specific size.
*The native system colors are replaced and fixed values are used instead.
[[UI:details_end]]
[[UI:details_start]]
==What does Resist Fingerprinting alter?==
Resist Fingerprinting changes a lot of browser behavior - the list below is intended to be both technical in nature and as comprehensive as possible, but still may omit things by accident.
*The timezone is reported as UTC or Icelandic.
*Math operations in JavaScript may report slightly different values than regular.
*The locale is reported as en-US.
*The only fonts available to be used by websites are those pre-installed in the Operating System. This also excludes fonts in language packs.
*Several properties of the navigator object are fixed, including the hardware concurrency value, application version, build ID. The User Agent version is reported to be the major version (e.g. 119.0 instead of 119.1).
*The Operating System reported in the HTTP header is Windows, the operating system reported in the navigator object in JavaScript is accurate.
*Without granting any permission, only one camera and microphone are reported as media devices. Certain device errors may be reported as ‘not allowed’ instead of ‘not found’. Device Change events are not reported.
*Video and Audio Streams Labels are fixed to “Internal Camera” or “Internal Microphone”.
*Media Capabilities are reported as being supported, smooth, and not power efficient.
*The Video Facing Mode is a fixed value.
*The preferred sample rate for Audio is reported as 44100, and the sample rate is reported as 48000.
*The Audio Context latency is fixed, and the number of maximum channels is reported as 2.
*No gamepads are ever reported as present.
*The Network Connection type is reported as ‘Unknown’.
*On macOS the OS Font Smoothing preference is not respected.
*All Device Sensors are disabled.
*The frame rate is locked at 60 fps.
*The precision of all reported timestamps, timers, and clocks are reduced to 16.67ms (to match 60fps.)
*The Outer Window dimensions are reported to be the same as the inner window dimensions.
*The window.screenX and screenY properties, as well as mozInnerScreenX and mozInnerScreenY, and event screen coordinates are always reported as 0,0.
*The screen top, left, width, and height, and screen available top, left, width, and height are all reported the same as the window inner dimensions.
*The Screen Pixel Depth is reported as 24.
*The device pixel ratio is reported as 2.0.
*The CSS Resolution is reported as the zoom level, instead of taking into account the true device pixel ratio.
*The screen orientation is set to Landscape, as the screen angle is set to 0. OrientationChanged events are suppressed.
*The Radius, Rotation, and Force attributes of Touch Events are set to 0.
*The Max Touch Pointers for Pointer Events is set to 0.
*Several Pointer Event attributes, such as Tilt and Pressure, are set to constant values.
*All pointer events are set to come from a single primary pointing device.
*The pointer capabilities are reported to be Coarse (Android) or Fine & Hover (Desktop).
*The key codes for Keyboard Events are modified to avoid leaking the keyboard layout.
*The WebSpeech API does not report any available voices.
*CSS will report the preferred color scheme as Light.
*CSS will report preferred reduced motion as False.
*CSS will report preferred contrast as No Preference.
[[UI:details_end]]