Skip to content

Commit f906f7f

Browse files
v128 (#1862)
1 parent 11582f9 commit f906f7f

File tree

1 file changed

+69
-53
lines changed

1 file changed

+69
-53
lines changed

user.js

Lines changed: 69 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/******
22
* name: arkenfox user.js
3-
* date: 7 June 2024
4-
* version: 126
3+
* date: 26 August 2024
4+
* version: 128
55
* urls: https://github.com/arkenfox/user.js [repo]
66
* : https://arkenfox.github.io/gui/ [interactive]
77
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
@@ -57,7 +57,7 @@
5757
2700: ETP (ENHANCED TRACKING PROTECTION)
5858
2800: SHUTDOWN & SANITIZING
5959
4000: FPP (fingerprintingProtection)
60-
4500: RFP (resistFingerprinting)
60+
4500: OPTIONAL RFP (resistFingerprinting)
6161
5000: OPTIONAL OPSEC
6262
5500: OPTIONAL HARDENING
6363
6000: DON'T TOUCH
@@ -103,14 +103,9 @@ user_pref("browser.newtabpage.activity-stream.default.sites", "");
103103

104104
/*** [SECTION 0200]: GEOLOCATION ***/
105105
user_pref("_user.js.parrot", "0200 syntax error: the parrot's definitely deceased!");
106-
/* 0201: use Mozilla geolocation service instead of Google if permission is granted [FF74+]
107-
* Optionally enable logging to the console (defaults to false) ***/
108-
user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
109-
// user_pref("geo.provider.network.logging.enabled", true); // [HIDDEN PREF]
110106
/* 0202: disable using the OS's geolocation service ***/
111107
user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
112108
user_pref("geo.provider.use_corelocation", false); // [MAC]
113-
user_pref("geo.provider.use_gpsd", false); // [LINUX] [HIDDEN PREF]
114109
user_pref("geo.provider.use_geoclue", false); // [FF102+] [LINUX]
115110

116111
/*** [SECTION 0300]: QUIETER FOX ***/
@@ -236,7 +231,7 @@ user_pref("network.prefetch-next", false);
236231
/* 0602: disable DNS prefetching
237232
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
238233
user_pref("network.dns.disablePrefetch", true);
239-
// user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true]
234+
user_pref("network.dns.disablePrefetchFromHTTPS", true);
240235
/* 0603: disable predictor / prefetching ***/
241236
user_pref("network.predictor.enabled", false);
242237
user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: false]
@@ -284,7 +279,7 @@ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] [DEFAULT: ""
284279
* [SETTING] Privacy & Security>DNS over HTTPS
285280
* [1] https://hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/
286281
* [2] https://wiki.mozilla.org/Security/DOH-resolver-policy
287-
* [3] https://support.mozilla.org/en-US/kb/firefox-dns-over-https
282+
* [3] https://support.mozilla.org/kb/firefox-dns-over-https
288283
* [4] https://www.eff.org/deeplinks/2020/12/dns-doh-and-odoh-oh-my-year-review-2020 ***/
289284
// user_pref("network.trr.mode", 3);
290285
/* 0712: set DoH provider
@@ -303,13 +298,13 @@ user_pref("browser.urlbar.speculativeConnect.enabled", false);
303298
* [NOTE] The UI is controlled by the .enabled pref
304299
* [SETTING] Search>Address Bar>Suggestions from...
305300
* [1] https://blog.mozilla.org/data/2021/09/15/data-and-firefox-suggest/ ***/
306-
// user_pref("browser.urlbar.quicksuggest.enabled", false); // [FF92+] [DEFAULT: false]
307-
// user_pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); // [FF95+] [DEFAULT: false]
308-
// user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false); // [FF92+] [DEFAULT: false]
301+
user_pref("browser.urlbar.quicksuggest.enabled", false); // [FF92+]
302+
user_pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); // [FF95+]
303+
user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false); // [FF92+]
309304
/* 0803: disable live search suggestions
310305
* [NOTE] Both must be true for live search to work in the location bar
311306
* [SETUP-CHROME] Override these if you trust and use a privacy respecting search engine
312-
* [SETTING] Search>Provide search suggestions | Show search suggestions in address bar results ***/
307+
* [SETTING] Search>Show search suggestions | Show search suggestions in address bar results ***/
313308
user_pref("browser.search.suggest.enabled", false);
314309
user_pref("browser.urlbar.suggest.searches", false);
315310
/* 0805: disable urlbar trending search suggestions [FF118+]
@@ -323,9 +318,13 @@ user_pref("browser.urlbar.weather.featureGate", false); // [FF108+] [DEFAULT: fa
323318
user_pref("browser.urlbar.yelp.featureGate", false); // [FF124+] [DEFAULT: false]
324319
/* 0807: disable urlbar clipboard suggestions [FF118+] ***/
325320
// user_pref("browser.urlbar.clipboard.featureGate", false);
321+
/* 0808: disable recent searches [FF120+]
322+
* [NOTE] Recent searches are cleared with history (2811)
323+
* [1] https://support.mozilla.org/kb/search-suggestions-firefox ***/
324+
// user_pref("browser.urlbar.recentsearches.featureGate", false);
326325
/* 0810: disable search and form history
327-
* [SETUP-WEB] Be aware that autocomplete form data can be read by third parties [1][2]
328326
* [NOTE] We also clear formdata on exit (2811)
327+
* [SETUP-WEB] Be aware that autocomplete form data can be read by third parties [1][2]
329328
* [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history
330329
* [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html
331330
* [2] https://bugzilla.mozilla.org/381681 ***/
@@ -377,8 +376,8 @@ user_pref("network.auth.subresource-http-auth-allow", 1);
377376
/*** [SECTION 1000]: DISK AVOIDANCE ***/
378377
user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!");
379378
/* 1001: disable disk cache
380-
* [SETUP-CHROME] If you think disk cache helps perf, then feel free to override this
381-
* [NOTE] We also clear cache on exit (2811) ***/
379+
* [NOTE] We also clear cache on exit (2811)
380+
* [SETUP-CHROME] If you think disk cache helps perf, then feel free to override this ***/
382381
user_pref("browser.cache.disk.enable", false);
383382
/* 1002: disable media cache from writing to disk in Private Browsing
384383
* [NOTE] MSE (Media Source Extensions) are already stored in-memory in PB ***/
@@ -530,7 +529,7 @@ user_pref("_user.js.parrot", "2000 syntax error: the parrot's snuffed it!");
530529
user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);
531530
/* 2003: force a single network interface for ICE candidates generation [FF42+]
532531
* When using a system-wide proxy, it uses the proxy interface
533-
* [1] https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate
532+
* [1] https://developer.mozilla.org/docs/Web/API/RTCIceCandidate
534533
* [2] https://wiki.mozilla.org/Media/WebRTC/Privacy ***/
535534
user_pref("media.peerconnection.ice.default_address_only", true);
536535
/* 2004: force exclusion of private IPs from ICE candidates [FF51+]
@@ -592,8 +591,10 @@ user_pref("browser.tabs.searchclipboardfor.middleclick", false); // [DEFAULT: fa
592591
/* 2630: disable content analysis by DLP (Data Loss Prevention) agents
593592
* DLP agents are background processes on managed computers that allow enterprises to monitor locally running
594593
* applications for data exfiltration events, which they can allow/block based on customer defined DLP policies.
594+
* 0=Block all requests, 1=Warn on all requests (which lets the user decide), 2=Allow all requests
595595
* [1] https://github.com/chromium/content_analysis_sdk */
596-
user_pref("browser.contentanalysis.default_allow", false); // [FF124+] [DEFAULT: false]
596+
user_pref("browser.contentanalysis.enabled", false); // [FF121+] [DEFAULT: false]
597+
user_pref("browser.contentanalysis.default_result", 0); // [FF127+] [DEFAULT: 0]
597598

