Privacy Patches
This category includes patches that protect against various forms of tracking, as well as patches that limit data exposure and reduce the browser’s required permissions.
Patches
Section titled “Patches”- Fenix - Configure DNS over HTTPS providers
- Fenix - Sanitize data on exit
- Android Components - Configure default search engines
- Gecko - Configure uBlock Origin
- Fenix - Disable network connectivity status monitoring
- GeckoView - Disable network connectivity status monitoring
- Gecko - Disable network ID generation
- GeckoView - Disable speculative connections
- Gecko - Stub navigator.sendBeacon()
- Gecko - Prevent fingerprinting via internal resources
- Gecko - Prevent fingerprinting via about:crashes resources
- Gecko - Prevent fingerprinting via EME
- Gecko - Prevent exposing the browser name and vendor to extensions
- Android Components - Disable unsolicited favicon fetching
- Android Components - Do not allow built-in add-ons to access private browsing windows unconditionally
- Gecko - Fix canvas randomization
- Gecko - Remove OpenAI
Fenix - Configure DNS over HTTPS providers
Section titled “Fenix - Configure DNS over HTTPS providers”Adds the following custom DoH providers:
- Mullvad (Base)
- Cloudflare (Malware Protection)
- DNS4EU (Ad Blocking)
- DNS4EU (Protective)
- DNS4EU (Unfiltered)
- Mullvad (Unfiltered)
Reason To add support for multiple secure DNS providers in the UI settings. | Effect Adds a selection of carefully selected DoH providers for the users to choose from. |
Fenix - Sanitize data on exit
Section titled “Fenix - Sanitize data on exit”Ensures the UI reflects our values to sanitize data on exit by default.
Reason Protects privacy between browser sessions. | Effect Automatically clears tabs, history, cache, and download list when browser closes. |
Android Components - Configure default search engines
Section titled “Android Components - Configure default search engines”Adds custom privacy-focused search engines.
Reason To provide alternatives to tracking-heavy default search engines. | Effect Users can easily use privacy-respecting search engines. |
Gecko - Configure uBlock Origin
Section titled “Gecko - Configure uBlock Origin”Sets uBlock Origin to use a custom/enhanced config, and changes certain settings by default.
Reason To provide stronger out-of-box content blocking. | Effect Better ad and tracker blocking with optimized filter lists. |
Fenix - Disable network connectivity status monitoring
Section titled “Fenix - Disable network connectivity status monitoring”Removes the ACCCESS_NETWORK_STATE permission and prevents the browser from monitoring the status of the user’s internet connection.
ACCESS_NETWORK_STATE permission).Reason To prevent the browser from accessing network information (with the ACCESS_NETWORK_STATE permission). | Effect Reduces required permissions and limits data exposed to the browser. |
GeckoView - Disable network connectivity status monitoring
Section titled “GeckoView - Disable network connectivity status monitoring”Removes the ACCCESS_NETWORK_STATE permission and prevents the browser from monitoring the status of the user’s internet connection.
ACCESS_NETWORK_STATE permission).Reason To prevent the browser from accessing network information (with the ACCESS_NETWORK_STATE permission). | Effect Reduces required permissions and limits data exposed to the browser. |
Gecko - Disable network ID generation
Section titled “Gecko - Disable network ID generation”Prevents Firefox from generating an internal network ID that could potentially be used to track users.
Reason To prevent the browser from generating an ID that could be used for tracking/fingerprinting.
(For details, see: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4c548fa04b668a310c90c0e783ec404420f06257) | Effect Protects users against tracking/fingerprinting. |
GeckoView - Disable speculative connections
Section titled “GeckoView - Disable speculative connections”Prevents GeckoView from generating speculative/predictive connections.
Reason To prevent unwanted/unsolicited network traffic (In Fenix, this is currently used for certain URL bar suggestions). | Effect Prevents the browser from connecting to third parties without explicit user consent, and provides users with more control over their network activity. |
Gecko - Stub navigator.sendBeacon()
Section titled “Gecko - Stub navigator.sendBeacon()”Stubs the Beacon API to prevent tracking and the submission of analytics, without aiding fingerprinting and causing undesired breakage.
Reason The Beacon API (navigator.sendBeacon)’s explicit, stated purpose/use case is for analytics/tracking
(https://developer.mozilla.org/docs/Web/API/Beacon_API). However, disabling it entirely (like standard Firefox allows) is undesired, as it
causes breakage, aids fingerprinting, and can allow trackers to fallback to other mechanisms for submitting data
(as they can tell it’s disabled/unavailable). Stubbing the API instead fixes these issues. | Effect Users are protected against tracking, and benefit from added attack surface reduction, without causing breakage and having to deal with the
usual side effects that appear when the Beacon API is disabled. |
Gecko - Prevent fingerprinting via internal resources
Section titled “Gecko - Prevent fingerprinting via internal resources”Prevents the browser from exposing branding assets and certain other internal resources to websites.
Reason Improves privacy by preventing websites from determining whether a user is on IronFox,
and improves compatibility, as we have reason to believe websites might be using this to block users of derivatives (ex. IronFox and LibreWolf).
(For details, see: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ecb798d066b039329223b4c31133e2f917ca477d). | Effect Users are protected against additional fingerprinting vectors, and websites work as expected. |
Gecko - Prevent fingerprinting via about:crashes resources
Section titled “Gecko - Prevent fingerprinting via about:crashes resources”Prevents the browser from exposing that crash reporting is disabled to websites.
Reason Improves privacy by preventing websites from determining whether a user is on IronFox,
and improves compatibility, as we have reason to believe websites might be using this to block users of derivatives (ex. IronFox and LibreWolf). | Effect Users are protected against additional fingerprinting vectors, and websites work as expected. |
Gecko - Prevent fingerprinting via EME
Section titled “Gecko - Prevent fingerprinting via EME”Prevents fingerprinting via the status of EME.
media.eme.enabled. Due to a different
message being reported to websites when EME is disabled (than when its blocked via the permission),
this means that us disabling EME adds an additional fingerprinting vector and causes us to
stick out from standard Firefox users.
To prevent this, this patch makes it so that when EME is disabled, Firefox acts the same as if the
EME permission was blocked or ignored by the user.
This also helps ensure that users who enable EME and block a website from accessing it (on devices
that support Widevine) appear the same as those who leave EME disabled.Reason Fenix typically doesn’t provide a way to configure media.eme.enabled. Due to a different
message being reported to websites when EME is disabled (than when its blocked via the permission),
this means that us disabling EME adds an additional fingerprinting vector and causes us to
stick out from standard Firefox users.
To prevent this, this patch makes it so that when EME is disabled, Firefox acts the same as if the
EME permission was blocked or ignored by the user.
This also helps ensure that users who enable EME and block a website from accessing it (on devices
that support Widevine) appear the same as those who leave EME disabled. | Effect Users are protected against additional fingerprinting vectors. |
Gecko - Prevent exposing the browser name and vendor to extensions
Section titled “Gecko - Prevent exposing the browser name and vendor to extensions”Prevents exposing the browser name and vendor to extensions via getBrowserInfo() (https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBrowserInfo).
Reason Improves privacy by preventing extensions from determining whether a user is on IronFox,
and improves compatibility with certain older extensions (ex. https://codeberg.org/librewolf/issues/issues/2492). | Effect Extensions work as expected, and users are protected against added fingerprinting opportunities. |
Android Components - Disable unsolicited favicon fetching
Section titled “Android Components - Disable unsolicited favicon fetching”Prevents Firefox from automatically fetching favicons for websites pinned to the browser homepage.
Reason To prevent unwanted network activity and connections to third parties. | Effect Reduces network activity, provides users with more control, and provides a faster browser homepage. |
Android Components - Do not allow built-in add-ons to access private browsing windows unconditionally
Section titled “Android Components - Do not allow built-in add-ons to access private browsing windows unconditionally”Prevents built-in add-ons from always being able to access private browsing windows, even if they don’t request or need access.
Reason To improve privacy and security for users by limiting the amount of access built-in add-ons have to the browser. | Effect Users are provided with a more private and secure browsing experience. |
Gecko - Fix canvas randomization
Section titled “Gecko - Fix canvas randomization”Backports a fix for an upstream bug that prevents Canvas randomization from working for getImageData and WebGL image hash (https://bugzilla.mozilla.org/show_bug.cgi?id=2013976), and enables Canvas randomization for solid colors.
Reason To protect against fingerprinting by ensuring that canvas data is fully randomized. | Effect Users are provided with fingerprinting protection that works as expected. |
Gecko - Remove OpenAI
Section titled “Gecko - Remove OpenAI”Removes the OpenAI backend from Mozilla’s ML (machine learning) component.
Reason To improve privacy for users (and reduce attack surface) by removing integration with a privacy-invasive/unwanted LLM. | Effect Users are provided with a more private browsing experience. |