1
0
mirror of https://github.com/arkenfox/user.js.git synced 2026-06-16 01:12:52 +05:30

Compare commits

...

3 Commits

Author SHA1 Message Date
Thorin-Oakenpants 1a9e0bb6dc v151
@tomrittervg added a link to your blog about telemetry
2026-06-02 02:01:57 +00:00
Thorin-Oakenpants 8fe9905c35 Update README.md 2026-05-12 16:58:55 +00:00
Thorin-Oakenpants bb45863be7 v144 (#1992) 2026-04-20 20:20:53 +00:00
3 changed files with 78 additions and 87 deletions
+2
View File
@@ -1,3 +1,5 @@
This repo and the interative webpage linked below are the **_only official sources_** - do not trust any other sites claiming to be Arkenfox
### 🟪 user.js ### 🟪 user.js
A `user.js` is a configuration file that can control Firefox settings - for a more technical breakdown and explanation, you can read more in the [wiki](https://github.com/arkenfox/user.js/wiki/2.1-User.js) A `user.js` is a configuration file that can control Firefox settings - for a more technical breakdown and explanation, you can read more in the [wiki](https://github.com/arkenfox/user.js/wiki/2.1-User.js)
+10 -1
View File
@@ -6,7 +6,7 @@
There is an archived version at https://github.com/arkenfox/user.js/issues/123 There is an archived version at https://github.com/arkenfox/user.js/issues/123
if you want the full list since jesus if you want the full list since jesus
Last updated: 14-August-2025 Last updated: 19-December-2025
Instructions: Instructions:
- [optional] close Firefox and backup your profile - [optional] close Firefox and backup your profile
@@ -35,6 +35,9 @@
const aPREFS = [ const aPREFS = [
/* DEPRECATED */ /* DEPRECATED */
/* 141-153 */
'network.predictor.enabled', // 148
'network.predictor.enable-prefetch', // 148
/* 129-140 */ /* 129-140 */
'browser.shopping.experience2023.enabled', // 140 'browser.shopping.experience2023.enabled', // 140
'browser.urlbar.pocket.featureGate', // 140 'browser.urlbar.pocket.featureGate', // 140
@@ -76,6 +79,12 @@
'security.ssl3.rsa_des_ede3_sha', // 93 'security.ssl3.rsa_des_ede3_sha', // 93
/* REMOVED */ /* REMOVED */
/* 141-153 */
'browser.display.use_system_colors',
'browser.urlbar.fakespot.featureGate',
'keyword.enabled',
'security.OCSP.enabled',
'security.OCSP.require',
/* 129-140 */ /* 129-140 */
'dom.securecontext.allowlist_onions', 'dom.securecontext.allowlist_onions',
'network.http.referer.hideOnionSource', 'network.http.referer.hideOnionSource',
+66 -86
View File
@@ -1,7 +1,7 @@
/****** /******
* name: arkenfox user.js * name: arkenfox user.js
* date: 4 November 2025 * date: 30 June 2026
* version: 140 * version: 151
* urls: https://github.com/arkenfox/user.js [repo] * urls: https://github.com/arkenfox/user.js [repo]
* : https://arkenfox.github.io/gui/ [interactive] * : https://arkenfox.github.io/gui/ [interactive]
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
@@ -47,7 +47,7 @@
0600: BLOCK IMPLICIT OUTBOUND 0600: BLOCK IMPLICIT OUTBOUND
0700: DNS / DoH / PROXY / SOCKS 0700: DNS / DoH / PROXY / SOCKS
0800: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS 0800: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS
0900: PASSWORDS 0900: PASSWORDS / PASSKEYS
1000: DISK AVOIDANCE 1000: DISK AVOIDANCE
1200: HTTPS (SSL/TLS / OCSP / CERTS / HPKP) 1200: HTTPS (SSL/TLS / OCSP / CERTS / HPKP)
1600: REFERERS 1600: REFERERS
@@ -161,12 +161,16 @@ user_pref("network.connectivity-service.enabled", false);
SB has taken many steps to preserve privacy. If required, a full url is never sent SB has taken many steps to preserve privacy. If required, a full url is never sent
to Google, only a part-hash of the prefix, hidden with noise of other real part-hashes. to Google, only a part-hash of the prefix, hidden with noise of other real part-hashes.
Firefox takes measures such as stripping out identifying parameters and since SBv4 (FF57+) Firefox takes measures such as stripping out identifying parameters and since SBv4 (FF57+)
doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity) doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity).
FF147+ uses SBv5 which incorporates Oblivous HTTP [5] and SBv5's local list mode [6]
[1] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/ [1] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/
[2] https://wiki.mozilla.org/Security/Safe_Browsing [2] https://wiki.mozilla.org/Security/Safe_Browsing
[3] https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work [3] https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work
[4] https://educatedguesswork.org/posts/safe-browsing-privacy/ [4] https://educatedguesswork.org/posts/safe-browsing-privacy/
[5] https://developers.google.com/safe-browsing/reference
[6] https://developers.google.com/safe-browsing/reference/Local.List.Mode
***/ ***/
user_pref("_user.js.parrot", "0400 syntax error: the parrot's passed on!"); user_pref("_user.js.parrot", "0400 syntax error: the parrot's passed on!");
/* 0401: disable SB (Safe Browsing) /* 0401: disable SB (Safe Browsing)
@@ -204,9 +208,6 @@ user_pref("network.prefetch-next", false);
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/ * [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
user_pref("network.dns.disablePrefetch", true); user_pref("network.dns.disablePrefetch", true);
user_pref("network.dns.disablePrefetchFromHTTPS", true); user_pref("network.dns.disablePrefetchFromHTTPS", true);
/* 0603: disable predictor / prefetching ***/
user_pref("network.predictor.enabled", false);
user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: false]
/* 0604: disable link-mouseover opening connection to linked server /* 0604: disable link-mouseover opening connection to linked server
* [1] https://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests ***/ * [1] https://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests ***/
user_pref("network.http.speculative-parallel-limit", 0); user_pref("network.http.speculative-parallel-limit", 0);
@@ -285,11 +286,13 @@ user_pref("browser.urlbar.trending.featureGate", false);
/* 0806: disable urlbar suggestions ***/ /* 0806: disable urlbar suggestions ***/
user_pref("browser.urlbar.addons.featureGate", false); // [FF115+] user_pref("browser.urlbar.addons.featureGate", false); // [FF115+]
user_pref("browser.urlbar.amp.featureGate", false); // [FF141+] adMarketplace user_pref("browser.urlbar.amp.featureGate", false); // [FF141+] adMarketplace
user_pref("browser.urlbar.fakespot.featureGate", false); // [FF130+] [DEFAULT: false] user_pref("browser.urlbar.importantDates.featureGate", false); // [FF143+]
user_pref("browser.urlbar.market.featureGate", false); // [FF143+] stock market
user_pref("browser.urlbar.mdn.featureGate", false); // [FF117+] user_pref("browser.urlbar.mdn.featureGate", false); // [FF117+]
user_pref("browser.urlbar.weather.featureGate", false); // [FF108+] user_pref("browser.urlbar.weather.featureGate", false); // [FF108+]
user_pref("browser.urlbar.wikipedia.featureGate", false); // [FF141+] user_pref("browser.urlbar.wikipedia.featureGate", false); // [FF141+]
user_pref("browser.urlbar.yelp.featureGate", false); // [FF124+] user_pref("browser.urlbar.yelp.featureGate", false); // [FF124+]
user_pref("browser.urlbar.yelpRealtime.featureGate", false); // [FF144+]
/* 0807: disable urlbar clipboard suggestions [FF118+] ***/ /* 0807: disable urlbar clipboard suggestions [FF118+] ***/
// user_pref("browser.urlbar.clipboard.featureGate", false); // user_pref("browser.urlbar.clipboard.featureGate", false);
/* 0808: disable recent searches [FF120+] /* 0808: disable recent searches [FF120+]
@@ -323,7 +326,7 @@ user_pref("browser.formfill.enable", false);
user_pref("browser.search.separatePrivateDefault", true); // [FF70+] user_pref("browser.search.separatePrivateDefault", true); // [FF70+]
user_pref("browser.search.separatePrivateDefault.ui.enabled", true); // [FF71+] user_pref("browser.search.separatePrivateDefault.ui.enabled", true); // [FF71+]
/*** [SECTION 0900]: PASSWORDS /*** [SECTION 0900]: PASSWORDS / PASSKEYS
[1] https://support.mozilla.org/kb/use-primary-password-protect-stored-logins-and-pas [1] https://support.mozilla.org/kb/use-primary-password-protect-stored-logins-and-pas
***/ ***/
user_pref("_user.js.parrot", "0900 syntax error: the parrot's expired!"); user_pref("_user.js.parrot", "0900 syntax error: the parrot's expired!");
@@ -349,6 +352,9 @@ user_pref("network.auth.subresource-http-auth-allow", 1);
/* 0907: enforce no automatic authentication on Microsoft sites [FF131+] [MAC] /* 0907: enforce no automatic authentication on Microsoft sites [FF131+] [MAC]
* On macOS, SSO only works on corporate devices ***/ * On macOS, SSO only works on corporate devices ***/
// user_pref("network.http.microsoft-entra-sso.enabled", false); // [DEFAULT: false] // user_pref("network.http.microsoft-entra-sso.enabled", false); // [DEFAULT: false]
/* 0910: enforce no direct attestation in passkeys [FF144+]
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1981587 ***/
user_pref("security.webauthn.always_allow_direct_attestation", false); // [DEFAULT: false]
/*** [SECTION 1000]: DISK AVOIDANCE ***/ /*** [SECTION 1000]: DISK AVOIDANCE ***/
user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!"); user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!");
@@ -388,7 +394,7 @@ user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!");
* but the problem is that the browser can't know that. Setting this pref to true is the only way for the * but the problem is that the browser can't know that. Setting this pref to true is the only way for the
* browser to ensure there will be no unsafe renegotiations on the channel between the browser and the server * browser to ensure there will be no unsafe renegotiations on the channel between the browser and the server
* [SETUP-WEB] SSL_ERROR_UNSAFE_NEGOTIATION: is it worth overriding this for that one site? * [SETUP-WEB] SSL_ERROR_UNSAFE_NEGOTIATION: is it worth overriding this for that one site?
* [STATS] SSL Labs (May 2024) reports over 99.7% of top sites have secure renegotiation [4] * [STATS] SSL Labs (June 2025) reports almost 99.85% of top sites have secure renegotiation [4]
* [1] https://wiki.mozilla.org/Security:Renegotiation * [1] https://wiki.mozilla.org/Security:Renegotiation
* [2] https://datatracker.ietf.org/doc/html/rfc5746 * [2] https://datatracker.ietf.org/doc/html/rfc5746
* [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 * [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555
@@ -402,29 +408,6 @@ user_pref("security.ssl.require_safe_negotiation", true);
* [3] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/ * [3] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/
user_pref("security.tls.enable_0rtt_data", false); user_pref("security.tls.enable_0rtt_data", false);
/** OCSP (Online Certificate Status Protocol)
[1] https://scotthelme.co.uk/revocation-is-broken/
[2] https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/
***/
/* 1211: enforce OCSP fetching to confirm current validity of certificates
* 0=disabled, 1=enabled (default), 2=enabled for EV certificates only
* OCSP (non-stapled) leaks information about the sites you visit to the CA (cert authority)
* It's a trade-off between security (checking) and privacy (leaking info to the CA)
* [NOTE] This pref only controls OCSP fetching and does not affect OCSP stapling
* [SETTING] Privacy & Security>Security>Certificates>Query OCSP responder servers...
* [1] https://en.wikipedia.org/wiki/Ocsp ***/
user_pref("security.OCSP.enabled", 1); // [DEFAULT: 1]
/* 1212: set OCSP fetch failures (non-stapled, see 1211) to hard-fail
* [SETUP-WEB] SEC_ERROR_OCSP_SERVER_ERROR | SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST
* When a CA cannot be reached to validate a cert, Firefox just continues the connection (=soft-fail)
* Setting this pref to true tells Firefox to instead terminate the connection (=hard-fail)
* It is pointless to soft-fail when an OCSP fetch fails: you cannot confirm a cert is still valid (it
* could have been revoked) and/or you could be under attack (e.g. malicious blocking of OCSP servers)
* [1] https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/
* [2] https://www.imperialviolet.org/2014/04/19/revchecking.html
* [3] https://letsencrypt.org/2024/12/05/ending-ocsp/ ***/
user_pref("security.OCSP.require", true);
/** CERTS / HPKP (HTTP Public Key Pinning) ***/ /** CERTS / HPKP (HTTP Public Key Pinning) ***/
/* 1223: enable strict PKP (Public Key Pinning) /* 1223: enable strict PKP (Public Key Pinning)
* 0=disabled, 1=allow user MiTM (default; such as your antivirus), 2=strict * 0=disabled, 1=allow user MiTM (default; such as your antivirus), 2=strict
@@ -433,12 +416,13 @@ user_pref("security.cert_pinning.enforcement_level", 2);
/* 1224: enable CRLite [FF73+] /* 1224: enable CRLite [FF73+]
* 0 = disabled * 0 = disabled
* 1 = consult CRLite but only collect telemetry * 1 = consult CRLite but only collect telemetry
* 2 = consult CRLite and enforce both "Revoked" and "Not Revoked" results * 2 = consult CRLite and enforce both "Revoked" and "Not Revoked" results (default)
* 3 = consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked" (default) * 3 = consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked" (removed FF145)
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1429800,1670985,1753071 * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1429800,1670985,1753071
* [2] https://blog.mozilla.org/security/tag/crlite/ ***/ * [2] https://blog.mozilla.org/security/tag/crlite/
user_pref("security.remote_settings.crlite_filters.enabled", true); // [DEFAULT: true FF137+] * [3] https://hacks.mozilla.org/2025/08/crlite-fast-private-and-comprehensive-certificate-revocation-checking-in-firefox/ ***/
user_pref("security.pki.crlite_mode", 2); user_pref("security.remote_settings.crlite_filters.enabled", true); // [DEFAULT: true]
user_pref("security.pki.crlite_mode", 2); // [DEFAULT: 2 FF142+]
/** MIXED CONTENT ***/ /** MIXED CONTENT ***/
/* 1241: disable insecure passive content (such as images) on https pages ***/ /* 1241: disable insecure passive content (such as images) on https pages ***/
@@ -553,7 +537,8 @@ user_pref("network.IDN_show_punycode", true);
/* 2620: enforce PDFJS, disable PDFJS scripting /* 2620: enforce PDFJS, disable PDFJS scripting
* This setting controls if the option "Display in Firefox" is available in the setting below * This setting controls if the option "Display in Firefox" is available in the setting below
* and by effect controls whether PDFs are handled in-browser or externally ("Ask" or "Open With") * and by effect controls whether PDFs are handled in-browser or externally ("Ask" or "Open With")
* [WHY] pdfjs is lightweight, open source, and secure: the last exploit was June 2015 [1] * [WHY] pdfjs is lightweight, open source, and secure: In the last 10 years it has only had
* two known exploits, both in 2024: one 'Severe' and one 'Important' [1]
* It doesn't break "state separation" of browser content (by not sharing with OS, independent apps). * It doesn't break "state separation" of browser content (by not sharing with OS, independent apps).
* It maintains disk avoidance and application data isolation. It's convenient. You can still save to disk. * It maintains disk avoidance and application data isolation. It's convenient. You can still save to disk.
* [NOTE] JS can still force a pdf to open in-browser by bundling its own code * [NOTE] JS can still force a pdf to open in-browser by bundling its own code
@@ -572,7 +557,7 @@ user_pref("browser.tabs.searchclipboardfor.middleclick", false); // [DEFAULT: fa
user_pref("browser.contentanalysis.enabled", false); // [FF121+] [DEFAULT: false] user_pref("browser.contentanalysis.enabled", false); // [FF121+] [DEFAULT: false]
user_pref("browser.contentanalysis.default_result", 0); // [FF127+] [DEFAULT: 0] user_pref("browser.contentanalysis.default_result", 0); // [FF127+] [DEFAULT: 0]
/* 2635: disable referrer and storage access for resources injected by content scripts [FF139+] ***/ /* 2635: disable referrer and storage access for resources injected by content scripts [FF139+] ***/
// user_pref("privacy.antitracking.isolateContentScriptResources", true); user_pref("privacy.antitracking.isolateContentScriptResources", true);
/* 2640: disable CSP Level 2 Reporting [FF140+] ***/ /* 2640: disable CSP Level 2 Reporting [FF140+] ***/
user_pref("security.csp.reporting.enabled", false); user_pref("security.csp.reporting.enabled", false);
@@ -614,13 +599,19 @@ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin
* [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to add site exceptions: Urlbar>ETP Shield
* [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/
user_pref("browser.contentblocking.category", "strict"); // [HIDDEN PREF] user_pref("browser.contentblocking.category", "strict"); // [HIDDEN PREF]
/* 2702: disable ETP web compat features [FF93+] /* 2702: disable ETP web compat features (about:compat) [FF93+]
* [SETUP-HARDEN] Includes skip lists, heuristics (SmartBlock) and automatic grants * [SETUP-HARDEN] Includes skip lists, heuristics (SmartBlock) and automatic grants
* Opener and redirect heuristics are granted for 30 days, see [3] * Opener and redirect heuristics are granted for 30 days, see [3]
* [1] https://blog.mozilla.org/security/2021/07/13/smartblock-v2/ * [1] https://blog.mozilla.org/security/2021/07/13/smartblock-v2/
* [2] https://hg.mozilla.org/mozilla-central/rev/e5483fd469ab#l4.12 * [2] https://hg.mozilla.org/mozilla-central/rev/e5483fd469ab#l4.12
* [3] https://developer.mozilla.org/docs/Web/Privacy/State_Partitioning#storage_access_heuristics ***/ * [3] https://developer.mozilla.org/docs/Web/Privacy/State_Partitioning#storage_access_heuristics ***/
// user_pref("privacy.antitracking.enableWebcompat", false); // user_pref("privacy.antitracking.enableWebcompat", false);
/* 2705: set ETP Strict/Custom exception lists (FF141+)
[SETTING] Options>Privacy & Security>Enhanced Tracking Protection>Strict/Custom>Fix major [baseline] | minor [convenience]
[1] https://support.mozilla.org/en-US/kb/manage-enhanced-tracking-protection-exceptions
[2] https://etp-exceptions.mozilla.org/ ***/
user_pref("privacy.trackingprotection.allow_list.baseline.enabled", true); // [DEFAULT: true]
user_pref("privacy.trackingprotection.allow_list.convenience.enabled", true); // [DEFAULT: true]
/*** [SECTION 2800]: SHUTDOWN & SANITIZING /*** [SECTION 2800]: SHUTDOWN & SANITIZING
We enable sanitizeOnShutdown to help prevent 1st party website tracking across sessions. We enable sanitizeOnShutdown to help prevent 1st party website tracking across sessions.
@@ -662,7 +653,7 @@ user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true);
/* 2820: set manual "Clear Data" items [SETUP-CHROME] [FF128+] /* 2820: set manual "Clear Data" items [SETUP-CHROME] [FF128+]
* Firefox remembers your last choices. This will reset them when you start Firefox * Firefox remembers your last choices. This will reset them when you start Firefox
* [SETTING] Privacy & Security>Browser Privacy>Cookies and Site Data>Clear Data ***/ * [SETTING] Privacy & Security>Browser Privacy>Cookies and Site Data>Clear Data ***/
user_pref("privacy.clearSiteData.cache", true); user_pref("privacy.clearSiteData.cache", true); // [DEFAULT: true]
user_pref("privacy.clearSiteData.cookiesAndStorage", false); // keep false until it respects "allow" site exceptions user_pref("privacy.clearSiteData.cookiesAndStorage", false); // keep false until it respects "allow" site exceptions
user_pref("privacy.clearSiteData.historyFormDataAndDownloads", false); user_pref("privacy.clearSiteData.historyFormDataAndDownloads", false);
// user_pref("privacy.clearSiteData.siteSettings", false); // user_pref("privacy.clearSiteData.siteSettings", false);
@@ -698,6 +689,7 @@ user_pref("privacy.sanitize.timeSpan", 0);
on a per site basis for compatibility (4004). on a per site basis for compatibility (4004).
https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc
https://support.mozilla.org/en-US/kb/firefox-protection-against-fingerprinting#w_how-does-each-protection-work
[NOTE] RFPTargets + granular overrides are somewhat experimental and may produce unexpected results [NOTE] RFPTargets + granular overrides are somewhat experimental and may produce unexpected results
- e.g. FrameRate can only be controlled per process, not per origin - e.g. FrameRate can only be controlled per process, not per origin
@@ -766,10 +758,6 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
Modifier events suppressed are SHIFT and both ALT keys. Chrome is not affected. Modifier events suppressed are SHIFT and both ALT keys. Chrome is not affected.
1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62) 1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62)
1479239 - return "no-preference" with prefers-reduced-motion (FF63) 1479239 - return "no-preference" with prefers-reduced-motion (FF63)
1363508 & 1826051 & 1957658 - spoof/suppress Pointer Events, spoof maxTouchPoints (FF64, FF132, FF143, ESR140.2)
FF64: maxTouchPoints: 0 = desktop
FF132: maxTouchPoints: 0 = mac | 10 = windows, linux, mobile
FF143/140.2: maxTouchPoints: 0 = mac, linux | 10 = windows | 5 = mobile
1492766 - spoof pointerEvent.pointerid (FF65) 1492766 - spoof pointerEvent.pointerid (FF65)
1485266 - disable exposure of system colors to CSS or canvas (FF67) 1485266 - disable exposure of system colors to CSS or canvas (FF67)
1494034 - return "light" with prefers-color-scheme (FF67) 1494034 - return "light" with prefers-color-scheme (FF67)
@@ -787,6 +775,11 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
1787790 - normalize system fonts (FF128) 1787790 - normalize system fonts (FF128)
1835987 - spoof timezone as Atlantic/Reykjavik (previously FF55+ was UTC) (FF128) 1835987 - spoof timezone as Atlantic/Reykjavik (previously FF55+ was UTC) (FF128)
1656377 - spoof pointerEvents azimuthAngle and altitudeAngle (FF131) 1656377 - spoof pointerEvents azimuthAngle and altitudeAngle (FF131)
1826051 & 1957658 & 2021715 - spoof/suppress Pointer Events, spoof maxTouchPoints (FF132, FF143/ESR140.2, FF150)
previously FF64+ (1363508) it always returned maxTouchPoints as 0
FF132: 0 = mac | 10 = windows, linux, mobile
FF143: 0 = mac, linux | 10 = windows | 5 = mobile | no longer spoof touch PointerEvents | backported to ESR140.2
FF150: 5 = linux
1834307 - always use smooth scrolling (FF132) 1834307 - always use smooth scrolling (FF132)
1918202 - spoof screen orientation based on spoofed screen size and platform (FF132) 1918202 - spoof screen orientation based on spoofed screen size and platform (FF132)
previously FF50+ it always returned landscape-primary and an angle of 0 previously FF50+ it always returned landscape-primary and an angle of 0
@@ -801,8 +794,9 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
1972600 - spoof network connection for HTMLMediaElement preload (FF142, ESR140.1) 1972600 - spoof network connection for HTMLMediaElement preload (FF142, ESR140.1)
1975851 - return true for navigator.onLine (FF142, ESR140.1) 1975851 - return true for navigator.onLine (FF142, ESR140.1)
1973265 - disable WebCodecs API (FF142) 1973265 - disable WebCodecs API (FF142)
1984333 - spoof navigator.hardwareConcurrency as 4 except mac return 8 (FF143+) 1984333 - spoof navigator.hardwareConcurrency as 4 except mac return 8 (FF143)
previously FF55+ it returned 2 previously FF55+ it returned 2
1999126 - enforce navigator.pdfViewerEnabled as true and plugins/mimeTypes as hard-coded values (FF147)
***/ ***/
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs"); user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
/* 4501: enable RFP /* 4501: enable RFP
@@ -947,12 +941,6 @@ user_pref("_user.js.parrot", "5000 syntax error: the parrot's taken 'is last bow
// user_pref("browser.pagethumbnails.capturing_disabled", true); // [HIDDEN PREF] // user_pref("browser.pagethumbnails.capturing_disabled", true); // [HIDDEN PREF]
/* 5020: disable Windows native notifications and use app notications instead [FF111+] [WINDOWS] ***/ /* 5020: disable Windows native notifications and use app notications instead [FF111+] [WINDOWS] ***/
// user_pref("alerts.useSystemBackend.windows.notificationserver.enabled", false); // user_pref("alerts.useSystemBackend.windows.notificationserver.enabled", false);
/* 5021: disable location bar using search
* Don't leak URL typos to a search engine, give an error message instead
* Examples: "secretplace,com", "secretplace/com", "secretplace com", "secret place.com"
* [NOTE] This does not affect explicit user action such as using search buttons in the
* dropdown, or using keyword search shortcuts you configure in options (e.g. "d" for DuckDuckGo) ***/
// user_pref("keyword.enabled", false);
/*** [SECTION 5500]: OPTIONAL HARDENING /*** [SECTION 5500]: OPTIONAL HARDENING
Not recommended. Overriding these can cause breakage and performance issues, Not recommended. Overriding these can cause breakage and performance issues,
@@ -1047,22 +1035,11 @@ user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false]
/* 6012: enforce Quarantined Domains [FF115+] /* 6012: enforce Quarantined Domains [FF115+]
* [WHY] https://support.mozilla.org/kb/quarantined-domains ***/ * [WHY] https://support.mozilla.org/kb/quarantined-domains ***/
user_pref("extensions.quarantinedDomains.enabled", true); // [DEFAULT: true] user_pref("extensions.quarantinedDomains.enabled", true); // [DEFAULT: true]
/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF128+ ***/ /* 6050: prefsCleaner: reset previously active items removed from arkenfox FF140+ ***/
// user_pref("privacy.clearOnShutdown.cache", "");
// user_pref("privacy.clearOnShutdown.cookies", "");
// user_pref("privacy.clearOnShutdown.downloads", "");
// user_pref("privacy.clearOnShutdown.formdata", "");
// user_pref("privacy.clearOnShutdown.history", "");
// user_pref("privacy.clearOnShutdown.offlineApps", "");
// user_pref("privacy.clearOnShutdown.sessions", "");
// user_pref("privacy.cpd.cache", "");
// user_pref("privacy.cpd.cookies", "");
// user_pref("privacy.cpd.formdata", "");
// user_pref("privacy.cpd.history", "");
// user_pref("privacy.cpd.offlineApps", "");
// user_pref("privacy.cpd.sessions", "");
/* 6051: prefsCleaner: reset previously active items removed from arkenfox FF140+ ***/
// user_pref("browser.display.use_system_colors", ""); // user_pref("browser.display.use_system_colors", "");
// user_pref("browser.urlbar.fakespot.featureGate", "");
// user_pref("security.OCSP.enabled", "");
// user_pref("security.OCSP.require", "");
/*** [SECTION 7000]: DON'T BOTHER ***/ /*** [SECTION 7000]: DON'T BOTHER ***/
user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!"); user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!");
@@ -1087,7 +1064,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies
/* 7003: disable non-modern cipher suites [1] /* 7003: disable non-modern cipher suites [1]
* [WHY] Passive fingerprinting. Minimal/non-existent threat of downgrade attacks * [WHY] Passive fingerprinting. Minimal/non-existent threat of downgrade attacks
* [1] https://browserleaks.com/ssl ***/ * [1] https://browserleaks.com/ssl ***/
// user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false); // user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false); // [DEFAULT: false FF150]
// user_pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", false); // user_pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", false);
// user_pref("security.ssl3.ecdhe_rsa_aes_128_sha", false); // user_pref("security.ssl3.ecdhe_rsa_aes_128_sha", false);
// user_pref("security.ssl3.ecdhe_rsa_aes_256_sha", false); // user_pref("security.ssl3.ecdhe_rsa_aes_256_sha", false);
@@ -1133,7 +1110,9 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies
// user_pref("extensions.systemAddon.update.enabled", false); // [FF62+] // user_pref("extensions.systemAddon.update.enabled", false); // [FF62+]
// user_pref("extensions.systemAddon.update.url", ""); // [FF44+] // user_pref("extensions.systemAddon.update.url", ""); // [FF44+]
/* 7015: enable the DNT (Do Not Track) HTTP header /* 7015: enable the DNT (Do Not Track) HTTP header
* [WHY] DNT is enforced with Tracking Protection which is used in ETP Strict (2701) ***/ * [WHY] Fingerprintable. In FF141+ DNT is never enabled. DNT is slated for deprecation [1]
[NOTE] In FF140, DNT is enforced with Tracking Protection which is used in ETP Strict (2701)
[1] https://bugzilla.mozilla.org/1967420 ***/
// user_pref("privacy.donottrackheader.enabled", true); // user_pref("privacy.donottrackheader.enabled", true);
/* 7016: customize ETP settings /* 7016: customize ETP settings
* [NOTE] FPP (fingerprintingProtection) is ignored when RFP (4501) is enabled * [NOTE] FPP (fingerprintingProtection) is ignored when RFP (4501) is enabled
@@ -1173,10 +1152,16 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies
* [WHY] Passive and active fingerprinting. Mostly redundant with Tracking Protection * [WHY] Passive and active fingerprinting. Mostly redundant with Tracking Protection
* in ETP Strict (2701) and sanitizing on close (2800s) ***/ * in ETP Strict (2701) and sanitizing on close (2800s) ***/
// user_pref("privacy.globalprivacycontrol.enabled", true); // user_pref("privacy.globalprivacycontrol.enabled", true);
/* 7022: bFPP (baselineFingerprintingProtection) [FF139+]
* [WHY] Arkenfox only supports ETP Strict (2701) which enables FPP browser-wide (normal and private
* browsing window contexts). If FPP is enabled in the same context as bFPP, FPP takes precedence.
// user_pref("privacy.baselineFingerprintingProtection", true);
// user_pref("privacy.baselineFingerprintingProtection.granularOverrides", "");
// user_pref("privacy.baselineFingerprintingProtection.overrides", "");
/*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING /*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING
[WHY] They are insufficient to help anti-fingerprinting and do more harm than good [WHY] They are insufficient for fingerprinting protection and do more harm than good
[WARNING] DO NOT USE with RFP. RFP already covers these and they can interfere [WARNING] DO NOT USE: they can interfere with built-in solutions such as RFP and FPP
***/ ***/
user_pref("_user.js.parrot", "8000 syntax error: the parrot's crossed the Jordan"); user_pref("_user.js.parrot", "8000 syntax error: the parrot's crossed the Jordan");
/* 8001: prefsCleaner: reset items useless for anti-fingerprinting ***/ /* 8001: prefsCleaner: reset items useless for anti-fingerprinting ***/
@@ -1206,6 +1191,8 @@ user_pref("_user.js.parrot", "8000 syntax error: the parrot's crossed the Jordan
Arkenfox does not consider Firefox telemetry to be a privacy or security concern - comments below. Arkenfox does not consider Firefox telemetry to be a privacy or security concern - comments below.
But since most arkenfox users prefer it disabled, we'll do that rather than cause overrides. But since most arkenfox users prefer it disabled, we'll do that rather than cause overrides.
READ: https://ritter.vg/blog-telemetry.html
Opt-out Opt-out
- Telemetry is essential: a browser engine is a _very_ large complex beast costing billions to maintain - Telemetry is essential: a browser engine is a _very_ large complex beast costing billions to maintain
- Opt-in telemetry _does not_ work and results in data that is unrepresentative and may be misleading - Opt-in telemetry _does not_ work and results in data that is unrepresentative and may be misleading
@@ -1232,7 +1219,7 @@ user_pref("datareporting.policy.dataSubmissionEnabled", false);
/* 8501: disable Health Reports /* 8501: disable Health Reports
* [SETTING] Privacy & Security>Firefox Data Collection and Use>Send technical... data ***/ * [SETTING] Privacy & Security>Firefox Data Collection and Use>Send technical... data ***/
user_pref("datareporting.healthreport.uploadEnabled", false); user_pref("datareporting.healthreport.uploadEnabled", false);
/* 0802: disable telemetry /* 8502: disable telemetry
* The "unified" pref affects the behavior of the "enabled" pref * The "unified" pref affects the behavior of the "enabled" pref
* - If "unified" is false then "enabled" controls the telemetry module * - If "unified" is false then "enabled" controls the telemetry module
* - If "unified" is true then "enabled" only controls whether to record extended data * - If "unified" is true then "enabled" only controls whether to record extended data
@@ -1267,20 +1254,13 @@ user_pref("browser.urlbar.showSearchTerms.enabled", false);
/*** [SECTION 9999]: DEPRECATED / RENAMED ***/ /*** [SECTION 9999]: DEPRECATED / RENAMED ***/
user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is mortal coil!"); user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is mortal coil!");
/* ESR128.x still uses all the following prefs /* ESR140.x still uses all the following prefs
// [NOTE] replace the * with a slash in the line above to re-enable active ones // [NOTE] replace the * with a slash in the line above to re-enable active ones
// FF132 // FF148
// 2617: remove webchannel whitelist // 0603: disable predictor / prefetching
// [-] https://bugzilla.mozilla.org/1275612 // [-] https://bugzilla.mozilla.org/2006028
// user_pref("webchannel.allowObject.urlWhitelist", ""); user_pref("network.predictor.enabled", false); // [DEFAULT: false FF144+]
// FF140 user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: false]
// 0323: disable shopping experience [FF116+]
// [-] https://bugzilla.mozilla.org/1964845
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1840156#c0
user_pref("browser.shopping.experience2023.enabled", false); // [DEFAULT: false]
// 0806: disable urlbar suggestions
// [-] https://bugzilla.mozilla.org/1959497
user_pref("browser.urlbar.pocket.featureGate", false); // [FF116+] [DEFAULT: false]
// ***/ // ***/
/* END: internal custom pref to test for syntax errors ***/ /* END: internal custom pref to test for syntax errors ***/