598599
/** DOWNLOADS ***/
599600
/* 2651: enable user interaction for security by always asking where to download
@@ -638,12 +639,14 @@ user_pref("browser.contentblocking.category", "strict"); // [HIDDEN PREF]
638639
* Opener and redirect heuristics are granted for 30 days, see [3]
639640
* [1] https://blog.mozilla.org/security/2021/07/13/smartblock-v2/
640641
* [2] https://hg.mozilla.org/mozilla-central/rev/e5483fd469ab#l4.12
641-
* [3] https://developer.mozilla.org/en-US/docs/Web/Privacy/State_Partitioning#storage_access_heuristics ***/
642+
* [3] https://developer.mozilla.org/docs/Web/Privacy/State_Partitioning#storage_access_heuristics ***/
642643
// user_pref("privacy.antitracking.enableWebcompat", false);
643644

644645
/*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/
645646
user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!");
646647
/* 2810: enable Firefox to clear items on shutdown
648+
* [NOTE] In FF129+ clearing "siteSettings" on shutdown (2811), or manually via site data (2820) and
649+
* via history (2830), will no longer remove sanitize on shutdown "cookie and site data" site exceptions (2815)
647650
* [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes | Settings ***/
648651
user_pref("privacy.sanitize.sanitizeOnShutdown", true);
649652

