Fingerprinting: Difference between revisions

No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page tracks the deployment of Firefox's Fingerprinting Protection (FPP) feature.
This page tracks the deployment of Firefox's Fingerprinting Protection (FPP) feature.


Other documents that may be relevant depending on the audience:
Other documents that may be relevant depending on the audience:
Line 9: Line 9:
<li> Source Docs on the implementation: https://firefox-source-docs.mozilla.org/toolkit/components/resistfingerprinting/resistfingerprinting/implementation.html
<li> Source Docs on the implementation: https://firefox-source-docs.mozilla.org/toolkit/components/resistfingerprinting/resistfingerprinting/implementation.html
</ul>
</ul>
== Summary ==
''As of Firefox 160 Release / 162 Nightly, last updated 11/9/26, the following protections are enabled:''
{| class="wikitable"
|-
! Protection !! Desktop FPP !! Android FPP !! Desktop Baseline !! Android Baseline
|-
| CanvasRandomization || Yes || Yes || No (Nightly 150 only; superseded by EfficientCanvasRandomization in 151) || No
|-
| EfficientCanvasRandomization || Yes || Yes || Yes || Nightly-only; Release rollout via Nimbus starting 160
|-
| FontVisibilityLangPack || Yes || Yes || ||
|-
| IMEStyle || Yes || Yes || ||
|-
| JSMathFdlibm || Yes || Yes || ||
|-
| MaxTouchPointsCollapse || Yes || Yes || Yes || Nightly-only; Release rollout via Nimbus starting 160
|-
| NavigatorHWConcurrencyTiered || Yes || Yes || ||
|-
| ScreenAvailToResolution || Yes || Yes || Yes || Nightly-only; Release rollout via Nimbus starting 160
|-
| WebGLRendererConstant || Nightly-only || Nightly-only || ||
|-
| WebGLVendorSanitize || Nightly-only || Nightly-only || ||
|}
"FPP" is the set applied in Private Browsing and ETP Strict ([https://searchfox.org/firefox-main/source/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc RFPTargetsDefault.inc]); "Baseline" is the set applied in all normal windows ([https://searchfox.org/firefox-main/source/toolkit/components/resistfingerprinting/RFPTargetsDefaultBaseline.inc RFPTargetsDefaultBaseline.inc]).


== Desktop ==
== Desktop ==
Line 16: Line 46:
! Protection Name !! Channel !! Version !! Bugs
! Protection Name !! Channel !! Version !! Bugs
|-
|-
| rowspan="6" | ScreenAvailToResolution
| rowspan="8" | ScreenAvailToResolution
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Nightly-only as of 150'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Release as of 151'''
|-
| Baseline Release
| 151
| {{bug|2032123}}
|-
| Baseline Beta
| 151
| {{bug|2032123}}
|-
|-
| Baseline Nightly
| Baseline Nightly
Line 37: Line 75:
| colspan="3" | Regressions: {{bug|2016747}}
| colspan="3" | Regressions: {{bug|2016747}}
|-
|-
| rowspan="6" | MaxTouchPointsCollapse
| rowspan="8" | MaxTouchPointsCollapse
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Nightly-only as of 150'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Release as of 151'''
|-
| Baseline Release
| 151
| {{bug|2032123}}
|-
| Baseline Beta
| 151
| {{bug|2032123}}
|-
|-
| Baseline Nightly
| Baseline Nightly
Line 58: Line 104:
| colspan="3" | Regressions: {{bug|1991701}} (Linux touch disabled by companion fix {{bug|1957658}}, re-enabled in 146/147); {{bug|2021715}} (Linux Wayland count adjusted, 150)
| colspan="3" | Regressions: {{bug|1991701}} (Linux touch disabled by companion fix {{bug|1957658}}, re-enabled in 146/147); {{bug|2021715}} (Linux Wayland count adjusted, 150)
|-
|-
| rowspan="6" | EfficientCanvasRandomization
| rowspan="8" | EfficientCanvasRandomization
| colspan="3" | '''Enabled in FPP (PBM) Release as of 145; Enabled in Baseline Nightly-only as of 150'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 145; Enabled in Baseline Release as of 151'''
|-
| Baseline Release
| 151
| {{bug|2032123}}
|-
| Baseline Beta
| 151
| {{bug|2032123}}
|-
|-
| Baseline Nightly
| Baseline Nightly
Line 80: Line 134:
|-
|-
| rowspan="6" | CanvasRandomization
| rowspan="6" | CanvasRandomization
| colspan="3" | '''Enabled in FPP (PBM) Release as of 120; Enabled in Baseline Nightly-only as of 150'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 120; in Baseline Nightly 150 only, removed from Baseline in 151 (superseded by EfficientCanvasRandomization)'''
|-
|-
| Baseline Nightly
| Baseline Nightly
| 150
| 150 (removed in 151)
| {{bug|2021606}}
| {{bug|2021606}}; removed by {{bug|2032123}}
|-
|-
| FPP (PBM) Release
| FPP (PBM) Release
Line 148: Line 202:
|-
|-
| colspan="3" | Regressions: {{bug|1984132}}; {{bug|1982336}}
| colspan="3" | Regressions: {{bug|1984132}}; {{bug|1982336}}
|-
| rowspan="4" | IMEStyle
| colspan="3" | '''Enabled in FPP (PBM) Release as of 155'''
|-
| FPP (PBM) Release
| 155
| {{bug|2055006}}
|-
| FPP (PBM) Beta
| 155
| {{bug|2055006}}
|-
| FPP (PBM) Nightly
| 155
| {{bug|2055006}} (hides custom IME styling in EditContext textformatupdate events; RFP-only version landed in 154 via {{bug|2047612}})
|-
| rowspan="2" | WebGLRendererConstant
| colspan="3" | '''Enabled in FPP (PBM) Nightly-only as of 154'''
|-
| FPP (PBM) Nightly
| 154
| {{bug|2050515}}
|-
| rowspan="3" | WebGLVendorSanitize
| colspan="3" | '''Enabled in FPP (PBM) Nightly-only as of 154'''
|-
| FPP (PBM) Nightly
| 154
| {{bug|2050515}} (WebGLVendorRandomize was also enabled, then removed in 155 via {{bug|2056780}}; WebGLVendorConstant replaced by bucketing the vendor to a GPU family in 159 via {{bug|2055176}})
|-
| colspan="3" | Regressions: {{bug|2056780}} (CAPTCHA rates increased with vendor randomization, fixed 155); {{bug|2055176}} (flightradar24.com broken in PBM on Linux, fixed 159)
|}
|}


