Skip to content

Commit 9e8ead8

Browse files
v140 (#1945)
1 parent 7f852e9 commit 9e8ead8

File tree

1 file changed

+59
-35
lines changed

1 file changed

+59
-35
lines changed

user.js

Lines changed: 59 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/******
22
* name: arkenfox user.js
3-
* date: 6 March 2025
4-
* version: 135
3+
* date: 14 August 2025
4+
* version: 140
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
@@ -31,7 +31,7 @@
3131
- DON'T wait for arkenfox to update Firefox, nothing major changes these days
3232
* Each release
3333
- run prefsCleaner to reset prefs made inactive, including deprecated (9999)
34-
* ESR
34+
* ESR (Extended Support Release)
3535
- It is recommended to not use the updater, or you will get a later version which may cause issues.
3636
So you should manually append your overrides (and keep a copy), and manually update when you
3737
change ESR releases (arkenfox is already past that release)
@@ -87,17 +87,18 @@ user_pref("_user.js.parrot", "0100 syntax error: the parrot's dead!");
8787
* [SETTING] General>Startup>Restore previous session ***/
8888
user_pref("browser.startup.page", 0);
8989
/* 0103: set HOME+NEWWINDOW page
90-
* about:home=Firefox Home (default, see 0105), custom URL, about:blank
90+
* about:home=Firefox Home (default, see 0105), custom URLs..., Blank Page
9191
* [SETTING] Home>New Windows and Tabs>Homepage and new windows ***/
92-
user_pref("browser.startup.homepage", "about:blank");
92+
user_pref("browser.startup.homepage", "chrome://browser/content/blanktab.html");
9393
/* 0104: set NEWTAB page
9494
* true=Firefox Home (default, see 0105), false=blank page
9595
* [SETTING] Home>New Windows and Tabs>New tabs ***/
9696
user_pref("browser.newtabpage.enabled", false);
9797
/* 0105: disable sponsored content on Firefox Home (Activity Stream)
9898
* [SETTING] Home>Firefox Home Content ***/
99-
user_pref("browser.newtabpage.activity-stream.showSponsored", false); // [FF58+]
100-
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); // [FF83+] Shortcuts>Sponsored shortcuts
99+
user_pref("browser.newtabpage.activity-stream.showSponsored", false); // [FF58+] Sponsored stories
100+
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); // [FF83+] Sponsored shortcuts
101+
user_pref("browser.newtabpage.activity-stream.showSponsoredCheckboxes", false); // [FF140+] Support Firefox
101102
/* 0106: clear default topsites
102103
* [NOTE] This does not block you from adding your own ***/
103104
user_pref("browser.newtabpage.activity-stream.default.sites", "");
@@ -121,11 +122,8 @@ user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
121122
* [SETTING] Privacy & Security>Firefox Data Collection and Use>Allow personalized extension recommendations
122123
* [1] https://support.mozilla.org/kb/personalized-extension-recommendations ***/
123124
user_pref("browser.discovery.enabled", false);
124-
/* 0323: disable shopping experience [FF116+]
125-
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1840156#c0 ***/
126-
user_pref("browser.shopping.experience2023.enabled", false); // [DEFAULT: false]
127125