@@ -665,9 +668,8 @@ user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true); // [F
665668

666669
/** SANITIZE ON SHUTDOWN: RESPECTS "ALLOW" SITE EXCEPTIONS FF103+ | v2 migration is FF128+ ***/
667670
/* 2815: set "Cookies" and "Site Data" to clear on shutdown (if 2810 is true) [SETUP-CHROME]
668-
* [NOTE] Exceptions: A "cookie" block permission also controls "offlineApps" (see note below).
669-
* serviceWorkers require an "Allow" permission. For cross-domain logins, add exceptions for
670-
* both sites e.g. https://www.youtube.com (site) + https://accounts.google.com (single sign on)
671+
* [NOTE] Exceptions: A "cookie" permission also controls "offlineApps" (see note below). For cross-domain logins,
672+
* add exceptions for both sites e.g. https://www.youtube.com (site) + https://accounts.google.com (single sign on)
671673
* [NOTE] "offlineApps": Offline Website Data: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache)
672674
* [NOTE] "sessions": Active Logins (has no site exceptions): refers to HTTP Basic Authentication [1], not logins via cookies
673675
* [WARNING] Be selective with what sites you "Allow", as they also disable partitioning (1767271)
@@ -722,7 +724,9 @@ user_pref("privacy.sanitize.timeSpan", 0);
722724
723725
In FF118+ FPP is on by default in private windows (4001) and in FF119+ is controlled
724726
by ETP (2701). FPP will also use Remote Services in future to relax FPP protections
725-
on a per site basis for compatibility (4003).
727+
on a per site basis for compatibility (4004).
728+
729+
https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc
726730
727731
1826408 - restrict fonts to system (kBaseFonts + kLangPackFonts) (Windows, Mac, some Linux)
728732
https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc
@@ -733,19 +737,27 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
733737
* [NOTE] In FF119+, FPP for all modes (7016) is enabled with ETP Strict (2701) ***/
734738
// user_pref("privacy.fingerprintingProtection.pbmode", true); // [DEFAULT: true FF118+]
735739
/* 4002: set global FPP overrides [FF114+]
736-
* Controls what protections FPP uses globally, including "RFPTargets" (despite the name these are
737-
* not used by RFP) e.g. "+AllTargets,-CSSPrefersColorScheme" or "-AllTargets,+CanvasRandomization"
738-
* [NOTE] Be aware that not all RFP protections are necessarily in RFPTargets
739-
* [WARNING] Not recommended. Either use RFP or FPP at defaults
740+
* uses "RFPTargets" [1] which despite the name these are not used by RFP
741+
* e.g. "+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC" = all targets but allow prefers-color-scheme and do not change timezone
742+
* e.g. "-AllTargets,+CanvasRandomization,+JSDateTimeUTC" = no targets but do use FPP canvas and change timezone
743+
* [NOTE] Not supported by arkenfox. Either use RFP or FPP at defaults
740744
* [1] https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/RFPTargets.inc ***/
741745
// user_pref("privacy.fingerprintingProtection.overrides", "");
742-
/* 4003: disable remote FPP overrides [FF127+] ***/
746+
/* 4003: set granular FPP overrides
747+
* JSON format: e.g."[{\"firstPartyDomain\": \"netflix.com\", \"overrides\": \"-CanvasRandomization,-FrameRate,\"}]"
748+
* [NOTE] Not supported by arkenfox. Either use RFP or FPP at defaults ***/
749+
// user_pref("privacy.fingerprintingProtection.granularOverrides", "");
750+
/* 4004: disable remote FPP overrides [FF127+] ***/
743751
// user_pref("privacy.fingerprintingProtection.remoteOverrides.enabled", false);
744752