Line 156: Line 241:
! Protection Name !! Channel !! Version !! Bugs
! Protection Name !! Channel !! Version !! Bugs
|-
|-
| rowspan="4" | ScreenAvailToResolution
| rowspan="7" | ScreenAvailToResolution
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Nightly-only as of 151; Baseline Release rollout via Nimbus starting 160'''
|-
| Baseline Release
| 160 (Nimbus rollout, target 100% in 162)
| Nimbus: fpp-canvas-touchpoints-screenavail-android
|-
| Baseline Beta
| 159+ (Nimbus experiment)
| Nimbus: fpp-canvas-touchpoints-screenavail-android-beta
|-
| Baseline Nightly
| 151
| {{bug|2032123}}
|-
|-
| FPP (PBM) Release
| FPP (PBM) Release
Line 171: Line 268:
| {{bug|1978414}}
| {{bug|1978414}}
|-
|-
| rowspan="4" | MaxTouchPointsCollapse
| rowspan="7" | MaxTouchPointsCollapse
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Nightly-only as of 151; Baseline Release rollout via Nimbus starting 160'''
|-
| Baseline Release
| 160 (Nimbus rollout, target 100% in 162)
| Nimbus: fpp-canvas-touchpoints-screenavail-android
|-
| Baseline Beta
| 159+ (Nimbus experiment)
| Nimbus: fpp-canvas-touchpoints-screenavail-android-beta
|-
| Baseline Nightly
| 151
| {{bug|2032123}}
|-
|-
| FPP (PBM) Release
| FPP (PBM) Release
Line 186: Line 295:
| {{bug|1978414}}
| {{bug|1978414}}
|-
|-
| rowspan="4" | EfficientCanvasRandomization
| rowspan="7" | EfficientCanvasRandomization
| colspan="3" | '''Enabled in FPP (PBM) Release as of 145'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 145; Enabled in Baseline Nightly-only as of 151; Baseline Release rollout via Nimbus starting 160'''
|-
| Baseline Release
| 160 (Nimbus rollout, target 100% in 162)
| Nimbus: fpp-canvas-touchpoints-screenavail-android
|-
| Baseline Beta
| 159+ (Nimbus experiment)
| Nimbus: fpp-canvas-touchpoints-screenavail-android-beta
|-
| Baseline Nightly
| 151
| {{bug|2032123}}
|-
|-
| FPP (PBM) Release
| FPP (PBM) Release
Line 202: Line 323:
|-
|-
| rowspan="5" | CanvasRandomization
| rowspan="5" | CanvasRandomization
| colspan="3" | '''Enabled in FPP (PBM) Release as of 120'''
| colspan="3" | '''Enabled in FPP (PBM) Release as of 120; not in Baseline (EfficientCanvasRandomization is used there instead)'''
|-
|-
| FPP (PBM) Release
| FPP (PBM) Release
Line 266: Line 387:
|-
|-
| colspan="3" | Regressions: {{bug|1984132}}; {{bug|1982336}}
| colspan="3" | Regressions: {{bug|1984132}}; {{bug|1982336}}
|-
| rowspan="4" | IMEStyle
| colspan="3" | '''Enabled in FPP (PBM) Release as of 155'''
|-
| FPP (PBM) Release
| 155
| {{bug|2055006}}
|-
| FPP (PBM) Beta
| 155
| {{bug|2055006}}
|-
| FPP (PBM) Nightly
| 155
| {{bug|2055006}} (hides custom IME styling in EditContext textformatupdate events; RFP-only version landed in 154 via {{bug|2047612}})
|-
| rowspan="2" | WebGLRendererConstant
| colspan="3" | '''Enabled in FPP (PBM) Nightly-only as of 154'''
|-
| FPP (PBM) Nightly
| 154
| {{bug|2050515}}
|-
| rowspan="3" | WebGLVendorSanitize
| colspan="3" | '''Enabled in FPP (PBM) Nightly-only as of 154'''
|-
| FPP (PBM) Nightly
| 154
| {{bug|2050515}} (WebGLVendorRandomize was also enabled, then removed in 155 via {{bug|2056780}}; WebGLVendorConstant replaced by bucketing the vendor to a GPU family in 159 via {{bug|2055176}})
|-
| colspan="3" | Regressions: {{bug|2056780}} (CAPTCHA rates increased with vendor randomization, fixed 155); {{bug|2055176}} (flightradar24.com broken in PBM on Linux, fixed 159)
|}
|}