128-
/** TELEMETRY ***/
126+
/** ACTIVITY STREAM ***/
129127
/* 0335: disable Firefox Home (Activity Stream) telemetry ***/
130128
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
131129
user_pref("browser.newtabpage.activity-stream.telemetry", false);
@@ -285,10 +283,11 @@ user_pref("browser.urlbar.suggest.searches", false);
285283
user_pref("browser.urlbar.trending.featureGate", false);
286284
/* 0806: disable urlbar suggestions ***/
287285
user_pref("browser.urlbar.addons.featureGate", false); // [FF115+]
286+
user_pref("browser.urlbar.amp.featureGate", false); // [FF141+] adMarketplace
288287
user_pref("browser.urlbar.fakespot.featureGate", false); // [FF130+] [DEFAULT: false]
289-
user_pref("browser.urlbar.mdn.featureGate", false); // [FF117+] [HIDDEN PREF]
290-
user_pref("browser.urlbar.pocket.featureGate", false); // [FF116+] [DEFAULT: false]
291-
user_pref("browser.urlbar.weather.featureGate", false); // [FF108+] [DEFAULT: false]
288+
user_pref("browser.urlbar.mdn.featureGate", false); // [FF117+]
289+
user_pref("browser.urlbar.weather.featureGate", false); // [FF108+]
290+
user_pref("browser.urlbar.wikipedia.featureGate", false); // [FF141+]
292291
user_pref("browser.urlbar.yelp.featureGate", false); // [FF124+]
293292
/* 0807: disable urlbar clipboard suggestions [FF118+] ***/
294293
// user_pref("browser.urlbar.clipboard.featureGate", false);
@@ -330,7 +329,7 @@ user_pref("_user.js.parrot", "0900 syntax error: the parrot's expired!");
330329
/* 0903: disable auto-filling username & password form fields
331330
* can leak in cross-site forms *and* be spoofed
332331
* [NOTE] Username & password is still available when you enter the field
333-
* [SETTING] Privacy & Security>Logins and Passwords>Autofill logins and passwords
332+
* [SETTING] Privacy & Security>Passwords>Autofill logins and passwords
334333
* [1] https://freedom-to-tinker.com/2017/12/27/no-boundaries-for-user-identities-web-trackers-exploit-browser-login-managers/
335334
* [2] https://homes.esat.kuleuven.be/~asenol/leaky-forms/ ***/
336335
user_pref("signon.autofillForms", false);
@@ -562,15 +561,19 @@ user_pref("network.IDN_show_punycode", true);
562561
* [1] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pdf.js+firefox ***/
563562
user_pref("pdfjs.disabled", false); // [DEFAULT: false]
564563
user_pref("pdfjs.enableScripting", false); // [FF86+]
565-
/* 2624: disable middle click on new tab button opening URLs or searches using clipboard [FF115+] */
564+
/* 2624: disable middle click on new tab button opening URLs or searches using clipboard [FF115+] ***/
566565
user_pref("browser.tabs.searchclipboardfor.middleclick", false); // [DEFAULT: false NON-LINUX]
567566
/* 2630: disable content analysis by DLP (Data Loss Prevention) agents
568567
* DLP agents are background processes on managed computers that allow enterprises to monitor locally running
569568
* applications for data exfiltration events, which they can allow/block based on customer defined DLP policies.
570569
* 0=Block all requests, 1=Warn on all requests (which lets the user decide), 2=Allow all requests
571-
* [1] https://github.com/chromium/content_analysis_sdk */
570+
* [1] https://github.com/chromium/content_analysis_sdk ***/
572571
user_pref("browser.contentanalysis.enabled", false); // [FF121+] [DEFAULT: false]
573572
user_pref("browser.contentanalysis.default_result", 0); // [FF127+] [DEFAULT: 0]
573+
/* 2635: disable referrer and storage access for resources injected by content scripts [FF139+] ***/
574+
// user_pref("privacy.antitracking.isolateContentScriptResources", true);
575+
/* 2640: disable CSP Level 2 Reporting [FF140+] ***/
576+
user_pref("security.csp.reporting.enabled", false);
574577