745-
/*** [SECTION 4500]: RFP (resistFingerprinting)
753+
/*** [SECTION 4500]: OPTIONAL RFP (resistFingerprinting)
746754
RFP overrides FPP (4000)
747755
748-
It is an all-or-nothing buy in: you cannot pick and choose what parts you want
756+
FF128+ Arkenfox by default uses FPP (automatically enabled with ETP Strict). For most people
757+
this is all you need. To use RFP instead, add RFP (4501) to your overrides, and optionally
758+
add letterboxing (4504), spoof_english (4506), and webgl (4520).
759+
760+
RFP is an all-or-nothing buy in: you cannot pick and choose what parts you want
749761
[TEST] https://arkenfox.github.io/TZP/tzp.html
750762
751763
[WARNING] DO NOT USE extensions to alter RFP protected metrics
@@ -800,13 +812,12 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
800812
***/
801813
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
802814
/* 4501: enable RFP
803-
* [SETUP-WEB] RFP can cause some website breakage: mainly canvas, use a canvas site exception via the urlbar.
804-
* RFP also has a few side effects: mainly timezone is UTC, and websites will prefer light theme
805815
* [NOTE] pbmode applies if true and the original pref is false
806-
* [1] https://bugzilla.mozilla.org/418986 ***/
807-
user_pref("privacy.resistFingerprinting", true); // [FF41+]
816+
* [SETUP-WEB] RFP can cause some website breakage: mainly canvas, use a canvas site exception via the urlbar.
817+
* RFP also has a few side effects: mainly that timezone is GMT, and websites will prefer light theme ***/
818+
// user_pref("privacy.resistFingerprinting", true); // [FF41+]
808819
// user_pref("privacy.resistFingerprinting.pbmode", true); // [FF114+]
809-
/* 4502: set new window size rounding max values [FF55+]
820+
/* 4502: set RFP new window size max rounded values [FF55+]
810821
* [SETUP-CHROME] sizes round down in hundreds: width to 200s and height to 100s, to fit your screen
811822
* [1] https://bugzilla.mozilla.org/1330882 ***/
812823
user_pref("privacy.window.maxInnerWidth", 1600);
@@ -815,7 +826,7 @@ user_pref("privacy.window.maxInnerHeight", 900);
815826
* [NOTE] To allow extensions to work on AMO, you also need 2662
816827
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/
817828
user_pref("privacy.resistFingerprinting.block_mozAddonManager", true);
818-
/* 4504: enable RFP letterboxing [FF67+]
829+
/* 4504: enable letterboxing [FF67+]
819830
* Dynamically resizes the inner window by applying margins in stepped ranges [2]
820831
* If you use the dimension pref, then it will only apply those resolutions.
821832
* The format is "width1xheight1, width2xheight2, ..." (e.g. "800x600, 1000x1000")
@@ -824,27 +835,19 @@ user_pref("privacy.resistFingerprinting.block_mozAddonManager", true);
824835
* [WARNING] DO NOT USE: the dimension pref is only meant for testing
825836
* [1] https://bugzilla.mozilla.org/1407366
826837
* [2] https://hg.mozilla.org/mozilla-central/rev/6d2d7856e468#l2.32 ***/
827-
user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
838+
// user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
828839
// user_pref("privacy.resistFingerprinting.letterboxing.dimensions", ""); // [HIDDEN PREF]
829-
/* 4505: experimental RFP [FF91+]
830-
* [WARNING] DO NOT USE unless testing, see [1] comment 12
831-
* [1] https://bugzilla.mozilla.org/1635603 ***/
840+
/* 4505: disable RFP by domain [FF91+] ***/
832841
// user_pref("privacy.resistFingerprinting.exemptedDomains", "*.example.invalid");
833842
/* 4506: disable RFP spoof english prompt [FF59+]
834-
* 0=prompt, 1=disabled, 2=enabled (requires RFP)
843+
* 0=prompt, 1=disabled, 2=enabled
835844
* [NOTE] When changing from value 2, preferred languages ('intl.accept_languages') is not reset.
836845
* [SETUP-WEB] when enabled, sets 'en-US, en' for displaying pages and 'en-US' as locale.
837846
* [SETTING] General>Language>Choose your preferred language for displaying pages>Choose>Request English... ***/
838847
user_pref("privacy.spoof_english", 1);
839848
/* 4510: disable using system colors
840849
* [SETTING] General>Language and Appearance>Fonts and Colors>Colors>Use system colors ***/
841850
user_pref("browser.display.use_system_colors", false); // [DEFAULT: false NON-WINDOWS]
842-
/* 4511: enforce non-native widget theme
843-
* Security: removes/reduces system API calls, e.g. win32k API [1]
844-
* Fingerprinting: provides a uniform look and feel across platforms [2]
845-
* [1] https://bugzilla.mozilla.org/1381938
846-
* [2] https://bugzilla.mozilla.org/1411425 ***/
847-
user_pref("widget.non-native-theme.enabled", true); // [DEFAULT: true]
848851
/* 4512: enforce links targeting new windows to open in a new tab instead
849852
* 1=most recent window or tab, 2=new window, 3=new tab
850853
* Stops malicious window sizes and some screen resolution leaks.
@@ -856,9 +859,8 @@ user_pref("browser.link.open_newwindow", 3); // [DEFAULT: 3]
856859
/* 4513: set all open window methods to abide by "browser.link.open_newwindow" (4512)
857860
* [1] https://searchfox.org/mozilla-central/source/dom/tests/browser/browser_test_new_window_from_content.js ***/
858861
user_pref("browser.link.open_newwindow.restriction", 0);
859-
/* 4520: disable WebGL (Web Graphics Library)
860-
* [SETUP-WEB] If you need it then override it. RFP still randomizes canvas for naive scripts ***/
861-
user_pref("webgl.disabled", true);
862+
/* 4520: disable WebGL (Web Graphics Library) ***/
863+
// user_pref("webgl.disabled", true);
862864