Latest revision as of 03:10, 10 November 2026

This page tracks the deployment of Firefox's Fingerprinting Protection (FPP) feature.

Other documents that may be relevant depending on the audience:

Summary

As of Firefox 160 Release / 162 Nightly, last updated 11/9/26, the following protections are enabled:

Protection Desktop FPP Android FPP Desktop Baseline Android Baseline
CanvasRandomization Yes Yes No (Nightly 150 only; superseded by EfficientCanvasRandomization in 151) No
EfficientCanvasRandomization Yes Yes Yes Nightly-only; Release rollout via Nimbus starting 160
FontVisibilityLangPack Yes Yes
IMEStyle Yes Yes
JSMathFdlibm Yes Yes
MaxTouchPointsCollapse Yes Yes Yes Nightly-only; Release rollout via Nimbus starting 160
NavigatorHWConcurrencyTiered Yes Yes
ScreenAvailToResolution Yes Yes Yes Nightly-only; Release rollout via Nimbus starting 160
WebGLRendererConstant Nightly-only Nightly-only
WebGLVendorSanitize Nightly-only Nightly-only

"FPP" is the set applied in Private Browsing and ETP Strict (RFPTargetsDefault.inc); "Baseline" is the set applied in all normal windows (RFPTargetsDefaultBaseline.inc).

Desktop