575578
/** DOWNLOADS ***/
576579
/* 2651: enable user interaction for security by always asking where to download
@@ -633,7 +636,7 @@ user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true); // [D
633636
// user_pref("privacy.clearOnShutdown_v2.siteSettings", false); // [DEFAULT: false]
634637
/* 2812: set/enforce clearOnShutdown items [FF136+] ***/
635638
user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", true); // [DEFAULT: true]
636-
user_pref("privacy.clearOnShutdown_v2.downloads", true);
639+
user_pref("privacy.clearOnShutdown_v2.downloads", true); // [HIDDEN]
637640
user_pref("privacy.clearOnShutdown_v2.formdata", true);
638641
/* 2813: set Session Restore to clear on shutdown (if 2810 is true) [FF34+]
639642
* [NOTE] Not needed if Session Restore is not used (0102) or it is already cleared with history (2811+)
@@ -693,9 +696,15 @@ user_pref("privacy.sanitize.timeSpan", 0);
693696
[NOTE] RFPTargets + granular overrides are somewhat experimental and may produce unexpected results
694697
- e.g. FrameRate can only be controlled per process, not per origin
695698
696-
1826408 - restrict fonts to system (kBaseFonts + kLangPackFonts) (Windows, Mac, some Linux)
699+
1826408 - restrict to system fonts (kBaseFonts + kLangPackFonts) (Windows, Mac, some Linux) (FF119+)
700+
1928705: android (FF134+)
697701
https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc
698702
1858181 - subtly randomize canvas per eTLD+1, per session and per window-mode (FF120+)
703+
1887682 - use fdlibm's sin, cos and tan in jsmath (FF134+)
704+
1978414 - various (FF143+)
705+
1954194: available screen resolution: return a fixed offset height from screen per platform when not full screen
706+
1978414: hardwareConcurrency: return 2 (existing RFPTarget)
707+
1977836: maxTouchPoints: return multi-touch as 5
699708
***/
700709
user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
701710
/* 4001: enable FPP in PB mode [FF114+]
@@ -720,7 +729,7 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
720729
721730
FF128+ Arkenfox by default uses FPP (automatically enabled with ETP Strict). For most people
722731
this is all you need. To use RFP instead, add RFP (4501) to your overrides, and optionally
723-
add letterboxing (4504), spoof_english (4506), and webgl (4520).
732+
add letterboxing (4504), spoof_english (4506), and WebGL (4520).
724733
725734
RFP is an all-or-nothing buy in: you cannot pick and choose what parts you want
726735
@@ -730,8 +739,8 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
730739
1360039 - spoof navigator.hardwareConcurrency as 2 (FF55)
731740
FF56
732741
1333651 - spoof User Agent & Navigator API
733-
JS: spoofed as Windows 10, OS 10.15, Android 10, or Linux
734-
HTTP Header: spoofed as Windows 10 or Android 10.15 until FF136 then matches JS spoof
742+
JS: spoofed as Windows 10, OS X 10.15, Android 10, or Linux
743+
HTTP Header: spoofed as Windows 10 or Android 10 until FF136 then matches JS spoof
735744
1369319 - disable device sensor API
736745
1369357 - disable site specific zoom
737746
1337161 - hide gamepads from content
@@ -750,7 +759,6 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
750759
1222285 & 1433592 - spoof keyboard events and suppress keyboard modifier events (FF59)
751760
Spoofing mimics the content language of the document. Currently it only supports en-US.
752761
Modifier events suppressed are SHIFT and both ALT keys. Chrome is not affected.
753-
1337157 - disable WebGL debug renderer info (FF60)
754762
1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62)
755763
1479239 - return "no-preference" with prefers-reduced-motion (FF63)
756764
1363508 & 1826051 - spoof/suppress Pointer Events (FF64, FF132)
@@ -765,19 +773,25 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
765773
1653987 - limit font visibility to bundled and "Base Fonts" (Windows, Mac, some Linux) (FF80)
766774
1461454 - spoof smooth=true and powerEfficient=false for supported media in MediaCapabilities (FF82)
767775
531915 - use fdlibm's sin, cos and tan in jsmath (FF93, ESR91.1)
768-
1756280 - enforce navigator.pdfViewerEnabled as true and plugins/mimeTypes as hard-coded values (FF100-115)
769776
1692609 - reduce JS timing precision to 16.67ms (previously FF55+ was 100ms) (FF102)
770777
1422237 - return "srgb" with color-gamut (FF110)
771778
1794628 - return "none" with inverted-colors (FF114)
772779
1787790 - normalize system fonts (FF128)
773780
1835987 - spoof timezone as Atlantic/Reykjavik (previously FF55+ was UTC) (FF128)
774781
1834307 - always use smooth scrolling (FF132)
775782
1918202 - spoof screen orientation based on spoofed screen size and platform (FF132)
776-
previously it always returned landscape-primary and an angle of 0 (FF50+)
783+
previously FF50+ it always returned landscape-primary and an angle of 0
777784
1390465 - load all subtitles in WebVTT (Video Text Tracks) (FF133)
778785
1873382 - make spoofed devicePixelRatio and CSS media queries match (FF133)
779786
previously FF41+ devicePixelRatio was hardcoded as 1 and FF127+ as 2
780787
previously FF41+ CSS media queries were spoofed as zoom level at a devicePixelRatio of 1
788+
1955425 - return 128 for WebGPU subgroupMaxSize (FF138)
789+
1966860 - spoof WebGL debug renderer info (FF140)
790+
previously FF60+ it was disabled
791+
1781277 - return 10GiB for storage estimate until persistent-storage granted (FF142, ESR140.1)
792+
1972600 - spoof network connection for HTMLMediaElement preload (FF142, ESR140.1)
793+
1975851 - return true for navigator.onLine (FF142, ESR140.1)
794+
1973265 - disable WebCodecs API (FF142?)
781795
***/
782796
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
783797
/* 4501: enable RFP
@@ -799,23 +813,26 @@ user_pref("privacy.resistFingerprinting.block_mozAddonManager", true);
799813
* Dynamically resizes the inner window by applying margins in stepped ranges [2]
800814
* If you use the dimension pref, then it will only apply those resolutions.
801815
* The format is "width1xheight1, width2xheight2, ..." (e.g. "800x600, 1000x1000")
802-
* [SETUP-WEB] This is independent of RFP (4501). If you're not using RFP, or you are but
803-
* dislike the margins, then flip this pref, keeping in mind that it is effectively fingerprintable
816+
* [SETUP-WEB] This is independent of RFP (4501). If you're using RFP, but dislike the
817+
* margins, then don't enable this pref, keeping in mind that it is effectively fingerprintable
804818
* [WARNING] DO NOT USE: the dimension pref is only meant for testing
805819
* [1] https://bugzilla.mozilla.org/1407366
806820
* [2] https://hg.mozilla.org/mozilla-central/rev/7211cb4f58ff#l5.13 ***/
807821
// user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
808822
// user_pref("privacy.resistFingerprinting.letterboxing.dimensions", ""); // [HIDDEN PREF]
809823
/* 4505: disable RFP by domain [FF91+]
810-
* [NOTE] Working examples: "arkenfox.github.io", "*github.io"
811-
* Non-working examples: "https://arkenfox.github.io", "github.io", "*arkenfox.github.io" ***/
824+
* [NOTE]: The pref takes comma separated values: e.g. "*domain1.tld, *domain2.tld"
825+
* Working domain examples: "arkenfox.github.io", "*github.io"
826+
* Non-working domain examples: "https://arkenfox.github.io", "github.io", "*arkenfox.github.io" ***/
812827
// user_pref("privacy.resistFingerprinting.exemptedDomains", "*.example.invalid");
813828
/* 4506: disable RFP spoof english prompt [FF59+]
814829
* 0=prompt, 1=disabled, 2=enabled
815830
* [NOTE] When changing from value 2, preferred languages ('intl.accept_languages') is not reset.
816831
* [SETUP-WEB] when enabled, sets 'en-US, en' for displaying pages and 'en-US' as locale.
817832
* [SETTING] General>Language>Choose your preferred language for displaying pages>Choose>Request English... ***/
818833
user_pref("privacy.spoof_english", 1);
834+
/* 4507: skip browser.startup.blankWindow if RFP is used [FF136+] ***/
835+
// user_pref("privacy.resistFingerprinting.skipEarlyBlankFirstPaint", true); // [DEFAULT: true]
819836
/* 4510: disable using system colors
820837
* [SETTING] General>Language and Appearance>Fonts and Colors>Colors>Use system colors ***/
821838
user_pref("browser.display.use_system_colors", false); // [DEFAULT: false NON-WINDOWS]
@@ -964,7 +981,7 @@ user_pref("_user.js.parrot", "5500 syntax error: this is an ex-parrot!");
964981
// user_pref("javascript.options.wasm", false);
965982
/* 5507: disable rendering of SVG OpenType fonts ***/
966983
// user_pref("gfx.font_rendering.opentype_svg.enabled", false);
967-
/* 5508: disable all DRM content (EME: Encryption Media Extension)
984+
/* 5508: disable all DRM (Digital Rights Management) content (EME: Encryption Media Extension)
968985
* Optionally hide the UI setting which also disables the DRM prompt
969986
* [SETTING] General>DRM Content>Play DRM-controlled content
970987
* [TEST] https://bitmovin.com/demos/drm
@@ -1016,7 +1033,7 @@ user_pref("security.tls.version.enable-deprecated", false); // [DEFAULT: false]
10161033
* [WHY] To prevent wasting Mozilla's time with a custom setup ***/
10171034
user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false]
10181035
/* 6012: enforce Quarantined Domains [FF115+]
1019-
* [WHY] https://support.mozilla.org/kb/quarantined-domains */
1036+
* [WHY] https://support.mozilla.org/kb/quarantined-domains ***/
10201037
user_pref("extensions.quarantinedDomains.enabled", true); // [DEFAULT: true]
10211038
/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF128+ ***/
10221039
// user_pref("privacy.clearOnShutdown.cache", "");
@@ -1120,7 +1137,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies
11201137
// user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true]
11211138
// user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true]
11221139
/* 7017: disable service workers
1123-
* [WHY] Already isolated with TCP (2701) behind a pref (2710) ***/
1140+
* [WHY] Already isolated with TCP (2701) behind a pref ***/
11241141
// user_pref("dom.serviceWorkers.enabled", false);
11251142
/* 7018: disable Web Notifications [FF22+]
11261143
* [WHY] Web Notifications are behind a prompt (7002)
@@ -1166,7 +1183,6 @@ user_pref("_user.js.parrot", "8000 syntax error: the parrot's crossed the Jordan
11661183
// user_pref("general.platform.override", "");
11671184
// user_pref("general.useragent.override", "");
11681185
// user_pref("media.navigator.enabled", "");
1169-
// user_pref("media.ondevicechange.enabled", "");
11701186
// user_pref("media.video_stats.enabled", "");
11711187
// user_pref("media.webspeech.synth.enabled", "");
11721188
// user_pref("ui.use_standins_for_native_colors", "");
@@ -1181,7 +1197,7 @@ user_pref("_user.js.parrot", "8000 syntax error: the parrot's crossed the Jordan
11811197
- Opt-in telemetry _does not_ work and results in data that is unrepresentative and may be misleading
11821198
Choice
11831199
- Every new profile on first use provides data collection/use policy and the abillty to opt-out
1184-
- It can be disabled at any time (Settings>Privacy & Security>Data Collection and Use)
1200+
- It can be disabled at any time (Settings>Privacy & Security>Data Collection and Use)
11851201
Data
11861202
- no PII (Personally Identifiable Information)
11871203
- can be viewed in about:telemetry
@@ -1240,9 +1256,17 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is m
12401256
/* ESR128.x still uses all the following prefs
12411257
// [NOTE] replace the * with a slash in the line above to re-enable active ones
12421258
// FF132
1243-
/* 2617: remove webchannel whitelist
1259+
// 2617: remove webchannel whitelist
12441260
// [-] https://bugzilla.mozilla.org/1275612
12451261
// user_pref("webchannel.allowObject.urlWhitelist", "");
1262+
// FF140
1263+
// 0323: disable shopping experience [FF116+]
1264+
// [-] https://bugzilla.mozilla.org/1964845
1265+
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1840156#c0
1266+
user_pref("browser.shopping.experience2023.enabled", false); // [DEFAULT: false]
1267+
// 0806: disable urlbar suggestions
1268+
// [-] https://bugzilla.mozilla.org/1959497
1269+
user_pref("browser.urlbar.pocket.featureGate", false); // [FF116+] [DEFAULT: false]
12461270
// ***/
12471271

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

0 commit comments

Comments
 (0)