863865
/*** [SECTION 5000]: OPTIONAL OPSEC
864866
Disk avoidance, application data isolation, eyeballs...
@@ -971,7 +973,7 @@ user_pref("_user.js.parrot", "5500 syntax error: this is an ex-parrot!");
971973
* [2] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=asm.js
972974
* [3] https://rh0dev.github.io/blog/2017/the-return-of-the-jit/ ***/
973975
// user_pref("javascript.options.asmjs", false);
974-
/* 5505: disable Ion and baseline JIT to harden against JS exploits
976+
/* 5505: disable Ion and baseline JIT to harden against JS exploits [RESTART]
975977
* [NOTE] When both Ion and JIT are disabled, and trustedprincipals
976978
* is enabled, then Ion can still be used by extensions (1599226)
977979
* [1] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=firefox+jit
@@ -1000,8 +1002,8 @@ user_pref("_user.js.parrot", "5500 syntax error: this is an ex-parrot!");
10001002
/* 5509: disable IPv6 if using a VPN
10011003
* This is an application level fallback. Disabling IPv6 is best done at an OS/network
10021004
* level, and/or configured properly in system wide VPN setups.
1003-
* [SETUP-WEB] PR_CONNECT_RESET_ERROR
10041005
* [NOTE] PHP defaults to IPv6 with "localhost". Use "php -S 127.0.0.1:PORT"
1006+
* [SETUP-WEB] PR_CONNECT_RESET_ERROR
10051007
* [TEST] https://ipleak.org/
10061008
* [1] https://www.internetsociety.org/tag/ipv6-security/ (Myths 2,4,5,6) ***/
10071009
// user_pref("network.dns.disableIPv6", true);
@@ -1047,6 +1049,9 @@ user_pref("extensions.quarantinedDomains.enabled", true); // [DEFAULT: true]
10471049
/* 6050: prefsCleaner: previously active items removed from arkenfox 115-127 ***/
10481050
// user_pref("accessibility.force_disabled", "");
10491051
// user_pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", "");
1052+
// user_pref("geo.provider.network.url", "");
1053+
// user_pref("geo.provider.network.logging.enabled", "");
1054+
// user_pref("geo.provider.use_gpsd", "");
10501055
// user_pref("network.protocol-handler.external.ms-windows-store", "");
10511056
// user_pref("privacy.partition.always_partition_third_party_non_cookie_storage", "");
10521057
// user_pref("privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage", "");
@@ -1261,6 +1266,17 @@ user_pref("browser.ping-centre.telemetry", false);
12611266
// 9003: disable What's New toolbar icon [FF69+]
12621267
// [-] https://bugzilla.mozilla.org/1724300
12631268
user_pref("browser.messaging-system.whatsNewPanel.enabled", false);
1269+
// FF127
1270+
// 2630: disable content analysis by DLP (Data Loss Prevention) agents - replaced by default_result
1271+
// [-] https://bugzilla.mozilla.org/1880314
1272+
user_pref("browser.contentanalysis.default_allow", false);
1273+
// 4511: enforce non-native widget theme
1274+
// Security: removes/reduces system API calls, e.g. win32k API [1]
1275+
// Fingerprinting: provides a uniform look and feel across platforms [2]
1276+
// [1] https://bugzilla.mozilla.org/1381938
1277+
// [2] https://bugzilla.mozilla.org/1411425
1278+
// [-] https://bugzilla.mozilla.org/1848899
1279+
user_pref("widget.non-native-theme.enabled", true); // [DEFAULT: true]
12641280
// ***/
12651281

12661282
/* END: internal custom pref to test for syntax errors ***/

0 commit comments

Comments
 (0)