Protection Name Channel Version Bugs
ScreenAvailToResolution Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Release as of 151
Baseline Release 151 bug 2032123
Baseline Beta 151 bug 2032123
Baseline Nightly 150 bug 1990514
FPP (PBM) Release 143 bug 1978414
FPP (PBM) Beta 143 bug 1978414
FPP (PBM) Nightly 143 bug 1978414
Regressions: bug 2016747
MaxTouchPointsCollapse Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Release as of 151
Baseline Release 151 bug 2032123
Baseline Beta 151 bug 2032123
Baseline Nightly 150 bug 1990514
FPP (PBM) Release 143 bug 1978414
FPP (PBM) Beta 143 bug 1978414
FPP (PBM) Nightly 143 bug 1978414
Regressions: bug 1991701 (Linux touch disabled by companion fix bug 1957658, re-enabled in 146/147); bug 2021715 (Linux Wayland count adjusted, 150)
EfficientCanvasRandomization Enabled in FPP (PBM) Release as of 145; Enabled in Baseline Release as of 151
Baseline Release 151 bug 2032123
Baseline Beta 151 bug 2032123
Baseline Nightly 150 bug 2021606
FPP (PBM) Release 145 bug 1993304
FPP (PBM) Beta 145 bug 1993304
FPP (PBM) Nightly 145 bug 1993304
Regressions: bug 2025570 (Google Maps highway labels broken, fixed via RemoteSettings in 150/151)
CanvasRandomization Enabled in FPP (PBM) Release as of 120; in Baseline Nightly 150 only, removed from Baseline in 151 (superseded by EfficientCanvasRandomization)
Baseline Nightly 150 (removed in 151) bug 2021606; removed by bug 2032123
FPP (PBM) Release 120 bug 1858181
FPP (PBM) Beta 120 bug 1858181
FPP (PBM) Nightly 115 bug 1825250 (Nightly-only in 118–119 due to bug 1849903)
Regressions: bug 1852541 (Google Meet can't join, fixed 120); bug 1876149 (onshape.com getImageData); bug 1882761 (Google Maps highway symbols); bug 1887161 (canvas getImageData slow in PBM on maps/Airbnb, fixed via SipHash in 134 then superseded by EfficientCanvasRandomization); bug 1905884 (visual bugs on canvas-heavy sites); bug 1957426 (meta); bug 1957427 (wpt.fyi image comparison, fixed via overrides); bug 2010274 (SoundCloud audio waveform broken in PBM/ETP Strict); bug 2025570 (Google Maps Baseline, shared with EfficientCanvasRandomization)
FontVisibilityLangPack Enabled in FPP (PBM) Release as of 118
FPP (PBM) Release 118 bug 1849903
FPP (PBM) Beta 118 bug 1849903
FPP (PBM) Nightly 118 bug 1849903
Regressions: bug 1827475 (meta); bug 1850672 (localized font names not in standard list, fixed 118.0.2/119); bug 1854950 (broken rendering on Linux with no native distro fonts, fixed 119/120)
JSMathFdlibm Enabled in FPP (PBM) Release as of 134
FPP (PBM) Release 134 bug 1887682
FPP (PBM) Beta 134 bug 1887682
FPP (PBM) Nightly 134 bug 1887682
NavigatorHWConcurrencyTiered Enabled in FPP (PBM) Release as of 143
FPP (PBM) Release 143 bug 1978414
FPP (PBM) Beta 143 bug 1978414
FPP (PBM) Nightly 143 bug 1978414 (renamed and tiered in 144 via bug 1984333)
Regressions: bug 1984132; bug 1982336
IMEStyle Enabled in FPP (PBM) Release as of 155
FPP (PBM) Release 155 bug 2055006
FPP (PBM) Beta 155 bug 2055006
FPP (PBM) Nightly 155 bug 2055006 (hides custom IME styling in EditContext textformatupdate events; RFP-only version landed in 154 via bug 2047612)
WebGLRendererConstant Enabled in FPP (PBM) Nightly-only as of 154
FPP (PBM) Nightly 154 bug 2050515
WebGLVendorSanitize Enabled in FPP (PBM) Nightly-only as of 154
FPP (PBM) Nightly 154 bug 2050515 (WebGLVendorRandomize was also enabled, then removed in 155 via bug 2056780; WebGLVendorConstant replaced by bucketing the vendor to a GPU family in 159 via bug 2055176)
Regressions: bug 2056780 (CAPTCHA rates increased with vendor randomization, fixed 155); bug 2055176 (flightradar24.com broken in PBM on Linux, fixed 159)

Android

Protection Name Channel Version Bugs
ScreenAvailToResolution Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Nightly-only as of 151; Baseline Release rollout via Nimbus starting 160
Baseline Release 160 (Nimbus rollout, target 100% in 162) Nimbus: fpp-canvas-touchpoints-screenavail-android
Baseline Beta 159+ (Nimbus experiment) Nimbus: fpp-canvas-touchpoints-screenavail-android-beta
Baseline Nightly 151 bug 2032123
FPP (PBM) Release 143 bug 1978414
FPP (PBM) Beta 143 bug 1978414
FPP (PBM) Nightly 143 bug 1978414
MaxTouchPointsCollapse Enabled in FPP (PBM) Release as of 143; Enabled in Baseline Nightly-only as of 151; Baseline Release rollout via Nimbus starting 160
Baseline Release 160 (Nimbus rollout, target 100% in 162) Nimbus: fpp-canvas-touchpoints-screenavail-android
Baseline Beta 159+ (Nimbus experiment) Nimbus: fpp-canvas-touchpoints-screenavail-android-beta
Baseline Nightly 151 bug 2032123
FPP (PBM) Release 143 bug 1978414
FPP (PBM) Beta 143 bug 1978414
FPP (PBM) Nightly 143 bug 1978414
EfficientCanvasRandomization Enabled in FPP (PBM) Release as of 145; Enabled in Baseline Nightly-only as of 151; Baseline Release rollout via Nimbus starting 160
Baseline Release 160 (Nimbus rollout, target 100% in 162) Nimbus: fpp-canvas-touchpoints-screenavail-android
Baseline Beta 159+ (Nimbus experiment) Nimbus: fpp-canvas-touchpoints-screenavail-android-beta
Baseline Nightly 151 bug 2032123
FPP (PBM) Release 145 bug 1993304
FPP (PBM) Beta 145 bug 1993304
FPP (PBM) Nightly 145 bug 1993304
CanvasRandomization Enabled in FPP (PBM) Release as of 120; not in Baseline (EfficientCanvasRandomization is used there instead)
FPP (PBM) Release 120 bug 1858181
FPP (PBM) Beta 120 bug 1858181
FPP (PBM) Nightly 115 bug 1825250 (Nightly-only in 118–119 due to bug 1849903)
Regressions: bug 1852541 (Google Meet can't join, fixed 120); bug 1876149 (onshape.com getImageData); bug 1882761 (Google Maps highway symbols); bug 1887161 (canvas getImageData slow in PBM, fixed via SipHash in 134 then superseded by EfficientCanvasRandomization); bug 1905884 (visual bugs on canvas-heavy sites); bug 1957426 (meta); bug 1957427 (wpt.fyi image comparison, fixed via overrides)
FontVisibilityLangPack Enabled in FPP (PBM) Release as of 134 (removed 124–133 via bug 1826412, re-enabled via bug 1928705)
FPP (PBM) Release 134 bug 1928705
FPP (PBM) Beta 134 bug 1928705
FPP (PBM) Nightly 118 bug 1849903 (removed in 124 via bug 1826412, re-added in 134 via bug 1928705)
Regressions: bug 1946625 (Brahmic scripts broken on older Samsung Android); bug 1956251 (cxcricket.co Bangla Sangam MN font missing from Android font list)
JSMathFdlibm Enabled in FPP (PBM) Release as of 134
FPP (PBM) Release 134 bug 1887682
FPP (PBM) Beta 134 bug 1887682
FPP (PBM) Nightly 134 bug 1887682
NavigatorHWConcurrencyTiered Enabled in FPP (PBM) Release as of 143
FPP (PBM) Release 143 bug 1978414
FPP (PBM) Beta 143 bug 1978414
FPP (PBM) Nightly 143 bug 1978414 (renamed and tiered in 144 via bug 1984333)
Regressions: bug 1984132; bug 1982336
IMEStyle Enabled in FPP (PBM) Release as of 155
FPP (PBM) Release 155 bug 2055006
FPP (PBM) Beta 155 bug 2055006
FPP (PBM) Nightly 155 bug 2055006 (hides custom IME styling in EditContext textformatupdate events; RFP-only version landed in 154 via bug 2047612)
WebGLRendererConstant Enabled in FPP (PBM) Nightly-only as of 154
FPP (PBM) Nightly 154 bug 2050515
WebGLVendorSanitize Enabled in FPP (PBM) Nightly-only as of 154
FPP (PBM) Nightly 154 bug 2050515 (WebGLVendorRandomize was also enabled, then removed in 155 via bug 2056780; WebGLVendorConstant replaced by bucketing the vendor to a GPU family in 159 via bug 2055176)
Regressions: bug 2056780 (CAPTCHA rates increased with vendor randomization, fixed 155); bug 2055176 (flightradar24.com broken in PBM on Linux, fixed 159)