From 7d68a3297147d7878a14defe0d10a560252d7fd3 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 25 Oct 2021 17:41:16 +0000 Subject: [PATCH 001/219] start 94-alpha - and remove obsolete ESR78 notations - note: we leave the deprecated ESR78.x section and item 6050 until v95 so users upgrading to ESR91 can easily reset those prefs with prefsCleaner --- user.js | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/user.js b/user.js index 4e297a5..7aa3002 100644 --- a/user.js +++ b/user.js @@ -1,7 +1,7 @@ /****** * name: arkenfox user.js -* date: 12 October 2021 -* version 93 +* date: 25 October 2021 +* version 94-alpha * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt @@ -31,10 +31,8 @@ * It is best to use the arkenfox release that is optimized for and matches your Firefox version * EVERYONE: each release - run prefsCleaner to reset prefs made inactive, including deprecated (9999s) - ESR78 - - If you are not using arkenfox v78... (not a definitive list) - - 1244: HTTPS-Only mode is enabled - - 4511: non-native widget theme is enforced + ESR91 + - If you are not using arkenfox v91... (not a definitive list) - 9999: switch the appropriate deprecated section(s) back on * INDEX: @@ -104,7 +102,7 @@ user_pref("browser.newtab.preload", false); * [SETTING] Home>Firefox Home Content>... to show/hide what you want ***/ user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); user_pref("browser.newtabpage.activity-stream.telemetry", false); -user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); // [DEFAULT: false FF89+] +user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); // [DEFAULT: false] user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); user_pref("browser.newtabpage.activity-stream.showSponsored", false); @@ -127,7 +125,7 @@ user_pref("geo.provider.use_gpsd", false); // [LINUX] /* 0203: disable region updates * [1] https://firefox-source-docs.mozilla.org/toolkit/modules/toolkit_modules/Region.html ***/ user_pref("browser.region.network.url", ""); // [FF78+] -user_pref("browser.region.update.enabled", false); // [[FF79+] +user_pref("browser.region.update.enabled", false); // [FF79+] /* 0204: set search region * [NOTE] May not be hidden if Firefox has changed your settings due to your region (0203) ***/ // user_pref("browser.search.region", "US"); // [HIDDEN PREF] @@ -321,13 +319,12 @@ user_pref("network.proxy.socks_remote_dns", true); * [SETUP-CHROME] Can break extensions for profiles on network shares * [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/26424 ***/ user_pref("network.file.disable_unc_paths", true); // [HIDDEN PREF] -/* 0704: disable GIO as a potential proxy bypass vector +/* 0704: disable GIO as a potential proxy bypass vector [FF60+] * Gvfs/GIO has a set of supported protocols like obex, network, archive, computer, dav, cdda, * gphoto2, trash, etc. By default only smb and sftp protocols are accepted so far (as of FF64) * [1] https://bugzilla.mozilla.org/1433507 - * [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/23044 - * [3] https://en.wikipedia.org/wiki/GVfs - * [4] https://en.wikipedia.org/wiki/GIO_(software) ***/ + * [2] https://en.wikipedia.org/wiki/GVfs + * [3] https://en.wikipedia.org/wiki/GIO_(software) ***/ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] /* 0705: disable DNS-over-HTTPS (DoH) rollout [FF60+] * 0=off by default, 2=TRR (Trusted Recursive Resolver) first, 3=TRR only, 5=explicitly off @@ -729,7 +726,6 @@ user_pref("dom.popup_allowed_events", "click dblclick mousedown pointerdown"); /*** [SECTION 2600]: MISCELLANEOUS ***/ user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!"); /* 2601: prevent accessibility services from accessing your browser [RESTART] - * [SETTING] Privacy & Security>Permissions>Prevent accessibility services from accessing your browser (FF80 or lower) * [1] https://support.mozilla.org/kb/accessibility-services ***/ user_pref("accessibility.force_disabled", 1); /* 2602: disable sending additional analytics to web servers @@ -981,14 +977,13 @@ user_pref("privacy.firstparty.isolate", true); 418986 - limit window.screen & CSS media queries (FF41) [TEST] https://arkenfox.github.io/TZP/tzp.html#screen 1281949 - spoof screen orientation (FF50) - 1281963 - hide contents of navigator.plugins and navigator.mimeTypes (FF50-88) 1330890 - spoof timezone as UTC0 (FF55) 1360039 - spoof navigator.hardwareConcurrency as 2 (FF55) 1217238 - reduce precision of time exposed by javascript (FF55) FF56 1369303 - spoof/disable performance API 1333651 - spoof User Agent & Navigator API - JS: FF91+ the version is spoofed as ESR, and the OS as Windows 10, OS 10.15, Android 10, or Linux + JS: the version is spoofed as ESR, and the OS as Windows 10, OS 10.15, Android 10, or Linux HTTP Headers: spoofed as Windows or Android 1369319 - disable device sensor API 1369357 - disable site specific zoom @@ -1001,8 +996,6 @@ user_pref("privacy.firstparty.isolate", true); 1217290 & 1409677 - enable some fingerprinting resistance for WebGL 1382545 - reduce fingerprinting in Animation API 1354633 - limit MediaError.message to a whitelist - 1382533 & 1697680 - enable fingerprinting resistance for Presentation API (FF57-87) - Blocks exposure of local IP Addresses via mDNS (Multicast DNS) FF58-90 967895 - spoof canvas and enable site permission prompt (FF58) 1372073 - spoof/block fingerprinting in MediaDevices API (FF59) @@ -1072,7 +1065,7 @@ user_pref("browser.display.use_system_colors", false); // [DEFAULT: false] * Fingerprinting: provides a uniform look and feel across platforms [2] * [1] https://bugzilla.mozilla.org/1381938 * [2] https://bugzilla.mozilla.org/1411425 ***/ -user_pref("widget.non-native-theme.enabled", true); // [DEFAULT: true FF89+] +user_pref("widget.non-native-theme.enabled", true); // [DEFAULT: true] /* 4512: enforce links targeting new windows to open in a new tab instead * 1=most recent window or tab, 2=new window, 3=new tab * Stops malicious window sizes and some screen resolution leaks. @@ -1215,12 +1208,12 @@ user_pref("security.csp.enable", true); // [DEFAULT: true] user_pref("security.dialog_enable_delay", 1000); // [DEFAULT: 1000] /* 6005: enforce window.opener protection [FF65+] * Makes rel=noopener implicit for target=_blank in anchor and area elements when no rel attribute is set ***/ -user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true FF79+] +user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true] /* 6006: enforce "window.name" protection [FF82+] * If a new page from another domain is loaded into a tab, then window.name is set to an empty string. The original * string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks * [TEST] https://arkenfox.github.io/TZP/tests/windownamea.html ***/ -user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true FF86+] +user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] /* 6050: prefsCleaner: reset previously active items removed from arkenfox in 79-91 ***/ // user_pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); // user_pref("browser.send_pings.require_same_host", ""); @@ -1291,7 +1284,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies /* 7008: set the default Referrer Policy [FF59+] * 0=no-referer, 1=same-origin, 2=strict-origin-when-cross-origin, 3=no-referrer-when-downgrade * [WHY] Defaults are fine. They can be overridden by a site-controlled Referrer Policy ***/ - // user_pref("network.http.referer.defaultPolicy", 2); // [DEFAULT: 2 FF87+] + // user_pref("network.http.referer.defaultPolicy", 2); // [DEFAULT: 2] // user_pref("network.http.referer.defaultPolicy.pbmode", 2); // [DEFAULT: 2] /* 7009: disable HTTP2 * [WHY] Passive fingerprinting. ~50% of sites use HTTP2 [1] From 094356e0739bfeae95775384d45cb01f7132c9f1 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 25 Oct 2021 20:56:18 +0000 Subject: [PATCH 002/219] 0706: add reference --- user.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 7aa3002..553bea9 100644 --- a/user.js +++ b/user.js @@ -335,8 +335,9 @@ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] * [4] https://www.eff.org/deeplinks/2020/12/dns-doh-and-odoh-oh-my-year-review-2020 ***/ // user_pref("network.trr.mode", 5); /* 0706: disable proxy direct failover for system requests [FF91+] - * [WARNING] Default true is a security feature against malicious extensions - * [SETUP-CHROME] If you use a proxy and you trust your extensions ***/ + * [WARNING] Default true is a security feature against malicious extensions [1] + * [SETUP-CHROME] If you use a proxy and you trust your extensions + * [1] https://blog.mozilla.org/security/2021/10/25/securing-the-proxy-api-for-firefox-add-ons/ ***/ // user_pref("network.proxy.failover_direct", false); /*** [SECTION 0800]: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS ***/ From ba92918d38757e858ed0dd98e2f6367dfe87b51a Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 26 Oct 2021 10:16:42 +0000 Subject: [PATCH 003/219] don't disable system addon updates, closes #1251 --- user.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 553bea9..e1476e7 100644 --- a/user.js +++ b/user.js @@ -161,9 +161,6 @@ user_pref("app.update.background.scheduling.enabled", false); /* 0306: disable search engine updates (e.g. OpenSearch) * [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/ user_pref("browser.search.update", false); -/* 0307: disable System Add-on updates ***/ -user_pref("extensions.systemAddon.update.enabled", false); // [FF62+] -user_pref("extensions.systemAddon.update.url", ""); // [FF44+] /** RECOMMENDATIONS ***/ /* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/ @@ -1311,6 +1308,10 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies * [WHY] Fingerprintable. Breakage. Cut/copy/paste require user * interaction, and paste is limited to focused editable fields ***/ // user_pref("dom.event.clipboardevents.enabled", false); +/* 7014: disable System Add-on updates + * [WHY] It can compromise security. System addons ship with prefs, use those ***/ + // user_pref("extensions.systemAddon.update.enabled", false); // [FF62+] + // user_pref("extensions.systemAddon.update.url", ""); // [FF44+] /*** [SECTION 8000]: DON'T BOTHER: NON-RFP [WHY] They are insufficient to help anti-fingerprinting and do more harm than good From 15158974496806e8ee9564d0b36fe0cbbb0f869f Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 2 Nov 2021 16:07:42 +0000 Subject: [PATCH 004/219] default changes --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index e1476e7..7133ca4 100644 --- a/user.js +++ b/user.js @@ -1294,7 +1294,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies /* 7010: disable HTTP Alternative Services [FF37+] * [WHY] Already isolated by network partitioning (FF85+) or FPI ***/ // user_pref("network.http.altsvc.enabled", false); - // user_pref("network.http.altsvc.oe", false); + // user_pref("network.http.altsvc.oe", false); // [DEFAULT: false FF94+] /* 7011: disable website control over browser right-click context menu * [WHY] Just use Shift-Right-Click ***/ // user_pref("dom.event.contextmenu.enabled", false); @@ -1355,7 +1355,7 @@ user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switc // user_pref("startup.homepage_welcome_url.additional", ""); // user_pref("startup.homepage_override_url", ""); // What's New page after updates /* WARNINGS ***/ - // user_pref("browser.tabs.warnOnClose", false); + // user_pref("browser.tabs.warnOnClose", false); // [DEFAULT false FF94+] // user_pref("browser.tabs.warnOnCloseOtherTabs", false); // user_pref("browser.tabs.warnOnOpen", false); // user_pref("full-screen-api.warning.delay", 0); From 0f8217ad60c7284b8b0539246260088e982edf98 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 4 Nov 2021 16:18:35 +0000 Subject: [PATCH 005/219] cleanup sanitizing-on-close prefs --- user.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 7133ca4..dc5a65c 100644 --- a/user.js +++ b/user.js @@ -898,7 +898,7 @@ user_pref("privacy.clearOnShutdown.formdata", true); // Form & Search History user_pref("privacy.clearOnShutdown.history", true); // Browsing & Download History user_pref("privacy.clearOnShutdown.offlineApps", true); // Offline Website Data user_pref("privacy.clearOnShutdown.sessions", true); // Active Logins -user_pref("privacy.clearOnShutdown.siteSettings", false); // Site Preferences + // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] Site Preferences /* 2804: reset default items to clear with Ctrl-Shift-Del (to match 2803) [SETUP-CHROME] * This dialog can also be accessed from the menu History>Clear Recent History * Firefox remembers your last choices. This will reset them when you start Firefox @@ -910,9 +910,9 @@ user_pref("privacy.cpd.cookies", true); user_pref("privacy.cpd.formdata", true); // Form & Search History user_pref("privacy.cpd.history", true); // Browsing & Download History user_pref("privacy.cpd.offlineApps", true); // Offline Website Data -user_pref("privacy.cpd.passwords", false); // this is not listed + // user_pref("privacy.cpd.passwords", false); // [DEFAULT: false] this is not listed user_pref("privacy.cpd.sessions", true); // Active Logins -user_pref("privacy.cpd.siteSettings", false); // Site Preferences + // user_pref("privacy.cpd.siteSettings", false); // [DEFAULT: false] Site Preferences /* 2805: clear Session Restore data when sanitizing on shutdown or manually [FF34+] * [NOTE] Not needed if Session Restore is not used (0102) or is already cleared with history (2803) * [NOTE] privacy.clearOnShutdown.openWindows prevents resuming from crashes (also see 5008) From bd59131d3e56b9fdafe7aa7b5889106bb9f484a9 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 4 Nov 2021 22:38:16 +0000 Subject: [PATCH 006/219] default changes, missed one --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index dc5a65c..f2b2ff4 100644 --- a/user.js +++ b/user.js @@ -1055,9 +1055,9 @@ user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF] * When default true this no longer masks the RFP chrome resizing activity * [1] https://bugzilla.mozilla.org/1448423 ***/ user_pref("browser.startup.blankWindow", false); -/* 4510: enforce no system colors +/* 4510: disable using system colors * [SETTING] General>Language and Appearance>Fonts and Colors>Colors>Use system colors ***/ -user_pref("browser.display.use_system_colors", false); // [DEFAULT: false] +user_pref("browser.display.use_system_colors", false); /* 4511: enforce non-native widget theme * Security: removes/reduces system API calls, e.g. win32k API [1] * Fingerprinting: provides a uniform look and feel across platforms [2] From 17beb468f1ce5acf1438e17f7ed9490a5377f45c Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 4 Nov 2021 22:44:23 +0000 Subject: [PATCH 007/219] tweak 1510 default info --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index f2b2ff4..bc2d1d5 100644 --- a/user.js +++ b/user.js @@ -1057,7 +1057,7 @@ user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF] user_pref("browser.startup.blankWindow", false); /* 4510: disable using system colors * [SETTING] General>Language and Appearance>Fonts and Colors>Colors>Use system colors ***/ -user_pref("browser.display.use_system_colors", false); +user_pref("browser.display.use_system_colors", false); // [DEFAULT false NON-WINDOWS] /* 4511: enforce non-native widget theme * Security: removes/reduces system API calls, e.g. win32k API [1] * Fingerprinting: provides a uniform look and feel across platforms [2] From f8932dced142ec5ea633bfb163bfc7579ac38a07 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 7 Nov 2021 06:48:45 +0000 Subject: [PATCH 008/219] remove ambiguous line The point was that google have said (stated in policy, but fuck knows where that is located these days) that it is anonymized and not used for tracking. It's an API used by **_4 billion devices_** - the API has privacy policies for use. If a whistleblower or someone else found out that google was using this to enhance their user profiling, then all hell would break loose. And they don't even need this to fuel their ad revenue. It is provided, gratis, to the web to help ensure security - they wouldn't dare taint it and get it caught up in a privacy scandal involving **+4 billion devices_**. And in all this time (since 2007), there has been no such whistleblower or proof it is used to track or announcements by google of changes to the contrary. Anyway, a quick search brings up - Here is their policy - https://www.google.com/intl/en_us/privacy/browsing.html - it's empty and points to - https://www.google.com/intl/en/chrome/privacy/ - and if you scroll down to "Safe Browsing practices" it doesn't say anything about privacy policies for the API itself (or the owner of the API) - it just spells out what happens in chrome - I'm not going to bother to look any further and find a history of policy changes Anyway, this is Firefox and hashes are part hashes bundled with other real hashes - and we turned off real time binary checks. So this line can fuck the fuck off. It was meant to reassure those who want the security of real-time binary checks, that privacy "shouldn't" be an issue, but I'm not going to expand on it --- user.js | 1 - 1 file changed, 1 deletion(-) diff --git a/user.js b/user.js index bc2d1d5..68d5560 100644 --- a/user.js +++ b/user.js @@ -242,7 +242,6 @@ user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false] 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+) doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity) - FWIW, Google also swear it is anonymized and only used to flag malicious sites. [1] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/ [2] https://wiki.mozilla.org/Security/Safe_Browsing From e2e7f9c64704ab75a22a5efd911af3845a0fefdf Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 16 Nov 2021 11:56:20 +0000 Subject: [PATCH 009/219] font vis changes (#1275) --- user.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index 68d5560..ec57b4a 100644 --- a/user.js +++ b/user.js @@ -582,12 +582,15 @@ user_pref("security.insecure_connection_text.enabled", true); // [FF60+] user_pref("_user.js.parrot", "1400 syntax error: the parrot's bereft of life!"); /* 1401: disable rendering of SVG OpenType fonts ***/ user_pref("gfx.font_rendering.opentype_svg.enabled", false); -/* 1402: limit font visibility (Windows, Mac, some Linux) [FF79+] - * [NOTE] In FF80+ RFP ignores the pref and uses value 1 +/* 1402: limit font visibility (Windows, Mac, some Linux) [FF94+] * Uses hardcoded lists with two parts: kBaseFonts + kLangPackFonts [1], bundled fonts are auto-allowed + * In normal windows: uses the first applicable: RFP (4506) over TP over Standard + * In Private Browsing windows: uses the most restrictive between normal and private * 1=only base system fonts, 2=also fonts from optional language packs, 3=also user-installed fonts * [1] https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc ***/ - // user_pref("layout.css.font-visibility.level", 1); + // user_pref("layout.css.font-visibility.private", 1); + // user_pref("layout.css.font-visibility.standard", 1); + // user_pref("layout.css.font-visibility.trackingprotection", 1); /*** [SECTION 1600]: HEADERS / REFERERS Expect some breakage e.g. banks: use an extension if you need precise control @@ -1050,7 +1053,9 @@ user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF] * [1] https://bugzilla.mozilla.org/1635603 ***/ // user_pref("privacy.resistFingerprinting.exemptedDomains", "*.example.invalid"); // user_pref("privacy.resistFingerprinting.testGranularityMask", 0); -/* 4506: disable showing about:blank as soon as possible during startup [FF60+] +/* 4506: set RFP's font visibility level (1402) [FF94+] ***/ + // user_pref("layout.css.font-visibility.resistFingerprinting", 1); +/* 4507: disable showing about:blank as soon as possible during startup [FF60+] * When default true this no longer masks the RFP chrome resizing activity * [1] https://bugzilla.mozilla.org/1448423 ***/ user_pref("browser.startup.blankWindow", false); @@ -1405,6 +1410,10 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is m // 7003: disable non-modern cipher suites // [-] https://bugzilla.mozilla.org/1724072 // user_pref("security.ssl3.rsa_des_ede3_sha", false); // 3DES +// FF94 +// 1402: limit font visibility (Windows, Mac, some Linux) [FF79+] - replaced by new 1402 + // [-] https://bugzilla.mozilla.org/1715507 + // user_pref("layout.css.font-visibility.level", 1); // ***/ /* ESR78.x still uses all the following prefs From 2f88ca2e40351211d95e21a52aec0eae364a26f8 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 18 Nov 2021 01:28:21 +0000 Subject: [PATCH 010/219] misc - move DoH so it has room to grow - tidy privacy.clearOnShutdown, privacy.cpd --- user.js | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/user.js b/user.js index ec57b4a..048cc8d 100644 --- a/user.js +++ b/user.js @@ -322,7 +322,12 @@ user_pref("network.file.disable_unc_paths", true); // [HIDDEN PREF] * [2] https://en.wikipedia.org/wiki/GVfs * [3] https://en.wikipedia.org/wiki/GIO_(software) ***/ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] -/* 0705: disable DNS-over-HTTPS (DoH) rollout [FF60+] +/* 0705: disable proxy direct failover for system requests [FF91+] + * [WARNING] Default true is a security feature against malicious extensions [1] + * [SETUP-CHROME] If you use a proxy and you trust your extensions + * [1] https://blog.mozilla.org/security/2021/10/25/securing-the-proxy-api-for-firefox-add-ons/ ***/ + // user_pref("network.proxy.failover_direct", false); +/* 0710: disable DNS-over-HTTPS (DoH) rollout [FF60+] * 0=off by default, 2=TRR (Trusted Recursive Resolver) first, 3=TRR only, 5=explicitly off * see "doh-rollout.home-region": USA Feb 2020, Canada July 2021 [3] * [1] https://hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/ @@ -330,11 +335,6 @@ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] * [3] https://blog.mozilla.org/mozilla/news/firefox-by-default-dns-over-https-rollout-in-canada/ * [4] https://www.eff.org/deeplinks/2020/12/dns-doh-and-odoh-oh-my-year-review-2020 ***/ // user_pref("network.trr.mode", 5); -/* 0706: disable proxy direct failover for system requests [FF91+] - * [WARNING] Default true is a security feature against malicious extensions [1] - * [SETUP-CHROME] If you use a proxy and you trust your extensions - * [1] https://blog.mozilla.org/security/2021/10/25/securing-the-proxy-api-for-firefox-add-ons/ ***/ - // user_pref("network.proxy.failover_direct", false); /*** [SECTION 0800]: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS ***/ user_pref("_user.js.parrot", "0800 syntax error: the parrot's ceased to be!"); @@ -887,33 +887,33 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" /* 2802: enable Firefox to clear items on shutdown (2803) * [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes ***/ user_pref("privacy.sanitize.sanitizeOnShutdown", true); -/* 2803: set what items to clear on shutdown (if 2802 is true) [SETUP-CHROME] +/* 2803: set/enforce what items to clear on shutdown (if 2802 is true) [SETUP-CHROME] * [NOTE] If "history" is true, downloads will also be cleared - * [NOTE] Active Logins: does not refer to logins via cookies, but rather HTTP Basic Authentication [1] - * [NOTE] Offline Website Data: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache) + * [NOTE] "sessions": Active Logins: refers to HTTP Basic Authentication [1], not logins via cookies + * [NOTE] "offlineApps": Offline Website Data: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache) * [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes>Settings * [1] https://en.wikipedia.org/wiki/Basic_access_authentication ***/ -user_pref("privacy.clearOnShutdown.cache", true); -user_pref("privacy.clearOnShutdown.cookies", true); -user_pref("privacy.clearOnShutdown.downloads", true); // see note above -user_pref("privacy.clearOnShutdown.formdata", true); // Form & Search History -user_pref("privacy.clearOnShutdown.history", true); // Browsing & Download History -user_pref("privacy.clearOnShutdown.offlineApps", true); // Offline Website Data -user_pref("privacy.clearOnShutdown.sessions", true); // Active Logins +user_pref("privacy.clearOnShutdown.cache", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.cookies", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.downloads", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.formdata", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.history", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.sessions", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.offlineApps", true); // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] Site Preferences /* 2804: reset default items to clear with Ctrl-Shift-Del (to match 2803) [SETUP-CHROME] * This dialog can also be accessed from the menu History>Clear Recent History * Firefox remembers your last choices. This will reset them when you start Firefox * [NOTE] Regardless of what you set "downloads" to, as soon as the dialog * for "Clear Recent History" is opened, it is synced to the same as "history" ***/ -user_pref("privacy.cpd.cache", true); -user_pref("privacy.cpd.cookies", true); +user_pref("privacy.cpd.cache", true); // [DEFAULT: true] +user_pref("privacy.cpd.cookies", true); // [DEFAULT: true] +user_pref("privacy.cpd.formdata", true); // [DEFAULT: true] +user_pref("privacy.cpd.history", true); // [DEFAULT: true] +user_pref("privacy.cpd.sessions", true); // [DEFAULT: true] +user_pref("privacy.cpd.offlineApps", true); // user_pref("privacy.cpd.downloads", true); // not used, see note above -user_pref("privacy.cpd.formdata", true); // Form & Search History -user_pref("privacy.cpd.history", true); // Browsing & Download History -user_pref("privacy.cpd.offlineApps", true); // Offline Website Data // user_pref("privacy.cpd.passwords", false); // [DEFAULT: false] this is not listed -user_pref("privacy.cpd.sessions", true); // Active Logins // user_pref("privacy.cpd.siteSettings", false); // [DEFAULT: false] Site Preferences /* 2805: clear Session Restore data when sanitizing on shutdown or manually [FF34+] * [NOTE] Not needed if Session Restore is not used (0102) or is already cleared with history (2803) From 34bd3c5a0409bc21f339794e602aa343afdd50e7 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 22 Nov 2021 05:40:49 +0000 Subject: [PATCH 011/219] consolidate/simplify sanitizing, fixes #1256 move all sanitizing on exit prefs into 2800 switch to cookie lifetime as session - now users can utilize exceptions (as allow) - session cookies still block service workers (which we disable anyway) - we still block 3rd party cookies (until we move to dFPI) - we still have defense in depth for 3rd party cookies with 2803 - we still bulk sanitize offlineApps on exit: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache) - i.e you get to keep the cookies only IF you add an exception add `privacy.clearsitedata.cache.enabled` --- user.js | 74 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/user.js b/user.js index 048cc8d..3176eaa 100644 --- a/user.js +++ b/user.js @@ -16,7 +16,7 @@ * There are often trade-offs and conflicts between security vs privacy vs anti-fingerprinting and these need to be balanced against functionality & convenience & breakage * Some site breakage and unintended consequences will happen. Everyone's experience will differ - e.g. some user data is erased on close (section 2800), change this to suit your needs + e.g. some user data is erased on exit (section 2800), change this to suit your needs * While not 100% definitive, search for "[SETUP" tags e.g. third party images/videos not loading on some sites? check 1601 * Take the wiki link in step 2 and read the Troubleshooting entry @@ -55,7 +55,7 @@ 2400: DOM (DOCUMENT OBJECT MODEL) 2600: MISCELLANEOUS 2700: PERSISTENT STORAGE - 2800: SHUTDOWN + 2800: SHUTDOWN & SANITIZING 4000: FPI (FIRST PARTY ISOLATION) 4500: RFP (RESIST FINGERPRINTING) 5000: OPTIONAL OPSEC @@ -85,7 +85,7 @@ user_pref("_user.js.parrot", "0100 syntax error: the parrot's dead!"); user_pref("browser.shell.checkDefaultBrowser", false); /* 0102: set startup page [SETUP-CHROME] * 0=blank, 1=home, 2=last visited page, 3=resume previous session - * [NOTE] Session Restore is cleared with history (2803, 2804), and not used in Private Browsing mode + * [NOTE] Session Restore is cleared with history (2811, 2812), and not used in Private Browsing mode * [SETTING] General>Startup>Restore previous session ***/ user_pref("browser.startup.page", 0); /* 0103: set HOME+NEWWINDOW page @@ -380,7 +380,7 @@ user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false); // user_pref("browser.urlbar.suggest.engines", false); /* 0810: disable search and form history * [SETUP-WEB] Be aware that autocomplete form data can be read by third parties [1][2] - * [NOTE] We also clear formdata on exit (2803) + * [NOTE] We also clear formdata on exit (2811) * [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history * [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html * [2] https://bugzilla.mozilla.org/381681 ***/ @@ -398,7 +398,7 @@ user_pref("extensions.formautofill.heuristics.enabled", false); // [FF55+] /* 0820: disable coloring of visited links * [SETUP-HARDEN] Bulk rapid history sniffing was mitigated in 2010 [1][2]. Slower and more expensive * redraw timing attacks were largely mitigated in FF77+ [3]. Using RFP (4501) further hampers timing - * attacks. Don't forget clearing history on close (2803). However, social engineering [2#limits][4][5] + * attacks. Don't forget clearing history on exit (2811). However, social engineering [2#limits][4][5] * and advanced targeted timing attacks could still produce usable results * [1] https://developer.mozilla.org/docs/Web/CSS/Privacy_and_the_:visited_selector * [2] https://dbaron.org/mozilla/visited-privacy @@ -439,7 +439,7 @@ user_pref("network.http.windows-sso.enabled", false); // [DEFAULT: false] user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!"); /* 1001: disable disk cache * [SETUP-CHROME] If you think disk cache helps perf, then feel free to override this - * [NOTE] We also clear cache on exit (2803) ***/ + * [NOTE] We also clear cache on exit (2811) ***/ user_pref("browser.cache.disk.enable", false); /* 1002: disable media cache from writing to disk in Private Browsing * [NOTE] MSE (Media Source Extensions) are already stored in-memory in PB @@ -838,17 +838,6 @@ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin * [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ ***/ user_pref("network.cookie.cookieBehavior", 1); user_pref("browser.contentblocking.category", "custom"); -/* 2702: set third-party cookies (if enabled, see 2701) to session-only - * [NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and - * .nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones - * [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ ***/ -user_pref("network.cookie.thirdparty.sessionOnly", true); -user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+] -/* 2703: delete cookies and site data on close - * 0=keep until they expire (default), 2=keep until you close Firefox - * [NOTE] The setting below is disabled (but not changed) if you block all cookies (2701 = 2) - * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed ***/ - // user_pref("network.cookie.lifetimePolicy", 2); /* 2710: enable Enhanced Tracking Protection (ETP) in all windows * [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Tracking content * [SETTING] to add site exceptions: Urlbar>ETP Shield @@ -859,7 +848,7 @@ user_pref("privacy.trackingprotection.socialtracking.enabled", true); // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] /* 2740: disable service worker cache and cache storage - * [NOTE] We clear service worker cache on exit (2803) + * [NOTE] We clear service worker cache on exit (2811) * [1] https://w3c.github.io/ServiceWorker/#privacy ***/ // user_pref("dom.caches.enabled", false); /* 2750: disable Storage API [FF51+] @@ -876,52 +865,67 @@ user_pref("privacy.trackingprotection.socialtracking.enabled", true); /* 2760: enable Local Storage Next Generation (LSNG) [FF65+] ***/ user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] -/*** [SECTION 2800]: SHUTDOWN - * Sanitizing on shutdown is all or nothing. It does not use Managed Exceptions under - Privacy & Security>Delete cookies and site data when Firefox is closed (1681701) - * If you want to keep some sites' cookies (exception as "Allow") and optionally other site - data but clear all the rest on close, then you need to set the "cookie" and optionally the - "offlineApps" prefs below to false, and to set the cookie lifetime pref to 2 (2703) -***/ +/*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!"); -/* 2802: enable Firefox to clear items on shutdown (2803) +/** COOKIES + SITE DATA : ALLOWS EXCEPTIONS ***/ +/* 2801: delete cookies and site data on exit + * 0=keep until they expire (default), 2=keep until you close Firefox + * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed + * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow + * If using FPI the syntax must be https://example.com/^firstPartyDomain=example.com + * [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Settings ***/ +user_pref("network.cookie.lifetimePolicy", 2); +/* 2802: delete cache on exit [FF96+] + * [NOTE] We already disable disk cache (1001) and clear on exit (2811) which is more robust + * [1] https://bugzilla.mozilla.org/1671182 ***/ + // user_pref("privacy.clearsitedata.cache.enabled", true); +/* 2803: set third-party cookies to session-only + * [NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and + * .nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones + * [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ ***/ +user_pref("network.cookie.thirdparty.sessionOnly", true); +user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+] + +/** SANITIZE ON SHUTDOWN : ALL OR NOTHING ***/ +/* 2810: enable Firefox to clear items on shutdown (2811) * [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes ***/ user_pref("privacy.sanitize.sanitizeOnShutdown", true); -/* 2803: set/enforce what items to clear on shutdown (if 2802 is true) [SETUP-CHROME] +/* 2811: set/enforce what items to clear on shutdown (if 2810 is true) [SETUP-CHROME] + * sanitizingOnShutdown is all or nothing, it does not allow exceptions (1681701) * [NOTE] If "history" is true, downloads will also be cleared * [NOTE] "sessions": Active Logins: refers to HTTP Basic Authentication [1], not logins via cookies * [NOTE] "offlineApps": Offline Website Data: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache) * [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes>Settings * [1] https://en.wikipedia.org/wiki/Basic_access_authentication ***/ user_pref("privacy.clearOnShutdown.cache", true); // [DEFAULT: true] -user_pref("privacy.clearOnShutdown.cookies", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.downloads", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.formdata", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.history", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.sessions", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.cookies", false); user_pref("privacy.clearOnShutdown.offlineApps", true); // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] Site Preferences -/* 2804: reset default items to clear with Ctrl-Shift-Del (to match 2803) [SETUP-CHROME] +/* 2812: reset default items to clear with Ctrl-Shift-Del (to match 2811) [SETUP-CHROME] * This dialog can also be accessed from the menu History>Clear Recent History * Firefox remembers your last choices. This will reset them when you start Firefox * [NOTE] Regardless of what you set "downloads" to, as soon as the dialog * for "Clear Recent History" is opened, it is synced to the same as "history" ***/ user_pref("privacy.cpd.cache", true); // [DEFAULT: true] -user_pref("privacy.cpd.cookies", true); // [DEFAULT: true] user_pref("privacy.cpd.formdata", true); // [DEFAULT: true] user_pref("privacy.cpd.history", true); // [DEFAULT: true] user_pref("privacy.cpd.sessions", true); // [DEFAULT: true] +user_pref("privacy.cpd.cookies", false); user_pref("privacy.cpd.offlineApps", true); // user_pref("privacy.cpd.downloads", true); // not used, see note above // user_pref("privacy.cpd.passwords", false); // [DEFAULT: false] this is not listed // user_pref("privacy.cpd.siteSettings", false); // [DEFAULT: false] Site Preferences -/* 2805: clear Session Restore data when sanitizing on shutdown or manually [FF34+] - * [NOTE] Not needed if Session Restore is not used (0102) or is already cleared with history (2803) +/* 2813: clear Session Restore data when sanitizing on shutdown or manually [FF34+] + * [NOTE] Not needed if Session Restore is not used (0102) or it is already cleared with history (2811) * [NOTE] privacy.clearOnShutdown.openWindows prevents resuming from crashes (also see 5008) * [NOTE] privacy.cpd.openWindows has a bug that causes an additional window to open ***/ // user_pref("privacy.clearOnShutdown.openWindows", true); // user_pref("privacy.cpd.openWindows", true); -/* 2806: reset default "Time range to clear" for "Clear Recent History" (2804) +/* 2814: reset default "Time range to clear" for "Clear Recent History" (2812) * Firefox remembers your last choice. This will reset the value when you start Firefox * 0=everything, 1=last hour, 2=last two hours, 3=last four hours, 4=today * [NOTE] Values 5 (last 5 minutes) and 6 (last 24 hours) are not listed in the dropdown, @@ -1117,7 +1121,7 @@ user_pref("_user.js.parrot", "5000 syntax error: the parrot's taken 'is last bow /* 5006: disable favicons in history and bookmarks * [NOTE] Stored as data blobs in favicons.sqlite, these don't reveal anything that your * actual history (and bookmarks) already do. Your history is more detailed, so - * control that instead; e.g. disable history, clear history on close, use PB mode + * control that instead; e.g. disable history, clear history on exit, use PB mode * [NOTE] favicons.sqlite is sanitized on Firefox close ***/ // user_pref("browser.chrome.site_icons", false); /* 5007: exclude "Undo Closed Tabs" in Session Restore ***/ @@ -1141,7 +1145,7 @@ user_pref("_user.js.parrot", "5000 syntax error: the parrot's taken 'is last bow * [1] https://support.mozilla.org/kb/address-bar-autocomplete-firefox#w_url-autocomplete ***/ // user_pref("browser.urlbar.autoFill", false); /* 5013: disable browsing and download history - * [NOTE] We also clear history and downloads on exit (2803) + * [NOTE] We also clear history and downloads on exit (2811) * [SETTING] Privacy & Security>History>Custom Settings>Remember browsing and download history ***/ // user_pref("places.history.enabled", false); /* 5014: disable Windows jumplist [WINDOWS] ***/ From c9e4cac618acc2ed935676f73b0933378d923596 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 22 Nov 2021 18:08:07 +0000 Subject: [PATCH 012/219] tweak webRTC webRTC will be overhauled... but not today... in the meantime - remove dead link before @dngray has a hernia - correctly refer to the type of IP leak --- user.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index 3176eaa..84de010 100644 --- a/user.js +++ b/user.js @@ -632,11 +632,10 @@ user_pref("privacy.userContext.ui.enabled", true); /*** [SECTION 2000]: PLUGINS / MEDIA / WEBRTC ***/ user_pref("_user.js.parrot", "2000 syntax error: the parrot's snuffed it!"); /* 2001: disable WebRTC (Web Real-Time Communication) - * [SETUP-WEB] WebRTC can leak your IP address from behind your VPN, but if this is not - * in your threat model, and you want Real-Time Communication, this is the pref for you - * [1] https://www.privacytools.io/#webrtc ***/ + * [SETUP-WEB] WebRTC can leak your private network address from behind your VPN, but if this + * is not your threat model, and you want Real-Time Communication, this is the pref for you ***/ user_pref("media.peerconnection.enabled", false); -/* 2002: limit WebRTC IP leaks if using WebRTC +/* 2002: limit WebRTC private network address leaks * In FF70+ these settings match Mode 4 (Mode 3 in older versions) [3] * [TEST] https://browserleaks.com/webrtc * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1189041,1297416,1452713 From 6b351a9458a307bfa37d0e61c7434a616f4de006 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 22 Nov 2021 18:15:53 +0000 Subject: [PATCH 013/219] fixup trade-offs anti-fingerprinting doesn't fit here: it's not a major component or priority of this user.js, and only a few prefs outside RFP (as a robust built-in browser solution that defeats naive scripts) have anything to do with it --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 84de010..10f9857 100644 --- a/user.js +++ b/user.js @@ -13,7 +13,7 @@ * https://github.com/arkenfox/user.js/wiki 3. If you skipped step 2, return to step 2 4. Make changes - * There are often trade-offs and conflicts between security vs privacy vs anti-fingerprinting + * There are often trade-offs and conflicts between security vs privacy vs anti-tracking and these need to be balanced against functionality & convenience & breakage * Some site breakage and unintended consequences will happen. Everyone's experience will differ e.g. some user data is erased on exit (section 2800), change this to suit your needs From 58d0161b67540dbf418e9bac39e2eaa2becfc169 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 23 Nov 2021 07:05:01 +0000 Subject: [PATCH 014/219] add warnOnQuitShortcut, closes #1270 --- user.js | 1 + 1 file changed, 1 insertion(+) diff --git a/user.js b/user.js index 10f9857..80d0bf1 100644 --- a/user.js +++ b/user.js @@ -1365,6 +1365,7 @@ user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switc // user_pref("browser.tabs.warnOnClose", false); // [DEFAULT false FF94+] // user_pref("browser.tabs.warnOnCloseOtherTabs", false); // user_pref("browser.tabs.warnOnOpen", false); + // user_pref("browser.tabs.warnOnQuitShortcut", false); // [FF94+] // user_pref("full-screen-api.warning.delay", 0); // user_pref("full-screen-api.warning.timeout", 0); /* APPEARANCE ***/ From cbfb8abf1544c3e87f412f64a9747bd1dea4a705 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 23 Nov 2021 07:11:43 +0000 Subject: [PATCH 015/219] 94 final --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 80d0bf1..c8f88fe 100644 --- a/user.js +++ b/user.js @@ -1,7 +1,7 @@ /****** * name: arkenfox user.js -* date: 25 October 2021 -* version 94-alpha +* date: 23 November 2021 +* version 94 * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt From 6027aaa45ddaf3072d7675364a58bea9bb08440a Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 23 Nov 2021 12:02:50 +0000 Subject: [PATCH 016/219] fixup warnOnQuitShortcut --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index c8f88fe..2be91c2 100644 --- a/user.js +++ b/user.js @@ -1365,7 +1365,7 @@ user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switc // user_pref("browser.tabs.warnOnClose", false); // [DEFAULT false FF94+] // user_pref("browser.tabs.warnOnCloseOtherTabs", false); // user_pref("browser.tabs.warnOnOpen", false); - // user_pref("browser.tabs.warnOnQuitShortcut", false); // [FF94+] + // user_pref("browser.warnOnQuitShortcut", false); // [FF94+] // user_pref("full-screen-api.warning.delay", 0); // user_pref("full-screen-api.warning.timeout", 0); /* APPEARANCE ***/ From 4b393b9b1220481bf544153893995ba2e4bff7d8 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 24 Nov 2021 01:09:10 +0000 Subject: [PATCH 017/219] start 95-alpha --- user.js | 88 ++++----------------------------------------------------- 1 file changed, 6 insertions(+), 82 deletions(-) diff --git a/user.js b/user.js index 2be91c2..639e164 100644 --- a/user.js +++ b/user.js @@ -1,7 +1,7 @@ /****** * name: arkenfox user.js -* date: 23 November 2021 -* version 94 +* date: 24 November 2021 +* version 95-alpha * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt @@ -442,8 +442,7 @@ user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is m * [NOTE] We also clear cache on exit (2811) ***/ user_pref("browser.cache.disk.enable", false); /* 1002: disable media cache from writing to disk in Private Browsing - * [NOTE] MSE (Media Source Extensions) are already stored in-memory in PB - * [SETUP-WEB] ESR78: playback might break on subsequent loading (1650281) ***/ + * [NOTE] MSE (Media Source Extensions) are already stored in-memory in PB ***/ user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); // [FF75+] user_pref("media.memory_cache_max_size", 65536); /* 1003: disable storing extra session data [SETUP-CHROME] @@ -1219,23 +1218,8 @@ user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true] * string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks * [TEST] https://arkenfox.github.io/TZP/tests/windownamea.html ***/ user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] -/* 6050: prefsCleaner: reset previously active items removed from arkenfox in 79-91 ***/ - // user_pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); - // user_pref("browser.send_pings.require_same_host", ""); - // user_pref("dom.allow_cut_copy", ""); - // user_pref("dom.vibrator.enabled", ""); - // user_pref("media.getusermedia.audiocapture.enabled", ""); - // user_pref("media.getusermedia.browser.enabled", ""); - // user_pref("media.getusermedia.screensharing.enabled", ""); - // user_pref("media.gmp-widevinecdm.visible", ""); - // user_pref("network.http.redirection-limit", ""); - // user_pref("privacy.partition.network_state", ""); - // user_pref("security.insecure_connection_icon.enabled", ""); // [DEFAULT: true FF70+] - // user_pref("security.mixed_content.block_active_content", ""); // [DEFAULT: true since at least FF60] - // user_pref("security.ssl.enable_ocsp_stapling", ""); // [DEFAULT: true FF26+] - // user_pref("webgl.disable-fail-if-major-performance-caveat", ""); // [DEFAULT: true FF86+] - // user_pref("webgl.enable-webgl2", ""); - // user_pref("webgl.min_capability_mode", ""); +/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF91+ ***/ + // placeholder /*** [SECTION 7000]: DON'T BOTHER ***/ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!"); @@ -1404,7 +1388,7 @@ user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", // user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR) /*** [SECTION 9999]: DEPRECATED / REMOVED / LEGACY / RENAMED - Documentation denoted as [-]. Items deprecated in FF78 or earlier have been archived at [1] + Documentation denoted as [-]. Items deprecated prior to FF91 have been archived at [1] [1] https://github.com/arkenfox/user.js/issues/123 ***/ user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is mortal coil!"); @@ -1420,65 +1404,5 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is m // user_pref("layout.css.font-visibility.level", 1); // ***/ -/* ESR78.x still uses all the following prefs -// [NOTE] replace the * with a slash in the line above to re-enable them -// FF79 -// 0212: enforce fallback text encoding to match en-US - // When the content or server doesn't declare a charset the browser will - // fallback to the "Current locale" based on your application language - // [TEST] https://hsivonen.com/test/moz/check-charset.htm - // [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/20025 - // [-] https://bugzilla.mozilla.org/1603712 -user_pref("intl.charset.fallback.override", "windows-1252"); -// FF82 -// 0206: disable geographically specific results/search engines e.g. "browser.search.*.US" - // i.e. ignore all of Mozilla's various search engines in multiple locales - // [-] https://bugzilla.mozilla.org/1619926 -user_pref("browser.search.geoSpecificDefaults", false); -user_pref("browser.search.geoSpecificDefaults.url", ""); -// FF86 -// 1205: disable SSL Error Reporting - // [1] https://firefox-source-docs.mozilla.org/main/65.0/browser/base/sslerrorreport/preferences.html - // [-] https://bugzilla.mozilla.org/1681839 -user_pref("security.ssl.errorReporting.automatic", false); -user_pref("security.ssl.errorReporting.enabled", false); -user_pref("security.ssl.errorReporting.url", ""); -// 2653: disable hiding mime types (Options>General>Applications) not associated with a plugin - // [-] https://bugzilla.mozilla.org/1581678 -user_pref("browser.download.hide_plugins_without_extensions", false); -// FF87 -// 0105d: disable Activity Stream recent Highlights in the Library [FF57+] - // [-] https://bugzilla.mozilla.org/1689405 - // user_pref("browser.library.activity-stream.enabled", false); -// 8002: disable PointerEvents - // [1] https://developer.mozilla.org/docs/Web/API/PointerEvent - // [-] https://bugzilla.mozilla.org/1688105 - // user_pref("dom.w3c_pointer_events.enabled", false); -// FF89 -// 0309: disable sending Flash crash reports - // [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed] -user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false); -// 0310: disable sending the URL of the website where a plugin crashed - // [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed] -user_pref("dom.ipc.plugins.reportCrashURL", false); -// 1243: block unencrypted requests from Flash on encrypted pages to mitigate MitM attacks [FF59+] - // [1] https://bugzilla.mozilla.org/1190623 - // [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed] -user_pref("security.mixed_content.block_object_subrequest", true); -// 1803: disable Flash plugin - // 0=deactivated, 1=ask, 2=enabled - // ESR52.x is the last branch to fully support NPAPI, FF52+ stable only supports Flash - // [NOTE] You can still override individual sites via site permissions - // [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed] -user_pref("plugin.state.flash", 0); // [DEFAULT: 1] -// FF90 -// 0708: disable FTP [FF60+] - // [-] https://bugzilla.mozilla.org/1574475 - // user_pref("network.ftp.enabled", false); // [DEFAULT: false FF88+] -// 7001: enforce no offline cache storage (appCache) [FF71+] - // [-] https://bugzilla.mozilla.org/1694662 -user_pref("browser.cache.offline.storage.enable", false); // [DEFAULT: false FF84+] -// ***/ - /* END: internal custom pref to test for syntax errors ***/ user_pref("_user.js.parrot", "SUCCESS: No no he's not dead, he's, he's restin'!"); From 27977a16ad4a65c5e54e212c1d89dd111df039c6 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 25 Nov 2021 06:49:38 +0000 Subject: [PATCH 018/219] 2652: browser.download.alwaysOpenPanel FYI: https://bugzilla.mozilla.org/1738372 There is a small privacy issue with shoulder surfers, but in reality, this just needs to happen IMO - we already prompt where to save, but even if we didn't, we also know we clicked or initiated a download - unless it's a drive by or user-gesture trickery - which is why we prompt - the download icon is shown (if hidden) and the throbber/accent color go to work - users can always click the icon to show entries (and open folder etc) - this maintains the current behavior in FF94 --- user.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/user.js b/user.js index 639e164..8c3b0ae 100644 --- a/user.js +++ b/user.js @@ -790,7 +790,9 @@ user_pref("permissions.delegation.enabled", false); * [SETUP-CHROME] On Android this blocks longtapping and saving images * [SETTING] General>Downloads>Always ask you where to save files ***/ user_pref("browser.download.useDownloadDir", false); -/* 2652: disable adding downloads to the system's "recent documents" list ***/ +/* 2652: disable downloads panel opening on every download [FF96+] ***/ +user_pref("browser.download.alwaysOpenPanel", false); +/* 2653: disable adding downloads to the system's "recent documents" list ***/ user_pref("browser.download.manager.addToRecentDocs", false); /** EXTENSIONS ***/ From 47de4f520bdc7ec80f440f66731df15338e74a29 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 28 Nov 2021 09:01:39 +0000 Subject: [PATCH 019/219] tidy 5505 --- user.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 8c3b0ae..2a7387e 100644 --- a/user.js +++ b/user.js @@ -1181,9 +1181,10 @@ user_pref("_user.js.parrot", "5500 syntax error: this is an ex-parrot!"); * [3] https://rh0dev.github.io/blog/2017/the-return-of-the-jit/ ***/ // user_pref("javascript.options.asmjs", false); /* 5505: disable Ion and baseline JIT to harden against JS exploits - * [NOTE] In FF75+, when **both** Ion and JIT are disabled, **and** the new - * hidden pref is enabled, then Ion can still be used by extensions (1599226) - * [1] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=firefox+jit ***/ + * [NOTE] When both Ion and JIT are disabled, and trustedprincipals + * is enabled, then Ion can still be used by extensions (1599226) + * [1] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=firefox+jit + * [2] https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/ ***/ // user_pref("javascript.options.ion", false); // user_pref("javascript.options.baselinejit", false); // user_pref("javascript.options.jit_trustedprincipals", true); // [FF75+] [HIDDEN PREF] From c2ddfd60bfb486b5a7791bc899e2646c027a92d3 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 28 Nov 2021 13:22:46 +0000 Subject: [PATCH 020/219] tidy 79-91 removed items --- scratchpad-scripts/arkenfox-clear-removed.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/scratchpad-scripts/arkenfox-clear-removed.js b/scratchpad-scripts/arkenfox-clear-removed.js index bd99cb5..cc8d330 100644 --- a/scratchpad-scripts/arkenfox-clear-removed.js +++ b/scratchpad-scripts/arkenfox-clear-removed.js @@ -13,30 +13,29 @@ const aPREFS = [ /* removed in arkenfox user.js */ - /* 91 */ + /* 79-91 */ 'alerts.showFavicons', + 'browser.newtabpage.activity-stream.asrouter.providers.snippets', + 'browser.send_pings.require_same_host', + 'browser.urlbar.usepreloadedtopurls.enabled', 'dom.allow_cut_copy', 'dom.battery.enabled', + 'dom.IntersectionObserver.enabled', 'dom.storage.enabled', 'dom.vibrator.enabled', + 'extensions.screenshots.upload-disabled', 'general.warnOnAboutConfig', 'gfx.direct2d.disabled', 'layers.acceleration.disabled', 'media.getusermedia.audiocapture.enabled', 'media.getusermedia.browser.enabled', 'media.getusermedia.screensharing.enabled', - 'media.media-capabilities.enabled', - 'security.insecure_connection_icon.enabled', - 'security.mixed_content.block_active_content', - /* 79-90 */ - 'browser.newtabpage.activity-stream.asrouter.providers.snippets', - 'browser.send_pings.require_same_host', - 'browser.urlbar.usepreloadedtopurls.enabled', - 'dom.IntersectionObserver.enabled', - 'extensions.screenshots.upload-disabled', 'media.gmp-widevinecdm.visible', + 'media.media-capabilities.enabled', 'network.http.redirection-limit', 'privacy.partition.network_state', + 'security.insecure_connection_icon.enabled', + 'security.mixed_content.block_active_content', 'security.ssl.enable_ocsp_stapling', 'security.ssl3.dhe_rsa_aes_128_sha', 'security.ssl3.dhe_rsa_aes_256_sha', From 4dc53722573a2bcf0052acdebe41951e94f217a1 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 30 Nov 2021 13:29:19 +0000 Subject: [PATCH 021/219] 0603: network.predictor.enable-prefetch make active for Nighty users - see https://bugzilla.mozilla.org/show_bug.cgi?id=1506194 --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 2a7387e..5ca13db 100644 --- a/user.js +++ b/user.js @@ -285,7 +285,7 @@ user_pref("network.dns.disablePrefetch", true); // user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true] /* 0603: disable predictor / prefetching ***/ user_pref("network.predictor.enabled", false); - // user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: false] +user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: false] /* 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 ***/ user_pref("network.http.speculative-parallel-limit", 0); From cf0102f71ebe3db5287d913db818d6a814c4c96b Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 2 Dec 2021 09:34:34 +0000 Subject: [PATCH 022/219] fixup: from being flogged to death by overseers thanks @dngray, also save some precious bytes .. polar bears know about scarce resources --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 5ca13db..af8b477 100644 --- a/user.js +++ b/user.js @@ -891,7 +891,7 @@ user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+] * [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes ***/ user_pref("privacy.sanitize.sanitizeOnShutdown", true); /* 2811: set/enforce what items to clear on shutdown (if 2810 is true) [SETUP-CHROME] - * sanitizingOnShutdown is all or nothing, it does not allow exceptions (1681701) + * These items do not use exceptions, it is all or nothing (1681701) * [NOTE] If "history" is true, downloads will also be cleared * [NOTE] "sessions": Active Logins: refers to HTTP Basic Authentication [1], not logins via cookies * [NOTE] "offlineApps": Offline Website Data: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache) From d1d20b897a1c648dfdb5c34e86264f10cc84bc38 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 4 Dec 2021 09:36:09 +0000 Subject: [PATCH 023/219] wiki cleanup (#1289) --- wikipiki/concurrent01.png | Bin 32476 -> 0 bytes wikipiki/concurrent02.png | Bin 106194 -> 0 bytes wikipiki/concurrent03.png | Bin 28466 -> 0 bytes wikipiki/concurrent04.png | Bin 28727 -> 0 bytes wikipiki/profiles01.png | Bin 33003 -> 0 bytes wikipiki/profiles02.png | Bin 26989 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wikipiki/concurrent01.png delete mode 100644 wikipiki/concurrent02.png delete mode 100644 wikipiki/concurrent03.png delete mode 100644 wikipiki/concurrent04.png delete mode 100644 wikipiki/profiles01.png delete mode 100644 wikipiki/profiles02.png diff --git a/wikipiki/concurrent01.png b/wikipiki/concurrent01.png deleted file mode 100644 index 60e0c4a33c9f493409c4bc1018d7066529936223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32476 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 z%0A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 iN0YvTkndi1qG_KM05bOf9Tbq6O#lE$N;VP_ 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 T9)|r>62LR1=a4!D^YH%x4Mr=a diff --git a/wikipiki/concurrent04.png b/wikipiki/concurrent04.png deleted file mode 100644 index 04321dfa34845a4817769b8956ac3183b616e913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28727 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 JDP{8Y{{g;+Qtto& diff --git a/wikipiki/profiles01.png b/wikipiki/profiles01.png deleted file mode 100644 index c8ba7b287c39faa40038f6960e874fad5dec23e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33003 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 z 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 bqXWsIKMd=&bvXq3*@NU|RHVzKOyU0rTkX@S From fd860e6c6985cfa2469fc78ae4d784bdf9a9a473 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 4 Dec 2021 10:23:59 +0000 Subject: [PATCH 024/219] flip RFP newwin max values, closes #1286 --- user.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/user.js b/user.js index af8b477..cf9df45 100644 --- a/user.js +++ b/user.js @@ -8,7 +8,7 @@ * README: 1. Consider using Tor Browser if it meets your needs or fits your threat model - * https://www.torproject.org/about/torusers.html.en + * https://2019.www.torproject.org/about/torusers.html 2. Required reading: Overview, Backing Up, Implementing, and Maintenance entries * https://github.com/arkenfox/user.js/wiki 3. If you skipped step 2, return to step 2 @@ -479,7 +479,7 @@ user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!"); * no unsafe renegotiations on the channel between the browser and the server. * [STATS] SSL Labs (July 2021) reports over 99% of sites have secure renegotiation [4] * [1] https://wiki.mozilla.org/Security:Renegotiation - * [2] https://tools.ietf.org/html/rfc5746 + * [2] https://datatracker.ietf.org/doc/html/rfc5746 * [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 * [4] https://www.ssllabs.com/ssl-pulse/ ***/ user_pref("security.ssl.require_safe_negotiation", true); @@ -1031,12 +1031,11 @@ user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs") * RFP also has a few side effects: mainly timezone is UTC0, and websites will prefer light theme * [1] https://bugzilla.mozilla.org/418986 ***/ user_pref("privacy.resistFingerprinting", true); -/* 4502: set new window sizes to round to hundreds [FF55+] [SETUP-CHROME] - * Width will round down to multiples of 200s and height to 100s, to fit your screen. - * The max values are a starting point to round from if you want some control +/* 4502: set new window size rounding max values [FF55+] + * [SETUP-CHROME] sizes round down in hundreds: width to 200s and height to 100s, to fit your screen * [1] https://bugzilla.mozilla.org/1330882 ***/ - // user_pref("privacy.window.maxInnerWidth", 1000); - // user_pref("privacy.window.maxInnerHeight", 1000); +user_pref("privacy.window.maxInnerWidth", 1600); +user_pref("privacy.window.maxInnerHeight", 900); /* 4503: disable mozAddonManager Web API [FF57+] * [NOTE] To allow extensions to work on AMO, you also need 2662 * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/ @@ -1221,7 +1220,7 @@ user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true] * string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks * [TEST] https://arkenfox.github.io/TZP/tests/windownamea.html ***/ user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] -/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF91+ ***/ +/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF92+ ***/ // placeholder /*** [SECTION 7000]: DON'T BOTHER ***/ From 9d61992c8cc2a46fb58ea79866aced25e3574d9b Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 5 Dec 2021 19:49:32 +0000 Subject: [PATCH 025/219] don't clear offlineApps on shutdown, #1291 - in v94 we switched to cookies lifetime as session, so users could use site exceptions to retain selected cookies (to stay logged in one assumes) - that mean not deleting all cookies on shutdown - but some login methods/types require more than cookies and also need the "site data" part of "cookies + site data" - that's the offlineApps part - note: all site data (and cookies) is still cleared on close except site exceptions --- user.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index cf9df45..4087fc3 100644 --- a/user.js +++ b/user.js @@ -902,8 +902,9 @@ user_pref("privacy.clearOnShutdown.downloads", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.formdata", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.history", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.sessions", true); // [DEFAULT: true] +user_pref("privacy.clearOnShutdown.offlineApps", false); // [DEFAULT: false] user_pref("privacy.clearOnShutdown.cookies", false); -user_pref("privacy.clearOnShutdown.offlineApps", true); + // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] Site Preferences /* 2812: reset default items to clear with Ctrl-Shift-Del (to match 2811) [SETUP-CHROME] * This dialog can also be accessed from the menu History>Clear Recent History @@ -914,11 +915,11 @@ user_pref("privacy.cpd.cache", true); // [DEFAULT: true] user_pref("privacy.cpd.formdata", true); // [DEFAULT: true] user_pref("privacy.cpd.history", true); // [DEFAULT: true] user_pref("privacy.cpd.sessions", true); // [DEFAULT: true] +user_pref("privacy.cpd.offlineApps", false); // [DEFAULT: false] user_pref("privacy.cpd.cookies", false); -user_pref("privacy.cpd.offlineApps", true); // user_pref("privacy.cpd.downloads", true); // not used, see note above - // user_pref("privacy.cpd.passwords", false); // [DEFAULT: false] this is not listed - // user_pref("privacy.cpd.siteSettings", false); // [DEFAULT: false] Site Preferences + // user_pref("privacy.cpd.passwords", false); // [DEFAULT: false] not listed + // user_pref("privacy.cpd.siteSettings", false); // [DEFAULT: false] /* 2813: clear Session Restore data when sanitizing on shutdown or manually [FF34+] * [NOTE] Not needed if Session Restore is not used (0102) or it is already cleared with history (2811) * [NOTE] privacy.clearOnShutdown.openWindows prevents resuming from crashes (also see 5008) From ec595c3b95909998695a714e96dfcf2a29823ba1 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 5 Dec 2021 19:59:33 +0000 Subject: [PATCH 026/219] fixup duplicate line --- user.js | 1 - 1 file changed, 1 deletion(-) diff --git a/user.js b/user.js index 4087fc3..5f06eb4 100644 --- a/user.js +++ b/user.js @@ -905,7 +905,6 @@ user_pref("privacy.clearOnShutdown.sessions", true); // [DEFAULT: true] user_pref("privacy.clearOnShutdown.offlineApps", false); // [DEFAULT: false] user_pref("privacy.clearOnShutdown.cookies", false); // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] - // user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false] Site Preferences /* 2812: reset default items to clear with Ctrl-Shift-Del (to match 2811) [SETUP-CHROME] * This dialog can also be accessed from the menu History>Clear Recent History * Firefox remembers your last choices. This will reset them when you start Firefox From b60a888da3c9df3862b9dbaff1b1ac2621e67db2 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 6 Dec 2021 14:45:47 +0000 Subject: [PATCH 027/219] update WebRTC, closes #1282 --- user.js | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/user.js b/user.js index 5f06eb4..6064f03 100644 --- a/user.js +++ b/user.js @@ -631,18 +631,25 @@ user_pref("privacy.userContext.ui.enabled", true); /*** [SECTION 2000]: PLUGINS / MEDIA / WEBRTC ***/ user_pref("_user.js.parrot", "2000 syntax error: the parrot's snuffed it!"); /* 2001: disable WebRTC (Web Real-Time Communication) - * [SETUP-WEB] WebRTC can leak your private network address from behind your VPN, but if this - * is not your threat model, and you want Real-Time Communication, this is the pref for you ***/ -user_pref("media.peerconnection.enabled", false); -/* 2002: limit WebRTC private network address leaks - * In FF70+ these settings match Mode 4 (Mode 3 in older versions) [3] + * Firefox uses mDNS hostname obfuscation on desktop (except Windows7/8) and the + * private IP is NEVER exposed, except if required in TRUSTED scenarios; i.e. after + * you grant device (microphone or camera) access + * [SETUP-HARDEN] Test first. Windows7/8 users only: behind a proxy who never use WebRTC * [TEST] https://browserleaks.com/webrtc - * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1189041,1297416,1452713 - * [2] https://wiki.mozilla.org/Media/WebRTC/Privacy - * [3] https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling-12#section-5.2 ***/ + * [1] https://groups.google.com/g/discuss-webrtc/c/6stQXi72BEU/m/2FwZd24UAQAJ + * [2] https://datatracker.ietf.org/doc/html/draft-ietf-mmusic-mdns-ice-candidates#section-3.1.1 ***/ + // user_pref("media.peerconnection.enabled", false); +/* 2002: force WebRTC inside the proxy [FF70+] ***/ +user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); +/* 2003: force a single network interface for ICE candidates generation [FF42+] + * When using a system-wide proxy, it uses the proxy interface + * [1] https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate + * [2] https://wiki.mozilla.org/Media/WebRTC/Privacy ***/ user_pref("media.peerconnection.ice.default_address_only", true); -user_pref("media.peerconnection.ice.no_host", true); // [FF51+] -user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); // [FF70+] +/* 2004: force exclusion of private IPs from ICE candidates [FF51+] + * [SETUP-HARDEN] This will protect your private IP even in TRUSTED scenarios after you + * grant device access, but often results in breakage on video-conferencing platforms ***/ + // user_pref("media.peerconnection.ice.no_host", true); /* 2020: disable GMP (Gecko Media Plugins) * [1] https://wiki.mozilla.org/GeckoMediaPlugins ***/ // user_pref("media.gmp-provider.enabled", false); From fec5168203edf80768d67fef3eda664b0c899cc6 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 8 Dec 2021 04:28:47 +0000 Subject: [PATCH 028/219] 95 deprecated --- user.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index 6064f03..69e0fae 100644 --- a/user.js +++ b/user.js @@ -370,9 +370,9 @@ user_pref("browser.urlbar.speculativeConnect.enabled", false); * [1] https://bugzilla.mozilla.org/1642623 ***/ user_pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0); /* 0807: disable location bar contextual suggestions [FF92+] - * [SETTING] Privacy & Security>Address Bar>Contextual Suggestions + * [SETTING] Privacy & Security>Address Bar>Suggestions from... * [1] https://blog.mozilla.org/data/2021/09/15/data-and-firefox-suggest/ ***/ -user_pref("browser.urlbar.suggest.quicksuggest", false); +user_pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); // [FF95+] user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false); /* 0808: disable tab-to-search [FF85+] * Alternatively, you can exclude on a per-engine basis by unchecking them in Options>Search @@ -1363,11 +1363,11 @@ user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switc // user_pref("full-screen-api.warning.timeout", 0); /* APPEARANCE ***/ // user_pref("browser.download.autohideButton", false); // [FF57+] - // user_pref("ui.systemUsesDarkTheme", 1); // [FF67+] [HIDDEN PREF] - // 0=light, 1=dark: with RFP this only affects chrome // user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); // [FF68+] allow userChrome/userContent // user_pref("ui.prefersReducedMotion", 1); // disable chrome animations [FF77+] [RESTART] [HIDDEN PREF] // 0=no-preference, 1=reduce: with RFP this only affects chrome + // user_pref("ui.systemUsesDarkTheme", 1); // [FF67+] [HIDDEN PREF] + // 0=light, 1=dark: with RFP this only affects chrome /* CONTENT BEHAVIOR ***/ // user_pref("accessibility.typeaheadfind", true); // enable "Find As You Type" // user_pref("clipboard.autocopy", false); // disable autocopy default [LINUX] @@ -1411,6 +1411,10 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is m // 1402: limit font visibility (Windows, Mac, some Linux) [FF79+] - replaced by new 1402 // [-] https://bugzilla.mozilla.org/1715507 // user_pref("layout.css.font-visibility.level", 1); +// FF95 +// 0807: disable location bar contextual suggestions [FF92+] - replaced by new 0807 + // [-] https://bugzilla.mozilla.org/1735976 +user_pref("browser.urlbar.suggest.quicksuggest", false); // ***/ /* END: internal custom pref to test for syntax errors ***/ From 7e1b92567ca2bb76ad358d0fc786fd60b3cf7970 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 8 Dec 2021 12:13:47 +0000 Subject: [PATCH 029/219] 95 final --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 69e0fae..af1d2a6 100644 --- a/user.js +++ b/user.js @@ -1,7 +1,7 @@ /****** * name: arkenfox user.js -* date: 24 November 2021 -* version 95-alpha +* date: 8 December 2021 +* version 95 * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt From 72cc4d176ea08b4373e437f9f3f44e92da547c92 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 11:41:18 +0000 Subject: [PATCH 030/219] 0706: network.proxy.allow_bypass, closes #1292 --- user.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index af1d2a6..c0993af 100644 --- a/user.js +++ b/user.js @@ -1,7 +1,7 @@ /****** * name: arkenfox user.js -* date: 8 December 2021 -* version 95 +* date: 9 December 2021 +* version 96-alpha * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt @@ -327,6 +327,12 @@ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] * [SETUP-CHROME] If you use a proxy and you trust your extensions * [1] https://blog.mozilla.org/security/2021/10/25/securing-the-proxy-api-for-firefox-add-ons/ ***/ // user_pref("network.proxy.failover_direct", false); +/* 0706: disable proxy bypass for system request failures [FF95+] + * RemoteSettings, UpdateService, Telemetry [1] + * [WARNING] If false, this will break the fallback for some security features + * [SETUP-CHROME] If you use a proxy and you understand the security impact + * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1732792,1733994,1733481 ***/ + // user_pref("network.proxy.allow_bypass", false); // [HIDDEN PREF] /* 0710: disable DNS-over-HTTPS (DoH) rollout [FF60+] * 0=off by default, 2=TRR (Trusted Recursive Resolver) first, 3=TRR only, 5=explicitly off * see "doh-rollout.home-region": USA Feb 2020, Canada July 2021 [3] From fe75baa79f407c2dd2368c4170265c10f0904da9 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 11:44:51 +0000 Subject: [PATCH 031/219] move DNT to DON'T BOTHER --- user.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index c0993af..3784ca6 100644 --- a/user.js +++ b/user.js @@ -612,10 +612,6 @@ user_pref("network.http.referer.XOriginPolicy", 2); /* 1602: control the amount of cross-origin information to send [FF52+] * 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port ***/ user_pref("network.http.referer.XOriginTrimmingPolicy", 2); -/* 1603: enable the DNT (Do Not Track) HTTP header - * [NOTE] DNT is enforced with Enhanced Tracking Protection (2710) - * [SETTING] Privacy & Security>Enhanced Tracking Protection>Send websites a "Do Not Track" signal... ***/ - // user_pref("privacy.donottrackheader.enabled", true); /*** [SECTION 1700]: CONTAINERS Check out Temporary Containers [2], read the article [3], and visit the wiki/repo [4] @@ -1318,6 +1314,9 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies * [WHY] It can compromise security. System addons ship with prefs, use those ***/ // user_pref("extensions.systemAddon.update.enabled", false); // [FF62+] // user_pref("extensions.systemAddon.update.url", ""); // [FF44+] +/* 7015: enable the DNT (Do Not Track) HTTP header + * [WHY] DNT is enforced with Tracking Protection (2710) ***/ + // user_pref("privacy.donottrackheader.enabled", true); /*** [SECTION 8000]: DON'T BOTHER: NON-RFP [WHY] They are insufficient to help anti-fingerprinting and do more harm than good From f7bba92c71cc71455b0128fc4f4c739eae1cca16 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 12:28:45 +0000 Subject: [PATCH 032/219] cleanout FPI section farewell parrot --- user.js | 39 ++------------------------------------- 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/user.js b/user.js index 3784ca6..e1475cc 100644 --- a/user.js +++ b/user.js @@ -941,45 +941,10 @@ user_pref("privacy.cpd.cookies", false); * which will display a blank value, and are not guaranteed to work ***/ user_pref("privacy.sanitize.timeSpan", 0); -/*** [SECTION 4000]: FPI (FIRST PARTY ISOLATION) - 1278037 - indexedDB (FF51+) - 1277803 - favicons (FF52+) - 1264562 - OCSP cache (FF52+) - 1268726 - Shared Workers (FF52+) - 1316283 - SSL session cache (FF52+) - 1317927 - media cache (FF53+) - 1323644 - HSTS and HPKP (FF54+) - 1334690 - HTTP Alternative Services (FF54+) - 1334693 - SPDY/HTTP2 (FF55+) - 1337893 - DNS cache (FF55+) - 1344170 - blob: URI (FF55+) - 1300671 - data:, about: URLs (FF55+) - 1473247 - IP addresses (FF63+) - 1542309 - top-level domain URLs when host is in the public suffix list (FF68+) - 1506693 - pdfjs range-based requests (FF68+) - 1330467 - site permissions (FF69+) - 1534339 - IPv6 (FF73+) - 1721858 - WebSocket (FF92+) -***/ +/*** [SECTION 4000]: FPI (FIRST PARTY ISOLATION) ***/ user_pref("_user.js.parrot", "4000 syntax error: the parrot's pegged out"); -/* 4001: enable First Party Isolation [FF51+] - * [SETUP-WEB] Breaks some cross-origin logins - * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1260931,1299996 ***/ +/* 4001: enable First Party Isolation [FF51+] ***/ user_pref("privacy.firstparty.isolate", true); -/* 4002: enforce FPI restriction for window.opener [FF54+] - * [NOTE] Setting this to false may reduce the breakage in 4001 - * FF65+ blocks postMessage with targetOrigin "*" if originAttributes don't match. But - * to reduce breakage it ignores the 1st-party domain (FPD) originAttribute [2][3] - * The 2nd pref removes that limitation and will only allow communication if FPDs also match - * [1] https://bugzilla.mozilla.org/1319773#c22 - * [2] https://bugzilla.mozilla.org/1492607 - * [3] https://developer.mozilla.org/docs/Web/API/Window/postMessage ***/ - // user_pref("privacy.firstparty.isolate.restrict_opener_access", true); // [DEFAULT: true] - // user_pref("privacy.firstparty.isolate.block_post_message", true); -/* 4003: enable scheme with FPI [FF78+] - * [NOTE] Experimental: existing data and site permissions are incompatible - * and some site exceptions may not work e.g. HTTPS-only mode (1244) ***/ - // user_pref("privacy.firstparty.isolate.use_site", true); /*** [SECTION 4500]: RFP (RESIST FINGERPRINTING) RFP covers a wide range of ongoing fingerprinting solutions. From 97322d6e8bcf5082cfee601e480c520f0008a422 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 12:31:38 +0000 Subject: [PATCH 033/219] various inactive FPI prefs --- scratchpad-scripts/arkenfox-clear-removed.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scratchpad-scripts/arkenfox-clear-removed.js b/scratchpad-scripts/arkenfox-clear-removed.js index cc8d330..17e39e2 100644 --- a/scratchpad-scripts/arkenfox-clear-removed.js +++ b/scratchpad-scripts/arkenfox-clear-removed.js @@ -13,6 +13,10 @@ const aPREFS = [ /* removed in arkenfox user.js */ + /* 92+ */ + 'privacy.firstparty.isolate.block_post_message', + 'privacy.firstparty.isolate.restrict_opener_access', + 'privacy.firstparty.isolate.use_site', /* 79-91 */ 'alerts.showFavicons', 'browser.newtabpage.activity-stream.asrouter.providers.snippets', From 0634a568efeca4d837a34dae47b1a3b14c85dccd Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 13:45:46 +0000 Subject: [PATCH 034/219] remove redundant site data prefs we've never used these - service workers are disabled (or soon to be covered by dFPI when enabled) and sanitizing is already done (or will be done via enhanced cookie cleaning) - storage API, storage access API: we sanitize on close, and sites are isolated by eTLD+1 --- user.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/user.js b/user.js index e1475cc..f26212d 100644 --- a/user.js +++ b/user.js @@ -856,21 +856,6 @@ user_pref("privacy.trackingprotection.enabled", true); user_pref("privacy.trackingprotection.socialtracking.enabled", true); // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] -/* 2740: disable service worker cache and cache storage - * [NOTE] We clear service worker cache on exit (2811) - * [1] https://w3c.github.io/ServiceWorker/#privacy ***/ - // user_pref("dom.caches.enabled", false); -/* 2750: disable Storage API [FF51+] - * The API gives sites the ability to find out how much space they can use, how much - * they are already using, and even control whether or not they need to be alerted - * before the user agent disposes of site data in order to make room for other things. - * [1] https://developer.mozilla.org/docs/Web/API/StorageManager - * [2] https://developer.mozilla.org/docs/Web/API/Storage_API - * [3] https://blog.mozilla.org/l10n/2017/03/07/firefox-l10n-report-aurora-54/ ***/ - // user_pref("dom.storageManager.enabled", false); -/* 2755: disable Storage Access API [FF65+] - * [1] https://developer.mozilla.org/docs/Web/API/Storage_Access_API ***/ - // user_pref("dom.storage_access.enabled", false); /* 2760: enable Local Storage Next Generation (LSNG) [FF65+] ***/ user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] From 83602baa38e70bf8a4a87837ab1cc5f5cff87bf8 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 13:47:57 +0000 Subject: [PATCH 035/219] misc site storage/data prefs been inactive since jesus was a baby --- scratchpad-scripts/arkenfox-clear-removed.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scratchpad-scripts/arkenfox-clear-removed.js b/scratchpad-scripts/arkenfox-clear-removed.js index 17e39e2..b78cc94 100644 --- a/scratchpad-scripts/arkenfox-clear-removed.js +++ b/scratchpad-scripts/arkenfox-clear-removed.js @@ -14,6 +14,9 @@ const aPREFS = [ /* removed in arkenfox user.js */ /* 92+ */ + 'dom.caches.enabled', + 'dom.storageManager.enabled', + 'dom.storage_access.enabled', 'privacy.firstparty.isolate.block_post_message', 'privacy.firstparty.isolate.restrict_opener_access', 'privacy.firstparty.isolate.use_site', From 1fc43574d6cb0a229892738d7b9117a4e4f1fa2c Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 14:00:21 +0000 Subject: [PATCH 036/219] move "cookie" permission info into 2801 --- user.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/user.js b/user.js index f26212d..298366f 100644 --- a/user.js +++ b/user.js @@ -54,7 +54,7 @@ 2300: WEB WORKERS 2400: DOM (DOCUMENT OBJECT MODEL) 2600: MISCELLANEOUS - 2700: PERSISTENT STORAGE + 2700: ETP (ENHANCED TRACKING PROTECTION) 2800: SHUTDOWN & SANITIZING 4000: FPI (FIRST PARTY ISOLATION) 4500: RFP (RESIST FINGERPRINTING) @@ -819,19 +819,7 @@ user_pref("extensions.postDownloadThirdPartyPrompt", false); * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/ // user_pref("extensions.webextensions.restrictedDomains", ""); -/*** [SECTION 2700]: PERSISTENT STORAGE - Data SET by websites including - cookies : profile\cookies.sqlite - localStorage : profile\webappsstore.sqlite - indexedDB : profile\storage\default - serviceWorkers : - - [NOTE] indexedDB and serviceWorkers are not available in Private Browsing Mode - [NOTE] Blocking cookies also blocks websites access to: localStorage (incl. sessionStorage), - indexedDB, sharedWorker, and serviceWorker (and therefore service worker cache and notifications) - If you set a site exception for cookies (either "Allow" or "Allow for Session") then they become - accessible to websites except shared/service workers where the cookie setting must be "Allow" -***/ +/*** [SECTION 2700]: ETP (Enhanced Tracking Protection) ***/ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!"); /* 2701: disable or isolate 3rd-party cookies and site-data [SETUP-WEB] * 0 = Accept cookies and site data @@ -864,6 +852,8 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" /** COOKIES + SITE DATA : ALLOWS EXCEPTIONS ***/ /* 2801: delete cookies and site data on exit * 0=keep until they expire (default), 2=keep until you close Firefox + * [NOTE] A "cookie" permission also controls localStorage/sessionStorage, idexedDB. + * sharedWorkers and serviceWorkers required an `Allow` permission * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow * If using FPI the syntax must be https://example.com/^firstPartyDomain=example.com From 5d508e42422ab910dfd3155f223f0a0cab216808 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 14:05:47 +0000 Subject: [PATCH 037/219] move LSNG to don't touch --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 298366f..580d006 100644 --- a/user.js +++ b/user.js @@ -844,8 +844,6 @@ user_pref("privacy.trackingprotection.enabled", true); user_pref("privacy.trackingprotection.socialtracking.enabled", true); // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] -/* 2760: enable Local Storage Next Generation (LSNG) [FF65+] ***/ -user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] /*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!"); @@ -1169,6 +1167,8 @@ user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true] * string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks * [TEST] https://arkenfox.github.io/TZP/tests/windownamea.html ***/ user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] +/* 0607: enforce Local Storage Next Generation (LSNG) [FF65+] ***/ +user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] /* 6050: prefsCleaner: reset previously active items removed from arkenfox FF92+ ***/ // placeholder From de28689e76f16820f4e34acb3fc850b2b47418df Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 14:13:39 +0000 Subject: [PATCH 038/219] flip from FPI to dFPI I will tidy and expand 2700 entries later --- user.js | 52 ++++++++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/user.js b/user.js index 580d006..d00c8e5 100644 --- a/user.js +++ b/user.js @@ -56,7 +56,6 @@ 2600: MISCELLANEOUS 2700: ETP (ENHANCED TRACKING PROTECTION) 2800: SHUTDOWN & SANITIZING - 4000: FPI (FIRST PARTY ISOLATION) 4500: RFP (RESIST FINGERPRINTING) 5000: OPTIONAL OPSEC 5500: OPTIONAL HARDENING @@ -819,31 +818,14 @@ user_pref("extensions.postDownloadThirdPartyPrompt", false); * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/ // user_pref("extensions.webextensions.restrictedDomains", ""); -/*** [SECTION 2700]: ETP (Enhanced Tracking Protection) ***/ +/*** [SECTION 2700]: ETP (ENHANCED TRACKING PROTECTION) ***/ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!"); -/* 2701: disable or isolate 3rd-party cookies and site-data [SETUP-WEB] - * 0 = Accept cookies and site data - * 1 = (Block) All third-party cookies - * 2 = (Block) All cookies - * 3 = (Block) Cookies from unvisited websites - * 4 = (Block) Cross-site tracking cookies (default) - * 5 = (Isolate All) Cross-site cookies (TCP: Total Cookie Protection / dFPI: dynamic FPI) [1] (FF86+) - * Option 5 with FPI enabled (4001) is ignored and not shown, and option 4 used instead - * [NOTE] You can set cookie exceptions under site permissions or use an extension - * [NOTE] Enforcing category to custom ensures ETP related prefs are always honored - * [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Cookies - * [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ ***/ -user_pref("network.cookie.cookieBehavior", 1); -user_pref("browser.contentblocking.category", "custom"); -/* 2710: enable Enhanced Tracking Protection (ETP) in all windows - * [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Tracking content +/* 2701: enable Enhanced Tracking Protection's (ETP) Strict Mode [FF86+] + * Strict Mode enables Total Cookie Protection (dFPI /dynamic FPI) + * [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ -user_pref("privacy.trackingprotection.enabled", true); -/* 2711: enable various ETP lists ***/ -user_pref("privacy.trackingprotection.socialtracking.enabled", true); - // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] - // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] +user_pref("browser.contentblocking.category", "strict"); /*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!"); @@ -914,11 +896,6 @@ user_pref("privacy.cpd.cookies", false); * which will display a blank value, and are not guaranteed to work ***/ user_pref("privacy.sanitize.timeSpan", 0); -/*** [SECTION 4000]: FPI (FIRST PARTY ISOLATION) ***/ -user_pref("_user.js.parrot", "4000 syntax error: the parrot's pegged out"); -/* 4001: enable First Party Isolation [FF51+] ***/ -user_pref("privacy.firstparty.isolate", true); - /*** [SECTION 4500]: RFP (RESIST FINGERPRINTING) RFP covers a wide range of ongoing fingerprinting solutions. It is an all-or-nothing buy in: you cannot pick and choose what parts you want @@ -1169,6 +1146,10 @@ user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true] user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] /* 0607: enforce Local Storage Next Generation (LSNG) [FF65+] ***/ user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] +/* 6008: enforce no First Party Isolation [FF51+] + * [WARNING] FPI is no longer supported and is replaced by network partitioning (FF85+) + * and dFPI (2701), and enabling FPI disables those ***/ +user_pref("privacy.firstparty.isolate", false); // [DEFAULT: false] /* 6050: prefsCleaner: reset previously active items removed from arkenfox FF92+ ***/ // placeholder @@ -1210,8 +1191,8 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("security.tls.version.min", 3); // [DEFAULT: 3] // user_pref("security.tls.version.max", 4); /* 7005: disable SSL session IDs [FF36+] - * [WHY] Passive fingerprinting and perf costs. These are session-only and isolated - * with network partitioning (FF85+) or when using FPI and/or containers ***/ + * [WHY] Passive fingerprinting and perf costs. These are session-only + * and isolated with network partitioning (FF85+) and/or containers ***/ // user_pref("security.ssl.disable_session_identifiers", true); // [HIDDEN PREF] /* 7006: onions * [WHY] Firefox doesn't support hidden services. Use Tor Browser ***/ @@ -1234,7 +1215,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("network.http.spdy.enabled.http2", false); // user_pref("network.http.spdy.websockets", false); // [FF65+] /* 7010: disable HTTP Alternative Services [FF37+] - * [WHY] Already isolated by network partitioning (FF85+) or FPI ***/ + * [WHY] Already isolated by network partitioning (FF85+) ***/ // user_pref("network.http.altsvc.enabled", false); // user_pref("network.http.altsvc.oe", false); // [DEFAULT: false FF94+] /* 7011: disable website control over browser right-click context menu @@ -1255,8 +1236,15 @@ 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.url", ""); // [FF44+] /* 7015: enable the DNT (Do Not Track) HTTP header - * [WHY] DNT is enforced with Tracking Protection (2710) ***/ + * [WHY] DNT is enforced with Tracking Protection which is used in ETP Strict (2701) ***/ // user_pref("privacy.donottrackheader.enabled", true); +/* 7016: customize ETP settings + * [WHY] Just use strict which sets these at runtime (2701) ***/ + // user_pref("network.cookie.cookieBehavior", 5); + // user_pref("privacy.trackingprotection.enabled", true); + // user_pref("privacy.trackingprotection.socialtracking.enabled", true); + // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] + // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] /*** [SECTION 8000]: DON'T BOTHER: NON-RFP [WHY] They are insufficient to help anti-fingerprinting and do more harm than good From 4d5abd6cc39ab67a52578c7849e1076198009925 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 14:18:25 +0000 Subject: [PATCH 039/219] tweak 8000 title lets not encourage non-RFP users to see this as a sign to use them --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index d00c8e5..12dfb76 100644 --- a/user.js +++ b/user.js @@ -61,7 +61,7 @@ 5500: OPTIONAL HARDENING 6000: DON'T TOUCH 7000: DON'T BOTHER - 8000: DON'T BOTHER: NON-RFP + 8000: DON'T BOTHER: FINGERPRINTING 9000: PERSONAL 9999: DEPRECATED / REMOVED / LEGACY / RENAMED @@ -1246,7 +1246,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] -/*** [SECTION 8000]: DON'T BOTHER: NON-RFP +/*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING [WHY] They are insufficient to help anti-fingerprinting and do more harm than good [WARNING] DO NOT USE with RFP. RFP already covers these and they can interfere ***/ From 8860c90abf5c1fb0f87661c3327ae4e75992be13 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 14:31:41 +0000 Subject: [PATCH 040/219] make service workers inactive currently 3rd party service workers are blocked in FF95 when dFPI is enabled (which this version has should anyone update to 96-alpha) - but I get an error even on first party - https://arkenfox.github.io/TZP/tzp.html#storage - I get : service worker | test : enabled | failed: SecurityError in FF96+ service workers they are covered by dFPI - see https://bugzilla.mozilla.org/show_bug.cgi?id=1731999 --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 12dfb76..8e93194 100644 --- a/user.js +++ b/user.js @@ -698,7 +698,7 @@ user_pref("_user.js.parrot", "2300 syntax error: the parrot's off the twig!"); * service worker notifications (2304), push notifications (disabled, 2305) and service worker * cache (2740). If you enable this pref, then check those settings as well * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1320796#c7 ***/ -user_pref("dom.serviceWorkers.enabled", false); + // user_pref("dom.serviceWorkers.enabled", false); /* 2304: disable Web Notifications * [NOTE] Web Notifications can also use service workers (2302) and are behind a prompt (7002) * [1] https://developer.mozilla.org/docs/Web/API/Notifications_API ***/ From d5bc6715cd3d416b5c09af6be8d5a561df9de19a Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 16:14:36 +0000 Subject: [PATCH 041/219] remove web workers section farewell parrot --- user.js | 67 ++++++++++++++++++--------------------------------------- 1 file changed, 21 insertions(+), 46 deletions(-) diff --git a/user.js b/user.js index 8e93194..aca695b 100644 --- a/user.js +++ b/user.js @@ -51,7 +51,6 @@ 1600: HEADERS / REFERERS 1700: CONTAINERS 2000: PLUGINS / MEDIA / WEBRTC - 2300: WEB WORKERS 2400: DOM (DOCUMENT OBJECT MODEL) 2600: MISCELLANEOUS 2700: ETP (ENHANCED TRACKING PROTECTION) @@ -675,46 +674,6 @@ user_pref("media.eme.enabled", false); * [1] https://support.mozilla.org/questions/1293231 ***/ user_pref("media.autoplay.blocking_policy", 2); -/*** [SECTION 2300]: WEB WORKERS - A worker is a JS "background task" running in a global context, i.e. it is different from - the current window. Workers can spawn new workers (must be the same origin & scheme), - including service and shared workers. Shared workers can be utilized by multiple scripts and - communicate between browsing contexts (windows/tabs/iframes) and can even control your cache. - - [1] Web Workers: https://developer.mozilla.org/docs/Web/API/Web_Workers_API - [2] Worker: https://developer.mozilla.org/docs/Web/API/Worker - [3] Service Worker: https://developer.mozilla.org/docs/Web/API/Service_Worker_API - [4] SharedWorker: https://developer.mozilla.org/docs/Web/API/SharedWorker - [5] ChromeWorker: https://developer.mozilla.org/docs/Web/API/ChromeWorker - [6] Notifications: https://support.mozilla.org/questions/1165867#answer-981820 -***/ -user_pref("_user.js.parrot", "2300 syntax error: the parrot's off the twig!"); -/* 2302: disable service workers [FF32, FF44-compat] - * Service workers essentially act as proxy servers that sit between web apps, and the - * browser and network, are event driven, and can control the web page/site they are associated - * with, intercepting and modifying navigation and resource requests, and caching resources. - * [NOTE] Service workers require HTTPS, have no DOM access, and are not supported in PB mode [1] - * [SETUP-WEB] Disabling service workers will break some sites. This pref is required true for - * service worker notifications (2304), push notifications (disabled, 2305) and service worker - * cache (2740). If you enable this pref, then check those settings as well - * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1320796#c7 ***/ - // user_pref("dom.serviceWorkers.enabled", false); -/* 2304: disable Web Notifications - * [NOTE] Web Notifications can also use service workers (2302) and are behind a prompt (7002) - * [1] https://developer.mozilla.org/docs/Web/API/Notifications_API ***/ - // user_pref("dom.webnotifications.enabled", false); // [FF22+] - // user_pref("dom.webnotifications.serviceworker.enabled", false); // [FF44+] -/* 2305: disable Push Notifications [FF44+] - * Push is an API that allows websites to send you (subscribed) messages even when the site - * isn't loaded, by pushing messages to your userAgentID through Mozilla's Push Server - * [NOTE] Push requires service workers (2302) to subscribe to and display, and is behind - * a prompt (7002). Disabling service workers alone doesn't stop Firefox polling the - * Mozilla Push Server. To remove all subscriptions, reset your userAgentID. - * [1] https://support.mozilla.org/kb/push-notifications-firefox - * [2] https://developer.mozilla.org/docs/Web/API/Push_API ***/ -user_pref("dom.push.enabled", false); - // user_pref("dom.push.userAgentID", ""); - /*** [SECTION 2400]: DOM (DOCUMENT OBJECT MODEL) ***/ user_pref("_user.js.parrot", "2400 syntax error: the parrot's kicked the bucket!"); /* 2401: disable "Confirm you want to leave" dialog on page close @@ -728,6 +687,19 @@ user_pref("dom.disable_window_move_resize", true); user_pref("dom.disable_open_during_load", true); /* 2404: limit events that can cause a popup [SETUP-WEB] ***/ user_pref("dom.popup_allowed_events", "click dblclick mousedown pointerdown"); +/* 2410: disable Web Notifications + * [NOTE] Web Notifications are behind a prompt (7002) ***/ + // user_pref("dom.webnotifications.enabled", false); // [FF22+] + // user_pref("dom.webnotifications.serviceworker.enabled", false); // [FF44+] +/* 2411: disable Push Notifications [FF44+] + * Push allows websites to send you subscribed messages through Mozilla's Push Server, + * and requires service workers to subscribe to and display, and is behind a prompt (7002) + * [NOTE] Disabling service workers alone doesn't stop Firefox polling the Mozilla Push Server + * [NOTE] To remove all subscriptions, reset your userAgentID + * [1] https://support.mozilla.org/kb/push-notifications-firefox + * [2] https://developer.mozilla.org/docs/Web/API/Push_API ***/ +user_pref("dom.push.enabled", false); + // user_pref("dom.push.userAgentID", ""); /*** [SECTION 2600]: MISCELLANEOUS ***/ user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!"); @@ -821,7 +793,7 @@ user_pref("extensions.postDownloadThirdPartyPrompt", false); /*** [SECTION 2700]: ETP (ENHANCED TRACKING PROTECTION) ***/ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!"); /* 2701: enable Enhanced Tracking Protection's (ETP) Strict Mode [FF86+] - * Strict Mode enables Total Cookie Protection (dFPI /dynamic FPI) + * [NOTE] ETP Strict Mode enables Total Cookie Protection (TCP) * [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ @@ -833,7 +805,7 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" /* 2801: delete cookies and site data on exit * 0=keep until they expire (default), 2=keep until you close Firefox * [NOTE] A "cookie" permission also controls localStorage/sessionStorage, idexedDB. - * sharedWorkers and serviceWorkers required an `Allow` permission + * sharedWorkers and serviceWorkers require an `Allow` permission * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow * If using FPI the syntax must be https://example.com/^firstPartyDomain=example.com @@ -1147,8 +1119,8 @@ user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] /* 0607: enforce Local Storage Next Generation (LSNG) [FF65+] ***/ user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] /* 6008: enforce no First Party Isolation [FF51+] - * [WARNING] FPI is no longer supported and is replaced by network partitioning (FF85+) - * and dFPI (2701), and enabling FPI disables those ***/ + * [WARNING] Replaced with network partitioning (FF85+) and TCP (2701), + * and enabling FPI disables those. FPI is no longer maintained ***/ user_pref("privacy.firstparty.isolate", false); // [DEFAULT: false] /* 6050: prefsCleaner: reset previously active items removed from arkenfox FF92+ ***/ // placeholder @@ -1215,7 +1187,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("network.http.spdy.enabled.http2", false); // user_pref("network.http.spdy.websockets", false); // [FF65+] /* 7010: disable HTTP Alternative Services [FF37+] - * [WHY] Already isolated by network partitioning (FF85+) ***/ + * [WHY] Already isolated with network partitioning (FF85+) ***/ // user_pref("network.http.altsvc.enabled", false); // user_pref("network.http.altsvc.oe", false); // [DEFAULT: false FF94+] /* 7011: disable website control over browser right-click context menu @@ -1245,6 +1217,9 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("privacy.trackingprotection.socialtracking.enabled", true); // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] +/* 7017: disable service workers [FF32, FF44-compat] + * [WHY] Already isolated (FF96+) with TCP (2701) or blocked in 3rd parties (FF95 or lower) ***/ + // user_pref("dom.serviceWorkers.enabled", false); /*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING [WHY] They are insufficient to help anti-fingerprinting and do more harm than good From d9f49bdf1fc7950bbaeb1882ee9e0d0fef31b9f9 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 16:17:53 +0000 Subject: [PATCH 042/219] make 7017 clearer --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index aca695b..2c216a7 100644 --- a/user.js +++ b/user.js @@ -1218,7 +1218,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] /* 7017: disable service workers [FF32, FF44-compat] - * [WHY] Already isolated (FF96+) with TCP (2701) or blocked in 3rd parties (FF95 or lower) ***/ + * [WHY] Already isolated (FF96+) with TCP (2701) or blocked with TCP in 3rd parties (FF95 or lower) ***/ // user_pref("dom.serviceWorkers.enabled", false); /*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING From ec7cb6a491feced2ab2f89880fc3c0538dbdf130 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 9 Dec 2021 17:17:52 +0000 Subject: [PATCH 043/219] 2702: partition service workers --- user.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/user.js b/user.js index 2c216a7..63579c1 100644 --- a/user.js +++ b/user.js @@ -798,6 +798,8 @@ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ user_pref("browser.contentblocking.category", "strict"); +/* 2702: enable state partitioning of service workers [FF96+] ***/ +user_pref("privacy.partition.serviceWorkers", true); /*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!"); @@ -1218,7 +1220,8 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] /* 7017: disable service workers [FF32, FF44-compat] - * [WHY] Already isolated (FF96+) with TCP (2701) or blocked with TCP in 3rd parties (FF95 or lower) ***/ + * [WHY] Already isolated (FF96+) with TCP (2701) behind a pref (2702) + * or blocked with TCP in 3rd parties (FF95 or lower) ***/ // user_pref("dom.serviceWorkers.enabled", false); /*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING From 13e5fe17b195ac1e6aa04e57fdca9052f2cfee0e Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 06:56:43 +0000 Subject: [PATCH 044/219] remove rfpalts (#1288) --- updater.bat | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/updater.bat b/updater.bat index a806ca6..badd778 100644 --- a/updater.bat +++ b/updater.bat @@ -3,10 +3,10 @@ TITLE arkenfox user.js updater REM ## arkenfox user.js updater for Windows REM ## author: @claustromaniac -REM ## version: 4.14 +REM ## version: 4.15 REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts -SET v=4.14 +SET v=4.15 VERIFY ON CD /D "%~dp0" @@ -23,7 +23,6 @@ IF /I "%~1"=="-merge" (SET _merge=1) IF /I "%~1"=="-updatebatch" (SET _updateb=1) IF /I "%~1"=="-singlebackup" (SET _singlebackup=1) IF /I "%~1"=="-esr" (SET _esr=1) -IF /I "%~1"=="-rfpalts" (SET _rfpalts=1) SHIFT GOTO parse :endparse @@ -141,10 +140,6 @@ IF EXIST user.js.new (DEL /F "user.js.new") CALL :message "Retrieving latest user.js file from github repository..." CALL :psdownload https://raw.githubusercontent.com/arkenfox/user.js/master/user.js "user.js.new" IF EXIST user.js.new ( - IF DEFINED _rfpalts ( - CALL :message "Activating RFP Alternatives section..." - CALL :activate user.js.new "[SETUP-non-RFP]" - ) IF DEFINED _esr ( CALL :message "Activating ESR section..." CALL :activate user.js.new ".x still uses all the following prefs" @@ -320,8 +315,6 @@ ECHO: Run without user input. CALL :message " -singleBackup" ECHO: Use a single backup file and overwrite it on new updates, instead of ECHO: cumulative backups. This was the default behaviour before v4.3. -CALL :message " -rfpAlts" -ECHO: Activate RFP Alternatives section CALL :message " -updateBatch" ECHO: Update the script itself on execution, before the normal routine. CALL :message "" From 1f0dc1853df76853f6559a2ddc99a4b98db76ea3 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 09:13:09 +0000 Subject: [PATCH 045/219] merge scratchpads into one --- scratchpad-scripts/arkenfox-clear-removed.js | 202 ++++++++++++++++++- 1 file changed, 199 insertions(+), 3 deletions(-) diff --git a/scratchpad-scripts/arkenfox-clear-removed.js b/scratchpad-scripts/arkenfox-clear-removed.js index b78cc94..d928daf 100644 --- a/scratchpad-scripts/arkenfox-clear-removed.js +++ b/scratchpad-scripts/arkenfox-clear-removed.js @@ -1,7 +1,9 @@ /*** - This will reset the preferences that have been removed completely from the arkenfox user.js. + This will reset the preferences that have been + - removed from the arkenfox user.js. + - deprecated by Mozilla but used in the arkenfox user.js in the past - Last updated: 29-August-2021 + Last updated: 11-December-2021 For instructions see: https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts] @@ -12,7 +14,201 @@ if ('undefined' === typeof(Services)) return alert('about:config needs to be the active tab!'); const aPREFS = [ - /* removed in arkenfox user.js */ + /* DEPRECATED */ + /* FF92+ */ + 'browser.urlbar.suggest.quicksuggest', // 95 + 'layout.css.font-visibility.level', // 94 + 'security.ssl3.rsa_des_ede3_sha', // 93 + /* FF79-91 */ + 'browser.cache.offline.storage.enable', + 'browser.download.hide_plugins_without_extensions', + 'browser.library.activity-stream.enabled', + 'browser.search.geoSpecificDefaults', + 'browser.search.geoSpecificDefaults.url', + 'dom.ipc.plugins.flash.subprocess.crashreporter.enabled', + 'dom.ipc.plugins.reportCrashURL', + 'dom.w3c_pointer_events.enabled', + 'intl.charset.fallback.override', + 'network.ftp.enabled', + 'plugin.state.flash', + 'security.mixed_content.block_object_subrequest', + 'security.ssl.errorReporting.automatic', + 'security.ssl.errorReporting.enabled', + 'security.ssl.errorReporting.url', + /* 69-78 */ + 'browser.newtabpage.activity-stream.telemetry.ping.endpoint', + 'browser.tabs.remote.allowLinkedWebInFileUriProcess', + 'browser.urlbar.oneOffSearches', + 'devtools.webide.autoinstallADBExtension', + 'devtools.webide.enabled', + 'dom.indexedDB.enabled', + 'extensions.blocklist.url', + 'geo.wifi.logging.enabled', + 'geo.wifi.uri', + 'gfx.downloadable_fonts.woff2.enabled', + 'media.autoplay.allow-muted', + 'media.autoplay.enabled.user-gestures-needed', + 'offline-apps.allow_by_default', + 'plugins.click_to_play', + 'privacy.userContext.longPressBehavior', + 'toolkit.cosmeticAnimations.enabled', + 'toolkit.telemetry.hybridContent.enabled', + 'webgl.disable-extensions', + /* 61-68 */ + 'app.update.enabled', + 'browser.aboutHomeSnippets.updateUrl', + 'browser.chrome.errorReporter.enabled', + 'browser.chrome.errorReporter.submitUrl', + 'browser.chrome.favicons', + 'browser.ctrlTab.previews', + 'browser.fixup.hide_user_pass', + 'browser.newtabpage.activity-stream.asrouter.userprefs.cfr', + 'browser.newtabpage.activity-stream.disableSnippets', + 'browser.onboarding.enabled', + 'browser.search.countryCode', + 'browser.urlbar.autocomplete.enabled', + 'devtools.webide.adbAddonURL', + 'devtools.webide.autoinstallADBHelper', + 'dom.event.highrestimestamp.enabled', + 'experiments.activeExperiment', + 'experiments.enabled', + 'experiments.manifest.uri', + 'experiments.supported', + 'lightweightThemes.update.enabled', + 'media.autoplay.enabled', + 'network.allow-experiments', + 'network.cookie.lifetime.days', + 'network.jar.block-remote-files', + 'network.jar.open-unsafe-types', + 'plugin.state.java', + 'security.csp.enable_violation_events', + 'security.csp.experimentalEnabled', + 'shield.savant.enabled', + /* 60 or earlier */ + 'browser.bookmarks.showRecentlyBookmarked', + 'browser.casting.enabled', + 'browser.crashReports.unsubmittedCheck.autoSubmit', + 'browser.formautofill.enabled', + 'browser.formfill.saveHttpsForms', + 'browser.fullscreen.animate', + 'browser.history.allowPopState', + 'browser.history.allowPushState', + 'browser.history.allowReplaceState', + 'browser.newtabpage.activity-stream.enabled', + 'browser.newtabpage.directory.ping', + 'browser.newtabpage.directory.source', + 'browser.newtabpage.enhanced', + 'browser.newtabpage.introShown', + 'browser.pocket.api', + 'browser.pocket.enabled', + 'browser.pocket.oAuthConsumerKey', + 'browser.pocket.site', + 'browser.polaris.enabled', + 'browser.safebrowsing.appRepURL', + 'browser.safebrowsing.enabled', + 'browser.safebrowsing.gethashURL', + 'browser.safebrowsing.malware.reportURL', + 'browser.safebrowsing.provider.google.appRepURL', + 'browser.safebrowsing.reportErrorURL', + 'browser.safebrowsing.reportGenericURL', + 'browser.safebrowsing.reportMalwareErrorURL', + 'browser.safebrowsing.reportMalwareMistakeURL', + 'browser.safebrowsing.reportMalwareURL', + 'browser.safebrowsing.reportPhishMistakeURL', + 'browser.safebrowsing.reportURL', + 'browser.safebrowsing.updateURL', + 'browser.search.showOneOffButtons', + 'browser.selfsupport.enabled', + 'browser.selfsupport.url', + 'browser.sessionstore.privacy_level_deferred', + 'browser.tabs.animate', + 'browser.trackingprotection.gethashURL', + 'browser.trackingprotection.updateURL', + 'browser.urlbar.unifiedcomplete', + 'browser.usedOnWindows10.introURL', + 'camera.control.autofocus_moving_callback.enabled', + 'camera.control.face_detection.enabled', + 'datareporting.healthreport.about.reportUrl', + 'datareporting.healthreport.about.reportUrlUnified', + 'datareporting.healthreport.documentServerURI', + 'datareporting.healthreport.service.enabled', + 'datareporting.policy.dataSubmissionEnabled.v2', + 'devtools.webide.autoinstallFxdtAdapters', + 'dom.archivereader.enabled', + 'dom.battery.enabled', + 'dom.beforeAfterKeyboardEvent.enabled', + 'dom.disable_image_src_set', + 'dom.disable_window_open_feature.scrollbars', + 'dom.disable_window_status_change', + 'dom.enable_user_timing', + 'dom.flyweb.enabled', + 'dom.idle-observers-api.enabled', + 'dom.keyboardevent.code.enabled', + 'dom.network.enabled', + 'dom.push.udp.wakeupEnabled', + 'dom.telephony.enabled', + 'dom.vr.oculus050.enabled', + 'dom.workers.enabled', + 'dom.workers.sharedWorkers.enabled', + 'extensions.formautofill.experimental', + 'extensions.screenshots.system-disabled', + 'extensions.shield-recipe-client.api_url', + 'extensions.shield-recipe-client.enabled', + 'full-screen-api.approval-required', + 'general.useragent.locale', + 'geo.security.allowinsecure', + 'intl.locale.matchOS', + 'loop.enabled', + 'loop.facebook.appId', + 'loop.facebook.enabled', + 'loop.facebook.fallbackUrl', + 'loop.facebook.shareUrl', + 'loop.feedback.formURL', + 'loop.feedback.manualFormURL', + 'loop.logDomains', + 'loop.server', + 'media.block-play-until-visible', + 'media.eme.apiVisible', + 'media.eme.chromium-api.enabled', + 'media.getusermedia.screensharing.allow_on_old_platforms', + 'media.getusermedia.screensharing.allowed_domains', + 'media.gmp-eme-adobe.autoupdate', + 'media.gmp-eme-adobe.enabled', + 'media.gmp-eme-adobe.visible', + 'network.http.referer.userControlPolicy', + 'network.http.sendSecureXSiteReferrer', + 'network.http.spdy.enabled.http2draft', + 'network.http.spdy.enabled.v3-1', + 'network.websocket.enabled', + 'pageThumbs.enabled', + 'pfs.datasource.url', + 'plugin.scan.Acrobat', + 'plugin.scan.Quicktime', + 'plugin.scan.WindowsMediaPlayer', + 'plugins.enumerable_names', + 'plugins.update.notifyUser', + 'plugins.update.url', + 'privacy.clearOnShutdown.passwords', + 'privacy.donottrackheader.value', + 'security.mixed_content.send_hsts_priming', + 'security.mixed_content.use_hsts', + 'security.ssl3.ecdhe_ecdsa_rc4_128_sha', + 'security.ssl3.ecdhe_rsa_rc4_128_sha', + 'security.ssl3.rsa_rc4_128_md5', + 'security.ssl3.rsa_rc4_128_sha', + 'security.tls.insecure_fallback_hosts.use_static_list', + 'security.tls.unrestricted_rc4_fallback', + 'security.xpconnect.plugin.unrestricted', + 'social.directories', + 'social.enabled', + 'social.remote-install.enabled', + 'social.share.activationPanelEnabled', + 'social.shareDirectory', + 'social.toast-notifications.enabled', + 'social.whitelist', + 'toolkit.telemetry.unifiedIsOptIn', + + /* REMOVED */ /* 92+ */ 'dom.caches.enabled', 'dom.storageManager.enabled', From 4ebabbb5692a25df6a5bf43911f13d078bb44e4e Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 09:13:51 +0000 Subject: [PATCH 046/219] Delete arkenfox-clear-deprecated.js --- .../arkenfox-clear-deprecated.js | 232 ------------------ 1 file changed, 232 deletions(-) delete mode 100644 scratchpad-scripts/arkenfox-clear-deprecated.js diff --git a/scratchpad-scripts/arkenfox-clear-deprecated.js b/scratchpad-scripts/arkenfox-clear-deprecated.js deleted file mode 100644 index 9ef8100..0000000 --- a/scratchpad-scripts/arkenfox-clear-deprecated.js +++ /dev/null @@ -1,232 +0,0 @@ -/*** - Version: up to and including FF/ESR91 - - This will reset the preferences that have been deprecated by Mozilla - and used in the arkenfox user.js - - It is in reverse order, so feel free to remove sections that do not apply - - For instructions see: - https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts] -***/ - -(() => { - - if ('undefined' === typeof(Services)) return alert('about:config needs to be the active tab!'); - - const aPREFS = [ - /* deprecated */ - /* FF79-91 */ - 'browser.cache.offline.storage.enable', - 'browser.download.hide_plugins_without_extensions', - 'browser.library.activity-stream.enabled', - 'browser.search.geoSpecificDefaults', - 'browser.search.geoSpecificDefaults.url', - 'dom.ipc.plugins.flash.subprocess.crashreporter.enabled', - 'dom.ipc.plugins.reportCrashURL', - 'dom.w3c_pointer_events.enabled', - 'intl.charset.fallback.override', - 'network.ftp.enabled', - 'plugin.state.flash', - 'security.mixed_content.block_object_subrequest', - 'security.ssl.errorReporting.automatic', - 'security.ssl.errorReporting.enabled', - 'security.ssl.errorReporting.url', - /* 69-78 */ - 'browser.newtabpage.activity-stream.telemetry.ping.endpoint', - 'browser.tabs.remote.allowLinkedWebInFileUriProcess', - 'browser.urlbar.oneOffSearches', - 'devtools.webide.autoinstallADBExtension', - 'devtools.webide.enabled', - 'dom.indexedDB.enabled', - 'extensions.blocklist.url', - 'geo.wifi.logging.enabled', - 'geo.wifi.uri', - 'gfx.downloadable_fonts.woff2.enabled', - 'media.autoplay.allow-muted', - 'media.autoplay.enabled.user-gestures-needed', - 'offline-apps.allow_by_default', - 'plugins.click_to_play', - 'privacy.userContext.longPressBehavior', - 'toolkit.cosmeticAnimations.enabled', - 'toolkit.telemetry.hybridContent.enabled', - 'webgl.disable-extensions', - /* 61-68 */ - 'app.update.enabled', - 'browser.aboutHomeSnippets.updateUrl', - 'browser.chrome.errorReporter.enabled', - 'browser.chrome.errorReporter.submitUrl', - 'browser.chrome.favicons', - 'browser.ctrlTab.previews', - 'browser.fixup.hide_user_pass', - 'browser.newtabpage.activity-stream.asrouter.userprefs.cfr', - 'browser.newtabpage.activity-stream.disableSnippets', - 'browser.onboarding.enabled', - 'browser.search.countryCode', - 'browser.urlbar.autocomplete.enabled', - 'devtools.webide.adbAddonURL', - 'devtools.webide.autoinstallADBHelper', - 'dom.event.highrestimestamp.enabled', - 'experiments.activeExperiment', - 'experiments.enabled', - 'experiments.manifest.uri', - 'experiments.supported', - 'lightweightThemes.update.enabled', - 'media.autoplay.enabled', - 'network.allow-experiments', - 'network.cookie.lifetime.days', - 'network.jar.block-remote-files', - 'network.jar.open-unsafe-types', - 'plugin.state.java', - 'security.csp.enable_violation_events', - 'security.csp.experimentalEnabled', - 'shield.savant.enabled', - /* 60 or earlier */ - 'browser.bookmarks.showRecentlyBookmarked', - 'browser.casting.enabled', - 'browser.crashReports.unsubmittedCheck.autoSubmit', - 'browser.formautofill.enabled', - 'browser.formfill.saveHttpsForms', - 'browser.fullscreen.animate', - 'browser.history.allowPopState', - 'browser.history.allowPushState', - 'browser.history.allowReplaceState', - 'browser.newtabpage.activity-stream.enabled', - 'browser.newtabpage.directory.ping', - 'browser.newtabpage.directory.source', - 'browser.newtabpage.enhanced', - 'browser.newtabpage.introShown', - 'browser.pocket.api', - 'browser.pocket.enabled', - 'browser.pocket.oAuthConsumerKey', - 'browser.pocket.site', - 'browser.polaris.enabled', - 'browser.safebrowsing.appRepURL', - 'browser.safebrowsing.enabled', - 'browser.safebrowsing.gethashURL', - 'browser.safebrowsing.malware.reportURL', - 'browser.safebrowsing.provider.google.appRepURL', - 'browser.safebrowsing.reportErrorURL', - 'browser.safebrowsing.reportGenericURL', - 'browser.safebrowsing.reportMalwareErrorURL', - 'browser.safebrowsing.reportMalwareMistakeURL', - 'browser.safebrowsing.reportMalwareURL', - 'browser.safebrowsing.reportPhishMistakeURL', - 'browser.safebrowsing.reportURL', - 'browser.safebrowsing.updateURL', - 'browser.search.showOneOffButtons', - 'browser.selfsupport.enabled', - 'browser.selfsupport.url', - 'browser.sessionstore.privacy_level_deferred', - 'browser.tabs.animate', - 'browser.trackingprotection.gethashURL', - 'browser.trackingprotection.updateURL', - 'browser.urlbar.unifiedcomplete', - 'browser.usedOnWindows10.introURL', - 'camera.control.autofocus_moving_callback.enabled', - 'camera.control.face_detection.enabled', - 'datareporting.healthreport.about.reportUrl', - 'datareporting.healthreport.about.reportUrlUnified', - 'datareporting.healthreport.documentServerURI', - 'datareporting.healthreport.service.enabled', - 'datareporting.policy.dataSubmissionEnabled.v2', - 'devtools.webide.autoinstallFxdtAdapters', - 'dom.archivereader.enabled', - 'dom.battery.enabled', - 'dom.beforeAfterKeyboardEvent.enabled', - 'dom.disable_image_src_set', - 'dom.disable_window_open_feature.scrollbars', - 'dom.disable_window_status_change', - 'dom.enable_user_timing', - 'dom.flyweb.enabled', - 'dom.idle-observers-api.enabled', - 'dom.keyboardevent.code.enabled', - 'dom.network.enabled', - 'dom.push.udp.wakeupEnabled', - 'dom.telephony.enabled', - 'dom.vr.oculus050.enabled', - 'dom.workers.enabled', - 'dom.workers.sharedWorkers.enabled', - 'extensions.formautofill.experimental', - 'extensions.screenshots.system-disabled', - 'extensions.shield-recipe-client.api_url', - 'extensions.shield-recipe-client.enabled', - 'full-screen-api.approval-required', - 'general.useragent.locale', - 'geo.security.allowinsecure', - 'intl.locale.matchOS', - 'loop.enabled', - 'loop.facebook.appId', - 'loop.facebook.enabled', - 'loop.facebook.fallbackUrl', - 'loop.facebook.shareUrl', - 'loop.feedback.formURL', - 'loop.feedback.manualFormURL', - 'loop.logDomains', - 'loop.server', - 'media.block-play-until-visible', - 'media.eme.apiVisible', - 'media.eme.chromium-api.enabled', - 'media.getusermedia.screensharing.allow_on_old_platforms', - 'media.getusermedia.screensharing.allowed_domains', - 'media.gmp-eme-adobe.autoupdate', - 'media.gmp-eme-adobe.enabled', - 'media.gmp-eme-adobe.visible', - 'network.http.referer.userControlPolicy', - 'network.http.sendSecureXSiteReferrer', - 'network.http.spdy.enabled.http2draft', - 'network.http.spdy.enabled.v3-1', - 'network.websocket.enabled', - 'pageThumbs.enabled', - 'pfs.datasource.url', - 'plugin.scan.Acrobat', - 'plugin.scan.Quicktime', - 'plugin.scan.WindowsMediaPlayer', - 'plugins.enumerable_names', - 'plugins.update.notifyUser', - 'plugins.update.url', - 'privacy.clearOnShutdown.passwords', - 'privacy.donottrackheader.value', - 'security.mixed_content.send_hsts_priming', - 'security.mixed_content.use_hsts', - 'security.ssl3.ecdhe_ecdsa_rc4_128_sha', - 'security.ssl3.ecdhe_rsa_rc4_128_sha', - 'security.ssl3.rsa_rc4_128_md5', - 'security.ssl3.rsa_rc4_128_sha', - 'security.tls.insecure_fallback_hosts.use_static_list', - 'security.tls.unrestricted_rc4_fallback', - 'security.xpconnect.plugin.unrestricted', - 'social.directories', - 'social.enabled', - 'social.remote-install.enabled', - 'social.share.activationPanelEnabled', - 'social.shareDirectory', - 'social.toast-notifications.enabled', - 'social.whitelist', - 'toolkit.telemetry.unifiedIsOptIn', - - /* reset parrot: check your open about:config after running the script */ - '_user.js.parrot' - ]; - - console.clear(); - - let c = 0; - for (const sPname of aPREFS) { - if (Services.prefs.prefHasUserValue(sPname)) { - Services.prefs.clearUserPref(sPname); - if (!Services.prefs.prefHasUserValue(sPname)) { - console.info('reset', sPname); - c++; - } else console.warn('failed to reset', sPname); - } - } - - focus(); - - const d = (c==1) ? ' pref' : ' prefs'; - alert(c ? 'successfully reset ' + c + d + "\n\nfor details check the console" : 'nothing to reset'); - - return 'all done'; - -})(); From 93874bda436f6365832c1ecaeb691013bab516c6 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 09:14:59 +0000 Subject: [PATCH 047/219] rename --- .../{arkenfox-clear-removed.js => arkenfox-cleanup.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scratchpad-scripts/{arkenfox-clear-removed.js => arkenfox-cleanup.js} (100%) diff --git a/scratchpad-scripts/arkenfox-clear-removed.js b/scratchpad-scripts/arkenfox-cleanup.js similarity index 100% rename from scratchpad-scripts/arkenfox-clear-removed.js rename to scratchpad-scripts/arkenfox-cleanup.js From 460951df9e54a24540181a74379a12aaffa7798e Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 09:37:45 +0000 Subject: [PATCH 048/219] tidy, add instructions --- scratchpad-scripts/arkenfox-cleanup.js | 27 ++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/scratchpad-scripts/arkenfox-cleanup.js b/scratchpad-scripts/arkenfox-cleanup.js index d928daf..17de71a 100644 --- a/scratchpad-scripts/arkenfox-cleanup.js +++ b/scratchpad-scripts/arkenfox-cleanup.js @@ -1,12 +1,29 @@ /*** This will reset the preferences that have been - - removed from the arkenfox user.js. - - deprecated by Mozilla but used in the arkenfox user.js in the past + - removed from the arkenfox user.js + - deprecated by Mozilla but listed in the arkenfox user.js in the past Last updated: 11-December-2021 - For instructions see: - https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts] + Instructions: + - [optional] close Firefox and backup your profile + - [optional] disable your network connection [1] + - start Firefox + - load about:config and press Ctrl+Shift+K to open the Web Console for about:config + - using about:config is important, so the script has the right permissions + - paste this script + - if you edited the list of prefs in the script, make sure the last pref does not have a trailing comma + - hit enter + - check the Info output to see which prefs were reset + - restart + - some prefs require a restart + - a restart will reapply your user.js + - [optional] re-enable your network connection + + [1] Blocking Firefox from the internet ensures it cannot act on your reset preferences in the + period before you restart it, such as app and extension auto-updating, or downloading unwanted + components (GMP etc). It depends on what you're resetting and how long before you restart. + ***/ (() => { @@ -435,6 +452,8 @@ // 'dom.ipc.plugins.sandbox-level.default', // 'dom.ipc.plugins.sandbox-level.flash', // 'security.sandbox.logging.enabled', + + /* IMPORTANT: last active pref must not have a trailing comma */ /* reset parrot: check your open about:config after running the script */ '_user.js.parrot' ]; From af109d4696a3f8142a1023974b2a3713a89b030a Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 11:15:34 +0000 Subject: [PATCH 049/219] tweak 7016 --- user.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user.js b/user.js index 63579c1..279dd42 100644 --- a/user.js +++ b/user.js @@ -1213,8 +1213,9 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies * [WHY] DNT is enforced with Tracking Protection which is used in ETP Strict (2701) ***/ // user_pref("privacy.donottrackheader.enabled", true); /* 7016: customize ETP settings - * [WHY] Just use strict which sets these at runtime (2701) ***/ + * [WHY] Arkenfox only supports strict which sets these at runtime (2701) ***/ // user_pref("network.cookie.cookieBehavior", 5); + // user_pref("privacy.partition.network_state.ocsp_cache", true); // user_pref("privacy.trackingprotection.enabled", true); // user_pref("privacy.trackingprotection.socialtracking.enabled", true); // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] From 7ec13c0323f53a959eaa7f21b425b30290112e12 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 12:22:00 +0000 Subject: [PATCH 050/219] sharedWorkers tweak tested in FF91+. Seems as if sharedWorkers no longer requires an explicit `Allow` --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 279dd42..3827e00 100644 --- a/user.js +++ b/user.js @@ -806,8 +806,8 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" /** COOKIES + SITE DATA : ALLOWS EXCEPTIONS ***/ /* 2801: delete cookies and site data on exit * 0=keep until they expire (default), 2=keep until you close Firefox - * [NOTE] A "cookie" permission also controls localStorage/sessionStorage, idexedDB. - * sharedWorkers and serviceWorkers require an `Allow` permission + * [NOTE] A "cookie" block permission also controls localStorage/sessionStorage, idexedDB, + * sharedWorkers and serviceWorkers. serviceWorkers require an `Allow` permission * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow * If using FPI the syntax must be https://example.com/^firstPartyDomain=example.com From 54810e333f4b9ef442ab66eeb412efcdcfe81eda Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 11 Dec 2021 19:17:43 +0000 Subject: [PATCH 051/219] typo --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 3827e00..23ba046 100644 --- a/user.js +++ b/user.js @@ -806,7 +806,7 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" /** COOKIES + SITE DATA : ALLOWS EXCEPTIONS ***/ /* 2801: delete cookies and site data on exit * 0=keep until they expire (default), 2=keep until you close Firefox - * [NOTE] A "cookie" block permission also controls localStorage/sessionStorage, idexedDB, + * [NOTE] A "cookie" block permission also controls localStorage/sessionStorage, indexedDB, * sharedWorkers and serviceWorkers. serviceWorkers require an `Allow` permission * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow From 8cdb30cc0811ae3f2198aeb24c330993f5192400 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 12 Dec 2021 00:26:12 +0000 Subject: [PATCH 052/219] make cookie pref active @SkewedZeppelin ... https://github.com/arkenfox/user.js/issues/1051#issuecomment-991806497 --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 23ba046..99a62e8 100644 --- a/user.js +++ b/user.js @@ -798,6 +798,7 @@ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ user_pref("browser.contentblocking.category", "strict"); +user_pref("network.cookie.cookieBehavior", 5); /* 2702: enable state partitioning of service workers [FF96+] ***/ user_pref("privacy.partition.serviceWorkers", true); @@ -1214,7 +1215,6 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("privacy.donottrackheader.enabled", true); /* 7016: customize ETP settings * [WHY] Arkenfox only supports strict which sets these at runtime (2701) ***/ - // user_pref("network.cookie.cookieBehavior", 5); // user_pref("privacy.partition.network_state.ocsp_cache", true); // user_pref("privacy.trackingprotection.enabled", true); // user_pref("privacy.trackingprotection.socialtracking.enabled", true); From f836e553635ffe057d49c591e6256d46158ccdf0 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 12 Dec 2021 13:31:01 +0000 Subject: [PATCH 053/219] tidy ETP stuff --- user.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 99a62e8..8fea2f0 100644 --- a/user.js +++ b/user.js @@ -792,13 +792,12 @@ user_pref("extensions.postDownloadThirdPartyPrompt", false); /*** [SECTION 2700]: ETP (ENHANCED TRACKING PROTECTION) ***/ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!"); -/* 2701: enable Enhanced Tracking Protection's (ETP) Strict Mode [FF86+] +/* 2701: enable ETP Strict Mode [FF86+] * [NOTE] ETP Strict Mode enables Total Cookie Protection (TCP) * [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ user_pref("browser.contentblocking.category", "strict"); -user_pref("network.cookie.cookieBehavior", 5); /* 2702: enable state partitioning of service workers [FF96+] ***/ user_pref("privacy.partition.serviceWorkers", true); @@ -1214,7 +1213,9 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies * [WHY] DNT is enforced with Tracking Protection which is used in ETP Strict (2701) ***/ // user_pref("privacy.donottrackheader.enabled", true); /* 7016: customize ETP settings - * [WHY] Arkenfox only supports strict which sets these at runtime (2701) ***/ + * [WHY] Arkenfox only supports strict (2701) which sets these at runtime ***/ + // user_pref("network.cookie.cookieBehavior", 5); + // user_pref("network.http.referer.disallowCrossSiteRelaxingDefault", true); // user_pref("privacy.partition.network_state.ocsp_cache", true); // user_pref("privacy.trackingprotection.enabled", true); // user_pref("privacy.trackingprotection.socialtracking.enabled", true); From c8c86262d7dc21cfc1329cfc7fafdb286149d21d Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 12 Dec 2021 13:51:25 +0000 Subject: [PATCH 054/219] enforce SmartBlock shims --- user.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/user.js b/user.js index 8fea2f0..bdaf498 100644 --- a/user.js +++ b/user.js @@ -798,7 +798,7 @@ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ user_pref("browser.contentblocking.category", "strict"); -/* 2702: enable state partitioning of service workers [FF96+] ***/ +/* 2710: enable state partitioning of service workers [FF96+] ***/ user_pref("privacy.partition.serviceWorkers", true); /*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/ @@ -1124,6 +1124,10 @@ user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] * [WARNING] Replaced with network partitioning (FF85+) and TCP (2701), * and enabling FPI disables those. FPI is no longer maintained ***/ user_pref("privacy.firstparty.isolate", false); // [DEFAULT: false] +/* 6009: enforce SmartBlock shims [FF81+] + * In FF96+ these are listed in about:compat + * [1] https://blog.mozilla.org/security/2021/03/23/introducing-smartblock/ ***/ +user_pref("extensions.webcompat.enable_shims", true); // [DEFAULT: true] /* 6050: prefsCleaner: reset previously active items removed from arkenfox FF92+ ***/ // placeholder From 8bc25b552db5fb1d0fbe5cd248bbc15c4aa216db Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 12 Dec 2021 15:30:53 +0000 Subject: [PATCH 055/219] expand 0650 to include any removed item this should reduce any dependency on the scratchpad script --- user.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index bdaf498..77f79c1 100644 --- a/user.js +++ b/user.js @@ -1128,8 +1128,13 @@ user_pref("privacy.firstparty.isolate", false); // [DEFAULT: false] * In FF96+ these are listed in about:compat * [1] https://blog.mozilla.org/security/2021/03/23/introducing-smartblock/ ***/ user_pref("extensions.webcompat.enable_shims", true); // [DEFAULT: true] -/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF92+ ***/ - // placeholder +/* 6050: prefsCleaner: reset items removed from arkenfox FF92+ ***/ + // user_pref(""dom.caches.enabled", ""); + // user_pref(""dom.storageManager.enabled", ""); + // user_pref(""dom.storage_access.enabled", ""); + // user_pref(""privacy.firstparty.isolate.block_post_message", ""); + // user_pref(""privacy.firstparty.isolate.restrict_opener_access", ""); + // user_pref(""privacy.firstparty.isolate.use_site", ""); /*** [SECTION 7000]: DON'T BOTHER ***/ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!"); From 8de87de0506c7a508958920e24ff2ca0b7026c98 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 12 Dec 2021 15:41:55 +0000 Subject: [PATCH 056/219] update 0704: GIO, closes #1050 (#1300) https://bugzilla.mozilla.org/show_bug.cgi?id=1666725 --- user.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 77f79c1..5560119 100644 --- a/user.js +++ b/user.js @@ -313,9 +313,9 @@ user_pref("network.proxy.socks_remote_dns", true); * [SETUP-CHROME] Can break extensions for profiles on network shares * [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/26424 ***/ user_pref("network.file.disable_unc_paths", true); // [HIDDEN PREF] -/* 0704: disable GIO as a potential proxy bypass vector [FF60+] - * Gvfs/GIO has a set of supported protocols like obex, network, archive, computer, dav, cdda, - * gphoto2, trash, etc. By default only smb and sftp protocols are accepted so far (as of FF64) +/* 0704: disable GIO as a potential proxy bypass vector + * Gvfs/GIO has a set of supported protocols like obex, network, archive, computer, + * dav, cdda, gphoto2, trash, etc. By default only sftp is accepted (FF87+) * [1] https://bugzilla.mozilla.org/1433507 * [2] https://en.wikipedia.org/wiki/GVfs * [3] https://en.wikipedia.org/wiki/GIO_(software) ***/ From 78297132b421115da2820da133c24f53de3bb658 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 12 Dec 2021 15:44:39 +0000 Subject: [PATCH 057/219] fix syntax --- user.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/user.js b/user.js index 5560119..1ae1f9c 100644 --- a/user.js +++ b/user.js @@ -1129,12 +1129,12 @@ user_pref("privacy.firstparty.isolate", false); // [DEFAULT: false] * [1] https://blog.mozilla.org/security/2021/03/23/introducing-smartblock/ ***/ user_pref("extensions.webcompat.enable_shims", true); // [DEFAULT: true] /* 6050: prefsCleaner: reset items removed from arkenfox FF92+ ***/ - // user_pref(""dom.caches.enabled", ""); - // user_pref(""dom.storageManager.enabled", ""); - // user_pref(""dom.storage_access.enabled", ""); - // user_pref(""privacy.firstparty.isolate.block_post_message", ""); - // user_pref(""privacy.firstparty.isolate.restrict_opener_access", ""); - // user_pref(""privacy.firstparty.isolate.use_site", ""); + // user_pref("dom.caches.enabled", ""); + // user_pref("dom.storageManager.enabled", ""); + // user_pref("dom.storage_access.enabled", ""); + // user_pref("privacy.firstparty.isolate.block_post_message", ""); + // user_pref("privacy.firstparty.isolate.restrict_opener_access", ""); + // user_pref("privacy.firstparty.isolate.use_site", ""); /*** [SECTION 7000]: DON'T BOTHER ***/ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!"); From c269ac9f7d8226fdc53da74754a0441809ac3c7b Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 13 Dec 2021 03:49:42 +0000 Subject: [PATCH 058/219] remove duplicate --- scratchpad-scripts/arkenfox-cleanup.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scratchpad-scripts/arkenfox-cleanup.js b/scratchpad-scripts/arkenfox-cleanup.js index 17de71a..c209797 100644 --- a/scratchpad-scripts/arkenfox-cleanup.js +++ b/scratchpad-scripts/arkenfox-cleanup.js @@ -152,7 +152,6 @@ 'datareporting.policy.dataSubmissionEnabled.v2', 'devtools.webide.autoinstallFxdtAdapters', 'dom.archivereader.enabled', - 'dom.battery.enabled', 'dom.beforeAfterKeyboardEvent.enabled', 'dom.disable_image_src_set', 'dom.disable_window_open_feature.scrollbars', From 238f1545f4de5b873e9e717c458c200a049c73e5 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 13 Dec 2021 14:15:25 +0000 Subject: [PATCH 059/219] =?UTF-8?q?fixup=20thanks=20#fxbrit=20have=20a=20?= =?UTF-8?q?=F0=9F=8D=A5=20fish=20cake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.js b/user.js index 1ae1f9c..88af5a7 100644 --- a/user.js +++ b/user.js @@ -1231,7 +1231,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true] // user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true] /* 7017: disable service workers [FF32, FF44-compat] - * [WHY] Already isolated (FF96+) with TCP (2701) behind a pref (2702) + * [WHY] Already isolated (FF96+) with TCP (2701) behind a pref (2710) * or blocked with TCP in 3rd parties (FF95 or lower) ***/ // user_pref("dom.serviceWorkers.enabled", false); From 7811e912f479e1b1036ab30328d89f5d1ef7422f Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 14 Dec 2021 13:25:46 +0000 Subject: [PATCH 060/219] make push notifications inactive - they require SWers which are already blocked by virtue of permissions being session only - also remove "dom.push.userAgentID" as this means prefsCleaner resets it and would wipe user's subscriptions - not adding "dom.push.userAgentID" to the cleanup script for the same reason --- user.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index 88af5a7..3e150a3 100644 --- a/user.js +++ b/user.js @@ -695,11 +695,10 @@ user_pref("dom.popup_allowed_events", "click dblclick mousedown pointerdown"); * Push allows websites to send you subscribed messages through Mozilla's Push Server, * and requires service workers to subscribe to and display, and is behind a prompt (7002) * [NOTE] Disabling service workers alone doesn't stop Firefox polling the Mozilla Push Server - * [NOTE] To remove all subscriptions, reset your userAgentID + * [NOTE] To remove all subscriptions, reset "dom.push.userAgentID" * [1] https://support.mozilla.org/kb/push-notifications-firefox * [2] https://developer.mozilla.org/docs/Web/API/Push_API ***/ -user_pref("dom.push.enabled", false); - // user_pref("dom.push.userAgentID", ""); + // user_pref("dom.push.enabled", false); /*** [SECTION 2600]: MISCELLANEOUS ***/ user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!"); @@ -807,7 +806,7 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" /* 2801: delete cookies and site data on exit * 0=keep until they expire (default), 2=keep until you close Firefox * [NOTE] A "cookie" block permission also controls localStorage/sessionStorage, indexedDB, - * sharedWorkers and serviceWorkers. serviceWorkers require an `Allow` permission + * sharedWorkers and serviceWorkers. serviceWorkers require an "Allow" permission * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow * If using FPI the syntax must be https://example.com/^firstPartyDomain=example.com From 93f0ff89c8ff54e74b1d0cc9e27a41f653c33812 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 15 Dec 2021 00:05:03 +0000 Subject: [PATCH 061/219] move web notifcations to don't bother --- user.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/user.js b/user.js index 3e150a3..3e19e34 100644 --- a/user.js +++ b/user.js @@ -687,18 +687,6 @@ user_pref("dom.disable_window_move_resize", true); user_pref("dom.disable_open_during_load", true); /* 2404: limit events that can cause a popup [SETUP-WEB] ***/ user_pref("dom.popup_allowed_events", "click dblclick mousedown pointerdown"); -/* 2410: disable Web Notifications - * [NOTE] Web Notifications are behind a prompt (7002) ***/ - // user_pref("dom.webnotifications.enabled", false); // [FF22+] - // user_pref("dom.webnotifications.serviceworker.enabled", false); // [FF44+] -/* 2411: disable Push Notifications [FF44+] - * Push allows websites to send you subscribed messages through Mozilla's Push Server, - * and requires service workers to subscribe to and display, and is behind a prompt (7002) - * [NOTE] Disabling service workers alone doesn't stop Firefox polling the Mozilla Push Server - * [NOTE] To remove all subscriptions, reset "dom.push.userAgentID" - * [1] https://support.mozilla.org/kb/push-notifications-firefox - * [2] https://developer.mozilla.org/docs/Web/API/Push_API ***/ - // user_pref("dom.push.enabled", false); /*** [SECTION 2600]: MISCELLANEOUS ***/ user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!"); @@ -1179,6 +1167,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies /* 7006: onions * [WHY] Firefox doesn't support hidden services. Use Tor Browser ***/ // user_pref("dom.securecontext.whitelist_onions", true); // 1382359 + // user_pref("dom.securecontext.allowlist_onions", true); // [FF97+] 1382359/1744006 // user_pref("network.http.referer.hideOnionSource", true); // 1305144 /* 7007: referers * [WHY] Only cross-origin referers (1600s) need control ***/ @@ -1233,6 +1222,16 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies * [WHY] Already isolated (FF96+) with TCP (2701) behind a pref (2710) * or blocked with TCP in 3rd parties (FF95 or lower) ***/ // user_pref("dom.serviceWorkers.enabled", false); +/* 7018: disable Web Notifications + * [WHY] Web Notifications are behind a prompt (7002) + * [1] https://blog.mozilla.org/en/products/firefox/block-notification-requests/ ***/ + // user_pref("dom.webnotifications.enabled", false); // [FF22+] + // user_pref("dom.webnotifications.serviceworker.enabled", false); // [FF44+] +/* 7019: disable Push Notifications [FF44+] + * [WHY] Push requires subscription + * [NOTE] To remove all subscriptions, reset "dom.push.userAgentID" + * [1] https://support.mozilla.org/kb/push-notifications-firefox ***/ + // user_pref("dom.push.enabled", false); /*** [SECTION 8000]: DON'T BOTHER: FINGERPRINTING [WHY] They are insufficient to help anti-fingerprinting and do more harm than good From bb56056a68906ddd178f64ab0b016c8bbe9786fb Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 15 Dec 2021 19:23:03 +0000 Subject: [PATCH 062/219] explain 0-RTT --- user.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 3e19e34..4d70fd3 100644 --- a/user.js +++ b/user.js @@ -481,7 +481,7 @@ user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!"); * safe from the attack if it disables renegotiations 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. - * [STATS] SSL Labs (July 2021) reports over 99% of sites have secure renegotiation [4] + * [STATS] SSL Labs (July 2021) reports over 99% of top sites have secure renegotiation [4] * [1] https://wiki.mozilla.org/Security:Renegotiation * [2] https://datatracker.ietf.org/doc/html/rfc5746 * [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 @@ -490,8 +490,11 @@ user_pref("security.ssl.require_safe_negotiation", true); /* 1203: reset TLS 1.0 and 1.1 downgrades i.e. session only ***/ user_pref("security.tls.version.enable-deprecated", false); // [DEFAULT: false] /* 1206: disable TLS1.3 0-RTT (round-trip time) [FF51+] + * This data is not forward secret, as it is encrypted solely under keys derived using + * the offered PSK. There are no guarantees of non-replay between connections * [1] https://github.com/tlswg/tls13-spec/issues/1001 - * [2] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/ + * [2] https://www.rfc-editor.org/rfc/rfc9001.html#name-replay-attacks-with-0-rtt + * [3] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/ user_pref("security.tls.enable_0rtt_data", false); /** OCSP (Online Certificate Status Protocol) From 6675225ec4a40bdb7d38b299893cd5b472b60c3a Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 23 Dec 2021 06:36:39 +0000 Subject: [PATCH 063/219] make 0301 inactive auto-updating is not a security nor a privacy risk, by default it should be enabled and it's on end-users if they want to disable it - does not affect windows users --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 4d70fd3..56be810 100644 --- a/user.js +++ b/user.js @@ -142,7 +142,7 @@ user_pref("_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the /* 0301: disable auto-INSTALLING Firefox updates [NON-WINDOWS] * [NOTE] You will still get prompts to update, and should do so in a timely manner * [SETTING] General>Firefox Updates>Check for updates but let you choose to install them ***/ -user_pref("app.update.auto", false); + // user_pref("app.update.auto", false); /* 0302: disable auto-INSTALLING Firefox updates via a background service [FF90+] [WINDOWS] * [SETTING] General>Firefox Updates>Automatically install updates>When Firefox is not running * [1] https://support.mozilla.org/kb/enable-background-updates-firefox-windows ***/ @@ -945,7 +945,7 @@ user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF] // user_pref("privacy.resistFingerprinting.exemptedDomains", "*.example.invalid"); // user_pref("privacy.resistFingerprinting.testGranularityMask", 0); /* 4506: set RFP's font visibility level (1402) [FF94+] ***/ - // user_pref("layout.css.font-visibility.resistFingerprinting", 1); + // user_pref("layout.css.font-visibility.resistFingerprinting", 1); // [DEFAULT: 1] /* 4507: disable showing about:blank as soon as possible during startup [FF60+] * When default true this no longer masks the RFP chrome resizing activity * [1] https://bugzilla.mozilla.org/1448423 ***/ From d48d3ad29a095eb0bd467040c9db5482a79dc516 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 23 Dec 2021 21:20:28 +0000 Subject: [PATCH 064/219] remove browser.eme.ui.enabled --- scratchpad-scripts/arkenfox-cleanup.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scratchpad-scripts/arkenfox-cleanup.js b/scratchpad-scripts/arkenfox-cleanup.js index c209797..6aa8c31 100644 --- a/scratchpad-scripts/arkenfox-cleanup.js +++ b/scratchpad-scripts/arkenfox-cleanup.js @@ -287,7 +287,6 @@ 'browser.cache.disk.smart_size.first_run', 'browser.cache.offline.insecure.enable', 'browser.contentblocking.enabled', - 'browser.eme.ui.enabled', 'browser.laterrun.enabled', 'browser.offline-apps.notify', 'browser.rights.3.shown', From 87bd8683fa384c0e9932230c8957ac0717a0b430 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 23 Dec 2021 21:22:41 +0000 Subject: [PATCH 065/219] 2022: add browser.eme.ui.enabled for those who want to remove DRM prompts and have no intention of enabling it --- user.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/user.js b/user.js index 56be810..3930e10 100644 --- a/user.js +++ b/user.js @@ -660,11 +660,13 @@ user_pref("media.peerconnection.ice.default_address_only", true); * [NOTE] This is covered by the EME master switch (2022) ***/ // user_pref("media.gmp-widevinecdm.enabled", false); /* 2022: disable all DRM content (EME: Encryption Media Extension) + * Optionally hide the setting which also removes the DRM prompt * [SETUP-WEB] e.g. Netflix, Amazon Prime, Hulu, HBO, Disney+, Showtime, Starz, DirectTV * [SETTING] General>DRM Content>Play DRM-controlled content * [TEST] https://bitmovin.com/demos/drm * [1] https://www.eff.org/deeplinks/2017/10/drms-dead-canary-how-we-just-lost-web-what-we-learned-it-and-what-we-need-do-next ***/ user_pref("media.eme.enabled", false); + // user_pref("browser.eme.ui.enabled", false); /* 2030: disable autoplay of HTML5 media [FF63+] * 0=Allow all, 1=Block non-muted media (default), 5=Block all * [NOTE] You can set exceptions under site permissions From d2510b014d768d867c9f83ba7cded0a1bf280b52 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 23 Dec 2021 23:42:28 +0000 Subject: [PATCH 066/219] move updates to personal updating (app, extensions, ext cache) is not a privacy issue - if you're willing to use Firefox but not trust updating, then I have two bricks to sell you: users who wish to disable it (to check changes first etc) and update in a timely manner, then that is on them - including any prompt fatigue - same goes for extensions: the end-user installed them (and arkenfox only recommends a very select few) - the onus is on the end-user The remaining ones I will deal with later --- user.js | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/user.js b/user.js index 3930e10..3d95610 100644 --- a/user.js +++ b/user.js @@ -139,23 +139,10 @@ user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF] /*** [SECTION 0300]: QUIETER FOX ***/ user_pref("_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!"); /** UPDATES ***/ -/* 0301: disable auto-INSTALLING Firefox updates [NON-WINDOWS] - * [NOTE] You will still get prompts to update, and should do so in a timely manner - * [SETTING] General>Firefox Updates>Check for updates but let you choose to install them ***/ - // user_pref("app.update.auto", false); /* 0302: disable auto-INSTALLING Firefox updates via a background service [FF90+] [WINDOWS] * [SETTING] General>Firefox Updates>Automatically install updates>When Firefox is not running * [1] https://support.mozilla.org/kb/enable-background-updates-firefox-windows ***/ user_pref("app.update.background.scheduling.enabled", false); -/* 0303: disable auto-CHECKING for extension and theme updates ***/ - // user_pref("extensions.update.enabled", false); -/* 0304: disable auto-INSTALLING extension and theme updates (after the check in 0303) - * [SETTING] about:addons>Extensions>[cog-wheel-icon]>Update Add-ons Automatically (toggle) ***/ - // user_pref("extensions.update.autoUpdateDefault", false); -/* 0305: disable extension metadata - * used when installing/updating an extension, and in daily background update checks: - * when false, extension detail tabs will have no description ***/ - // user_pref("extensions.getAddons.cache.enabled", false); /* 0306: disable search engine updates (e.g. OpenSearch) * [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/ user_pref("browser.search.update", false); @@ -660,7 +647,7 @@ user_pref("media.peerconnection.ice.default_address_only", true); * [NOTE] This is covered by the EME master switch (2022) ***/ // user_pref("media.gmp-widevinecdm.enabled", false); /* 2022: disable all DRM content (EME: Encryption Media Extension) - * Optionally hide the setting which also removes the DRM prompt + * Optionally hide the setting which also disables the DRM prompt * [SETUP-WEB] e.g. Netflix, Amazon Prime, Hulu, HBO, Disney+, Showtime, Starz, DirectTV * [SETTING] General>DRM Content>Play DRM-controlled content * [TEST] https://bitmovin.com/demos/drm @@ -1286,6 +1273,14 @@ user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switc // user_pref("browser.warnOnQuitShortcut", false); // [FF94+] // user_pref("full-screen-api.warning.delay", 0); // user_pref("full-screen-api.warning.timeout", 0); +/* UPDATES ***/ + // user_pref("app.update.auto", false); // [NON-WINDOWS] disable auto app updates + // [NOTE] You will still get prompts to update, and should do so in a timely manner + // [SETTING] General>Firefox Updates>Check for updates but let you choose to install them + // user_pref("extensions.update.enabled", false); // disable extension and theme update checks + // user_pref("extensions.update.autoUpdateDefault", false); // disable installing extension and theme updates + // [SETTING] about:addons>Extensions>[cog-wheel-icon]>Update Add-ons Automatically (toggle) + // user_pref("extensions.getAddons.cache.enabled", false); // disable extension metadata (extension detail tab) /* APPEARANCE ***/ // user_pref("browser.download.autohideButton", false); // [FF57+] // user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); // [FF68+] allow userChrome/userContent From 7e18f8b47365d0b4155b83809830bfd10735c164 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Fri, 24 Dec 2021 06:01:41 +0000 Subject: [PATCH 067/219] tweak 2011 - FF85+ switched to using application regional locale - go to about:support > Internationalization & Localization (almost at the very end) - look at Application > Regional Preferences - add test --- user.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user.js b/user.js index 3d95610..4e82ff5 100644 --- a/user.js +++ b/user.js @@ -131,8 +131,9 @@ user_pref("browser.region.update.enabled", false); // [FF79+] * [SETTING] General>Language and Appearance>Language>Choose your preferred language... * [TEST] https://addons.mozilla.org/about ***/ user_pref("intl.accept_languages", "en-US, en"); -/* 0211: use US English locale regardless of the system locale +/* 0211: use en-US locale regardless of the system or region locale * [SETUP-WEB] May break some input methods e.g xim/ibus for CJK languages [1] + * [TEST] https://arkenfox.github.io/TZP/tests/formatting.html * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=867501,1629630 ***/ user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF] From 2787da7f90b31b19d3549b61a77210b79bd1166b Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Fri, 24 Dec 2021 06:04:38 +0000 Subject: [PATCH 068/219] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1522a3e..80ceef9 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Also be aware that the `arkenfox user.js` is made specifically for desktop Firef - [wiki](https://github.com/arkenfox/user.js/wiki) - [stickies](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22sticky+topic%22) - [diffs](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+label%3Adiffs) + - [common questions and answers](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+label%3Aanswered) ### 🟥 acknowledgments Literally thousands of sources, references and suggestions. Many thanks, and much appreciated. From 7016c2050d20d53242c30eaf0b3beca947e172f6 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Thu, 30 Dec 2021 03:15:56 +0000 Subject: [PATCH 069/219] move TLS 1.0/1.1 downgrades to don't bother https://bugzilla.mozilla.org/show_bug.cgi?id=1745678 --- user.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 4e82ff5..804f901 100644 --- a/user.js +++ b/user.js @@ -475,8 +475,6 @@ user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!"); * [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 * [4] https://www.ssllabs.com/ssl-pulse/ ***/ user_pref("security.ssl.require_safe_negotiation", true); -/* 1203: reset TLS 1.0 and 1.1 downgrades i.e. session only ***/ -user_pref("security.tls.version.enable-deprecated", false); // [DEFAULT: false] /* 1206: disable TLS1.3 0-RTT (round-trip time) [FF51+] * This data is not forward secret, as it is encrypted solely under keys derived using * the offered PSK. There are no guarantees of non-replay between connections @@ -1108,6 +1106,10 @@ user_pref("privacy.firstparty.isolate", false); // [DEFAULT: false] * In FF96+ these are listed in about:compat * [1] https://blog.mozilla.org/security/2021/03/23/introducing-smartblock/ ***/ user_pref("extensions.webcompat.enable_shims", true); // [DEFAULT: true] +/* 6010: enforce/reset TLS 1.0/1.1 downgrades to session only + * [NOTE] In FF97+ the TLS 1.0/1.1 downgrade UX was removed + * [TEST] https://tls-v1-1.badssl.com:1010/ ***/ +user_pref("security.tls.version.enable-deprecated", false); // [DEFAULT: false] /* 6050: prefsCleaner: reset items removed from arkenfox FF92+ ***/ // user_pref("dom.caches.enabled", ""); // user_pref("dom.storageManager.enabled", ""); @@ -1150,7 +1152,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("security.ssl3.rsa_aes_128_sha", false); // no PFS // user_pref("security.ssl3.rsa_aes_256_sha", false); // no PFS /* 7004: control TLS versions - * [WHY] Passive fingerprinting. Downgrades are still possible: behind user interaction ***/ + * [WHY] Passive fingerprinting and security ***/ // user_pref("security.tls.version.min", 3); // [DEFAULT: 3] // user_pref("security.tls.version.max", 4); /* 7005: disable SSL session IDs [FF36+] From 06b8d8bfa3a8fd63083be4aaa1afbe0d21df8814 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Fri, 7 Jan 2022 17:29:26 +0000 Subject: [PATCH 070/219] move 0362 to don't touch --- user.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 804f901..a6f8472 100644 --- a/user.js +++ b/user.js @@ -219,9 +219,6 @@ user_pref("network.captive-portal-service.enabled", false); // [FF52+] /* 0361: disable Network Connectivity checks [FF65+] * [1] https://bugzilla.mozilla.org/1460537 ***/ user_pref("network.connectivity-service.enabled", false); -/* 0362: enforce disabling of Web Compatibility Reporter [FF56+] - * Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla ***/ -user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false] /*** [SECTION 0400]: SAFE BROWSING (SB) SB has taken many steps to preserve privacy. If required, a full url is never sent @@ -1110,6 +1107,10 @@ user_pref("extensions.webcompat.enable_shims", true); // [DEFAULT: true] * [NOTE] In FF97+ the TLS 1.0/1.1 downgrade UX was removed * [TEST] https://tls-v1-1.badssl.com:1010/ ***/ user_pref("security.tls.version.enable-deprecated", false); // [DEFAULT: false] +/* 6011: enforce disabling of Web Compatibility Reporter [FF56+] + * Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla + * [WHY] To prevent wasting Mozilla's time with a custom setup ***/ +user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false] /* 6050: prefsCleaner: reset items removed from arkenfox FF92+ ***/ // user_pref("dom.caches.enabled", ""); // user_pref("dom.storageManager.enabled", ""); From ab7380c93b244992234e33c424f4bd7579f8e53e Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Tue, 11 Jan 2022 09:21:37 +0000 Subject: [PATCH 071/219] HoM: tweak background request info --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index a6f8472..0d9bf72 100644 --- a/user.js +++ b/user.js @@ -543,8 +543,8 @@ user_pref("dom.security.https_only_mode", true); // [FF76+] /* 1245: enable HTTPS-Only mode for local resources [FF77+] ***/ // user_pref("dom.security.https_only_mode.upgrade_local", true); /* 1246: disable HTTP background requests [FF82+] - * When attempting to upgrade, if the server doesn't respond within 3 seconds, - * Firefox sends HTTP requests in order to check if the server supports HTTPS or not + * When attempting to upgrade, if the server doesn't respond within 3 seconds, Firefox sends + * a top-level HTTP request without path in order to check if the server supports HTTPS or not * This is done to avoid waiting for a timeout which takes 90 seconds * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1642387,1660945 ***/ user_pref("dom.security.https_only_mode_send_http_background_request", false); From 926a2d4ac8ee7971090583c1ff190b714c227bd9 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 12 Jan 2022 05:09:17 +0000 Subject: [PATCH 072/219] v96 deprecated, #1325 also tidy the description to reflect that the setting is hidden --- user.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/user.js b/user.js index 0d9bf72..c46cf19 100644 --- a/user.js +++ b/user.js @@ -140,10 +140,6 @@ user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF] /*** [SECTION 0300]: QUIETER FOX ***/ user_pref("_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!"); /** UPDATES ***/ -/* 0302: disable auto-INSTALLING Firefox updates via a background service [FF90+] [WINDOWS] - * [SETTING] General>Firefox Updates>Automatically install updates>When Firefox is not running - * [1] https://support.mozilla.org/kb/enable-background-updates-firefox-windows ***/ -user_pref("app.update.background.scheduling.enabled", false); /* 0306: disable search engine updates (e.g. OpenSearch) * [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/ user_pref("browser.search.update", false); @@ -1339,6 +1335,12 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is m // 0807: disable location bar contextual suggestions [FF92+] - replaced by new 0807 // [-] https://bugzilla.mozilla.org/1735976 user_pref("browser.urlbar.suggest.quicksuggest", false); +// FF96 +// 0302: disable auto-INSTALLING Firefox updates via a background service + hide the setting [FF90+] [WINDOWS] + // [SETTING] General>Firefox Updates>Automatically install updates>When Firefox is not running + // [1] https://support.mozilla.org/kb/enable-background-updates-firefox-windows + // [-] https://bugzilla.mozilla.org/1738983 +user_pref("app.update.background.scheduling.enabled", false); // ***/ /* END: internal custom pref to test for syntax errors ***/ From bc2aba3829f6bbe5e5f8739f120cc6f6f251ffba Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 12 Jan 2022 05:25:31 +0000 Subject: [PATCH 073/219] move last update pref to personal --- user.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/user.js b/user.js index c46cf19..a9d2a0e 100644 --- a/user.js +++ b/user.js @@ -139,11 +139,6 @@ user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF] /*** [SECTION 0300]: QUIETER FOX ***/ user_pref("_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!"); -/** UPDATES ***/ -/* 0306: disable search engine updates (e.g. OpenSearch) - * [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/ -user_pref("browser.search.update", false); - /** RECOMMENDATIONS ***/ /* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/ user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF] @@ -1275,8 +1270,10 @@ user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switc // user_pref("full-screen-api.warning.timeout", 0); /* UPDATES ***/ // user_pref("app.update.auto", false); // [NON-WINDOWS] disable auto app updates - // [NOTE] You will still get prompts to update, and should do so in a timely manner - // [SETTING] General>Firefox Updates>Check for updates but let you choose to install them + // [NOTE] You will still get prompts to update, and should do so in a timely manner + // [SETTING] General>Firefox Updates>Check for updates but let you choose to install them + // user_pref("browser.search.update", false); // disable search engine updates (e.g. OpenSearch) + // [NOTE] This does not affect Mozilla's built-in or Web Extension search engines // user_pref("extensions.update.enabled", false); // disable extension and theme update checks // user_pref("extensions.update.autoUpdateDefault", false); // disable installing extension and theme updates // [SETTING] about:addons>Extensions>[cog-wheel-icon]>Update Add-ons Automatically (toggle) From 7a4676fe2dcb5bf55974b5cbc82f8353114175d3 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 15 Jan 2022 05:25:11 +0000 Subject: [PATCH 074/219] make 1601 setup tag more explicit, closes #1326 --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index a9d2a0e..d321a4f 100644 --- a/user.js +++ b/user.js @@ -573,7 +573,6 @@ user_pref("gfx.font_rendering.opentype_svg.enabled", false); // user_pref("layout.css.font-visibility.trackingprotection", 1); /*** [SECTION 1600]: HEADERS / REFERERS - Expect some breakage e.g. banks: use an extension if you need precise control full URI: https://example.com:8888/foo/bar.html?id=1234 scheme+host+port+path: https://example.com:8888/foo/bar.html scheme+host+port: https://example.com:8888 @@ -582,7 +581,8 @@ user_pref("gfx.font_rendering.opentype_svg.enabled", false); user_pref("_user.js.parrot", "1600 syntax error: the parrot rests in peace!"); /* 1601: control when to send a cross-origin referer * 0=always (default), 1=only if base domains match, 2=only if hosts match - * [SETUP-WEB] Known to cause issues with older modems/routers and some sites e.g vimeo, icloud, instagram ***/ + * [SETUP-WEB] Breakage: older modems/routers and some sites e.g banks, vimeo, icloud, instagram + * If "2" is too strict, then override to "0" and use Smart Referer (Strict mode + add exceptions) ***/ user_pref("network.http.referer.XOriginPolicy", 2); /* 1602: control the amount of cross-origin information to send [FF52+] * 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port ***/ From 09d62d2302c2306f5430a397596667ff167edce7 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 16 Jan 2022 02:31:57 +0000 Subject: [PATCH 075/219] remove 1273: "not Secure" text on insecure sites AF has been using HTTPS-Only mode since v84, the interstitial is more than ample, padlock is still marked as insecure --- user.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/user.js b/user.js index d321a4f..22e5141 100644 --- a/user.js +++ b/user.js @@ -555,8 +555,6 @@ user_pref("browser.ssl_override_behavior", 1); * i.e. it doesn't work for HSTS discrepancies (https://subdomain.preloaded-hsts.badssl.com/) * [TEST] https://expired.badssl.com/ ***/ user_pref("browser.xul.error_pages.expert_bad_cert", true); -/* 1273: display "Not Secure" text on HTTP sites ***/ -user_pref("security.insecure_connection_text.enabled", true); // [FF60+] /*** [SECTION 1400]: FONTS ***/ user_pref("_user.js.parrot", "1400 syntax error: the parrot's bereft of life!"); From b5bf2ee0171d6bf4a428f944054f778b47a7deb9 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 16 Jan 2022 02:34:21 +0000 Subject: [PATCH 076/219] oophs, add removed item from last commit to 6050 --- user.js | 1 + 1 file changed, 1 insertion(+) diff --git a/user.js b/user.js index 22e5141..0037897 100644 --- a/user.js +++ b/user.js @@ -1107,6 +1107,7 @@ user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false] // user_pref("privacy.firstparty.isolate.block_post_message", ""); // user_pref("privacy.firstparty.isolate.restrict_opener_access", ""); // user_pref("privacy.firstparty.isolate.use_site", ""); + // user_pref("security.insecure_connection_text.enabled", ""); /*** [SECTION 7000]: DON'T BOTHER ***/ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!"); From 83b6d64e67d663603ff9e52a5b6627d7927ba86f Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 16 Jan 2022 02:36:08 +0000 Subject: [PATCH 077/219] security.insecure_connection_text.enabled AF has been using HTTPS-Only mode since v84, the interstitial is more than ample, padlock is still marked as insecure --- scratchpad-scripts/arkenfox-cleanup.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scratchpad-scripts/arkenfox-cleanup.js b/scratchpad-scripts/arkenfox-cleanup.js index 6aa8c31..9d2ec12 100644 --- a/scratchpad-scripts/arkenfox-cleanup.js +++ b/scratchpad-scripts/arkenfox-cleanup.js @@ -3,7 +3,7 @@ - removed from the arkenfox user.js - deprecated by Mozilla but listed in the arkenfox user.js in the past - Last updated: 11-December-2021 + Last updated: 16-January-2022 Instructions: - [optional] close Firefox and backup your profile @@ -232,6 +232,7 @@ 'privacy.firstparty.isolate.block_post_message', 'privacy.firstparty.isolate.restrict_opener_access', 'privacy.firstparty.isolate.use_site', + 'security.insecure_connection_text.enabled', /* 79-91 */ 'alerts.showFavicons', 'browser.newtabpage.activity-stream.asrouter.providers.snippets', From ac0820a5dc00e04fe14fc2a74ba75e590883293c Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Fri, 21 Jan 2022 03:48:06 +0000 Subject: [PATCH 078/219] add last bits about ETP Strict/dFPI, closes #1337 --- user.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/user.js b/user.js index 0037897..9c60d66 100644 --- a/user.js +++ b/user.js @@ -1,7 +1,7 @@ /****** * name: arkenfox user.js -* date: 9 December 2021 -* version 96-alpha +* date: 21 January 2021 +* version 96 * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt @@ -757,11 +757,18 @@ user_pref("extensions.postDownloadThirdPartyPrompt", false); /*** [SECTION 2700]: ETP (ENHANCED TRACKING PROTECTION) ***/ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!"); /* 2701: enable ETP Strict Mode [FF86+] - * [NOTE] ETP Strict Mode enables Total Cookie Protection (TCP) + * ETP Strict Mode enables Total Cookie Protection (TCP) + * [NOTE] Adding site exceptions disables all ETP protections for that site and increases the risk of + * cross-site state tracking e.g. exceptions for SiteA and SiteB means PartyC on both sites is shared * [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ * [SETTING] to add site exceptions: Urlbar>ETP Shield * [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/ user_pref("browser.contentblocking.category", "strict"); +/* 2702: disable ETP web compat features [FF93+] + * [SETUP-HARDEN] Includes skip lists, heuristics (SmartBlock) and automatic grants + * [1] https://blog.mozilla.org/security/2021/07/13/smartblock-v2/ + * [2] https://hg.mozilla.org/mozilla-central/rev/e5483fd469ab#l4.12 ***/ + // user_pref("privacy.antitracking.enableWebcompat", false); /* 2710: enable state partitioning of service workers [FF96+] ***/ user_pref("privacy.partition.serviceWorkers", true); From 10044fcaf77bfe19f2b90c606232f0a9e83401c9 Mon Sep 17 00:00:00 2001 From: fabrizio Date: Sat, 22 Jan 2022 01:49:48 +0000 Subject: [PATCH 079/219] typos #1342 (#1343) --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 9c60d66..e80a95c 100644 --- a/user.js +++ b/user.js @@ -1,6 +1,6 @@ /****** * name: arkenfox user.js -* date: 21 January 2021 +* date: 21 January 2022 * version 96 * url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt @@ -1089,7 +1089,7 @@ user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true] * string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks * [TEST] https://arkenfox.github.io/TZP/tests/windownamea.html ***/ user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true] -/* 0607: enforce Local Storage Next Generation (LSNG) [FF65+] ***/ +/* 6007: enforce Local Storage Next Generation (LSNG) [FF65+] ***/ user_pref("dom.storage.next_gen", true); // [DEFAULT: true FF92+] /* 6008: enforce no First Party Isolation [FF51+] * [WARNING] Replaced with network partitioning (FF85+) and TCP (2701), From cc7ca9d0fa3d4ca4c929ad55c218b9bf3d0daffa Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sat, 29 Jan 2022 05:24:41 +0000 Subject: [PATCH 080/219] cleanup dead images (#1353) --- wikipiki/backup01.png | Bin 5639 -> 0 bytes wikipiki/overview01.png | Bin 19862 -> 0 bytes wikipiki/overview02.png | Bin 11179 -> 0 bytes wikipiki/overview03.png | Bin 18001 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wikipiki/backup01.png delete mode 100644 wikipiki/overview01.png delete mode 100644 wikipiki/overview02.png delete mode 100644 wikipiki/overview03.png diff --git a/wikipiki/backup01.png b/wikipiki/backup01.png deleted file mode 100644 index e10f1ea228659521464f6508b74a1369f0d4dc03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/wikipiki/overview01.png b/wikipiki/overview01.png deleted file mode 100644 index 2c8f3b60d732604803fe1bd7eef5ec361d5f790f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19862 zcma&NV_;;>*7x0+*qLO4i6*vfPi)(m*tTukwryJzOl(eUzdduEbKmDY&xiNW!0Du=06_N)4K9K-F&p~|xzFyH~umazpZA8`V0RUK( zKYt*AvQ^7=0;TVnkVdGXn zBE%;_!de~`3Qt}j+~-Ry2?ahhl6VMy?k`li-p}8^gJF&2gn&jx`9z?~QNe}5EJN<$ z=SBJFhlGv2Y`f>1FLpc}OujcR@f=p%WY$kZ_CUcUi89JD`@oe7;C|lnA08Om-lO63 zg(0#5AVJj|;@iIwf&d=9xVR_@dLX+1ATIN;P=Fq(^d36w;19$TfmBTpp8${^hgdcV zD4#C?KDQ`=A^@K-h)-q;i2@)844^x1puY={r3UDddLPUKd@>(X-9Z2v3HYcWIk5md z6r&I!zzav_1_05Ere z?g$~F3m_mB@J0Aqh3ks43h9sn=&95?u2v%U@4gyP)V7c+Dm1ucQ)1|pUs&`$>80_} z^tq;fW$xH6iFwpL9cf5a{dgzVA<$+wcJZ+YVl{ z?^Lw)m_D2kK9=u!#OGi?v|)1`AHt365cwJbImat1H#UEK^F24F_1CZcy}f1e0RauY zF%{2ulRljul{bqgFRs^zyREJrB3}kAUlFj!t-gs{$wKVuIOqWVwS#Dp*Jjv{SDbl* z0WtknRf;dWa>%w(LTM2<421-t0&(Pn#B(2pJDXH5pgfz*fEqI%5cgQ>5-kJJdkIn` zRfnFP2LRx@-MaTD85F3`5C83H=Z_2CH<27-fRC|QoGk#LEks14I9AU)3!!VE2Nr^}@dDvIGba4fF{h3BVZoVB6`ESNI8#1x?oAQ0UVB`KEbz6j{7HEqhM~a}1WWGWO!*JQm1rKpVY;3p3`oWS3p$#iet}vxD(HBF@mhikxbh*) z8s!Sm_Ru?n=~`znWZ&;S&@5oi0(g43{GzIos?y7%C3x6GOrKYvS)oA#4PfXq&itN58YT3w(rw@JQQF1Q4R$uW(6(jQGsqOdYAaUSyr`i}?G>LZ7?&+Cb} z(#bO_bK}P%N6AN^x6W|zL8$)2Atq#B(=i}1Oujl}RHsN5eVq^gI;=>?N`IPin2MNc zt)xoPMB#xNI|h>|o=B32MM0}rT2@rHQ3k7YqcpAkiMw;ejNy$m7<)YLqUn#J0|IR@NS#QXr^!pT7LgZmN^(jLPfkqcO)jP~r*qRUF&w5JrZ1&$HtVXps8cnSG_@Fs z)$OSlshu}S7ufcFSb{<7k@5pm5!G#&ssF;ueoX(Z7Oa4TC=|l zv0Bw++2pBbqK|IUJXqC#9^V=7+2$Gf#tjJ{{0pHRM;*t@zQOJbhcd@T+Em6lujk-x z(lM=x>NL{yGUIL&$~gIeX{JK@yod?9Nvpm8O-OjCgx@$#G7n8U*3kM$=bpI3ovqfk z+uU7ddVPA|S;=bkIm@}}dGK2H1XDJ7mKvk|O#g`BmfZdkmyDo{uSw$} zA*}&ztV-olO>?1h*@NB%I?p|iUG^@|E*I+t!-ks91Zz+8Nb|T%zjc;Q;HIEA;fLXe z+s7=R*oPRz1T@r_-&f<)%cGkIes>fv$EwkN-LEtLh@4h_RQ_ncO27TyO8g%qzhf%# z9}ZKdVy8?I0%g697H1&!4)ntNz2Ha#g9BB9c%y7WR554ilbM}o*97f1g`S0ygf`Mm z=w;Zesl}Noc*!(nA&)UXpGe+7F07;#VjPS*=Z=MSgb6%Heb(ff_E}^V0Yco zQ)oxDY+Q4v`fdY@(MoBMsW_7OBtxXx5-$0XC`!;Gh_6wciKAd#`*8Y92xw4 zOT{;toR}OKJB?Qu1=hU}T7@^$;wD0ln%BovfU8l%GzkrP!uXeccoXf>QRo-;l^*r3kRKu9V}K1fEeg8#MB0Kci+ zaCUe9eU&zOl5Dlzze%t)zniP2!>D+4YLb&zu|V-w@mZ1Od~Ur_Z|Tu$_8iN-(2$8 zIc`Py=tas?5rpAyUGJF}&eZTM@Jf*xLpy{vLauwq573(rxbPe+P7&@E+mQ3$oN!EV zXw3xDuG56m71CZb^flUKCU|BSPd40MMOMEdW-xK7xr*N?j+(9<`_0FjTu(=2CT4ni z(LAl`uI4ql9~w+;nju`cc&wc+0KjiG-oYK5*ak#Eq-A7SrQAw-j(6KymIN^Ga zpO+bK&uCApYSlDvJ$LJDbT@uD#>!%yTEFddy+Zp~T*zYQUhlkdvwj$SxZ6Zq_p&2> zn;LKbS0(0}?p_AVMx5Ij0H zdOQd|=roIshn;X_W5)-qX#DDe_CH+C*;L6l>SY{japV%n~l_uZu>j`tOgsn^YyV`G4~+v|55!P=TC zr^BGo%}sAGz$IS2hjpFh+Gmtb?hz{MM`bau++*m|%b(qlAMvKv23b{02b!vz9UmiE zhTRNiFMFn4bv?Jp&4=B&SQz$$YO-7tisi3nm~4^p5_(Q0N3Ppk`UoNpegZ03o^p5F zW!7X)$Z|2m9Ur2;Rp@Th1;A7+I7*;akJ z<`Nec7T|*(TIyvy$w)e3D#OP1Wu4XI$;J`;k%M9Y+07agtC~B5r^+!aLge@W_I7v( zgFN?~&dOomiED`Z%BL`;73UNx>dgE)_Y!$R00!o%1U>8Wv+YI2PfMjLzyqJVhRl~z znvPb;)O~p4hn$#rN&D7b0%I>o}P(d+_co$<=;vt=|jDtY2FEInZHG%L2NRrsRrF*{J1F;rPcyFxZL& z8xU<9f27i#kBWUtfS_s3DPkdo?(N0nw5g5aV8*fu%Cf79PY>Fz9Y`wFHJ&j;QLJp@ zVZ~(Zbn9bgI+AB$WEmT-Dr$jK4k{F5$0b7FgBD!s4COz>I5WdyKC2u@1$*FANZw%~ zon3IgZ|iEqW=;1tDEmbNc!dymC!608&Uf_vVsi0RKlLVZoyR0n)JhLuNj+JwueW}F zyXQ4r0d&H`j;?*Y66WqTLAhkm4PI-Gu}qvbI>||V=Qw{UokOh{OlDbU>LSoGK}`!< z`T|Z>H-^qVoVsu+kE<_73Ul$6?kRXU#+LWo!t`_{et44Vzb2plxF7@cP?ue37s;KF zs~Lcvu8uwCId$L6eD{)k@wdNJ-*Abaw$?pg-Npvx2V4vAw0b9M7K#pc4{&R1tXMf- z)8V`rxu5gaTdU3wZgxd!N=gIA2~3P76QV7psNTkqf)h~eB8NK6{9WCn%Bu%!x4h_< z7Tju4z?mbBWXCw{X&`eR-lUN3%_+WxyDi2^!Q^ z`vGbYm7XISh^*}a(x$UNPvh4X+YtaZ5gLbMcX<(lnv%4kaK{KmSq$dE3qfTkLrgR( zkI&f6Q%dPl7&wPbo@-{~sPWtfXCmUW>#taHHNU8I+otpu4Py^{4gPpQqUIs+d`8Xl z`F=$nC4A0Npdw#-L5i;>3)5hgd&zo+jd?8Xa@FdNH_2N5^>XqB#)YC?{!$1UlZq_w7YO z1pI?#>$7+ylU5G3@25nrOY#g=3G4V#rC(U0xlE_1L@X-6{@)-jwV4S1p1Gj zP1(#M@jN?bdBK>R2b8) zju;Ur`}4fVV}lIsw!|%Dh~`FVAX6Gv1v=H*io5h=Y%sqyuY^emc4M4kbNg2fl?8Q- zL_?{11~EC;++lZm$?0gVr=TpWjbtgktW*&*|6DwLuDZjX(Yt+yzxix!ui<=CB2IfH zo_rHm+EGh!>8tnzX6avA+r^Yq?01XA&k?cm+ucsf00DAs#NS@Is#QIlZF0|9tL2YL z-42=i;?1SCW%!6a8S5-2P?{?NFO1r9!)Z|Xfs)+A`v#%R(ENJOU#rol z!VFYcM22z9`*h{7rsq5pOw3a(%xrSWsB*mdjUk2`WcN{n4V`XQ#w@g2?qm9k>S}W2 z-Q(#(90c&yr+gZ-@YlIh=G(8)^kE!dR2DIjtvy0DYtniIb0oHU)r(M7B($(sOX3UM zZ@(|>w|qSV{gLNYoY3FeE5|QM*_;ctJ!TYtZHIy^v4tf1xRj=T47Ue|bx0nlE9#n?&%4Gdo?6DX5|!Igbu z*b0h}ZR;|`Jpu;QL*v!J+K@4R4tgXkNI$(9{Dhl?Nms@VGlC31QgOQJ6~U#l{tQZA zjGDY3yja$;xUKuh*uhSDqWGk+P)dA4FE0^{y(+t>BZz&XTyvy?)oP2V12*K&85Ds^ z;u$>;;;F}fSzVw;jBcJ5Vrq2cPFT|;OhOcu#ilkaC5p|uvqyKLZ#8CC-nKl)S2_7J z{ut?No{lmd-Gsvcr3LfqRBng8snXoCN9jY|$x(~}R@j<(h~PR5+M5|6tIc+}&lLSC z>lQ~`_OGR5y04#8`5gnbDh7R1SRklse&_5Fn<(*%cCZbMu8^1SZWS)G>PRxGgk4Lp zVM|1QClHSo%m#X_WhPsLD!%Z*p_2!GF+I)Ma{TvTn!5f95?!m^lbGv1;-DM~X*nK| zw&ac>b;3d!m}zauuMDx<@;*s5WjiN6>Q9xAd6BW=iFw5|${qbBIvLFxu*0I1ICVpR z9HUsF8zH(V?oH$Fg4xMQ_C@8e6;hwiqzsT#m-1gS7}Y|5`{F_KR$+y zWMDJ{q#&?P-489u7}YJvJ@otSxOLGdO7_*f$N4bE!g8Ga7C4axhmlytFdGxB*SC%` zeA*WF=u|s{f8<8c&m%@OcVVCRDWW@rV+8DTs2bp3qCBntKkKj`t|CW z0XTEcI8&J~w>u_Pw_3rGDUvU46h5Ik+3i-40I1f57rVHv_upl-nhv6yj>~MU2@TAo z&^DVdw|N84C&_ogxzorBiGAVSGS*Tp7x1m9X)kVMPaFW3$)EflCp|hAckdX*f!}?7T#W2jz-XyL7w=6I5M5L!_!|4$_(`Ese7pa%ReMI( zMA~n@Ybnc0iQpKWr-tn=eXfCLu7Q*qKgs10uwvUj-pP3jbgRhmKxeKbW^s03Nh>n; zG?pv5X4=AbNb5BTYG$Z68uU0j`)(fgH)^HT0 zY>rFxl=@NTC7@^c#CB%7wJ{t%A%T7Nft>1<;laG6B_KY&*VvT|2BZ9D!RZr_q3Q8F z8z?F_q)a}%Y9eIA5#SxNpJqNAe{9IUL_7iiK5m(7hwkNQ)nkK43vE*mJMYX*4VU>c zLQ`qmetoua$F1n<%BY0r!K8)|8*Ug$QClRLaz>Ms1;hN+*KoR;%YzAI)^H#EwCkn5 z{E&v`;Cd{hW(<4SdrY@ZDN%tY|qnmh6R7j-c{>VsAE%e#?&9|XXv-Sgcv zA7t0*7Y|7gL?&R(%2^-{iVYts)au1rOP&^Gb0SoLRyZ3vo`n;@b{227c^}-`&S)u? zhVeYW*{ex&=r`{lAoiq$FY4O7&eJV{^s2|rjonQ#V@7XH!Cvw+a1i&mHu@?m;y-^uq$9O(Szgw%O$+*Ks%Xux_nP?> z5-1Jbk3`sVWDb09ld`vyRSW)P3WMhO{}7duH#@J} za4z0|#O)V#=0OSw=-K9=7Wi~eo^41+G|`%;CWKyA;7?}xsO67djnIk`KY+nT#G*i_ z&Ydc~c*K!@hFIGAuA`ZUGC=IY{{>Tmf>3R|DSF=NJPmla<@Sp>?+gXnf76mpwf^+b zaLDtVY~R$-FM^0uHHAumEsijFNsRjuVARikD2IQZDmvg$_n^}bl3u(`D%+4)2< z?YJEw>{`%Sm5QD~4IOs+X1S`is3AXkG^ruonT&AF0i2ip7w{s%Y3WHTGypO}R@v*16XEdoVc|Es>CEMPG~m8&5H@k6KwSk5nSh&9$Aw-RGlTcT zJSOd~It#UCs$e2t6nA4hNaBq^)<6FA?OqO>u390BgT5MN8t24Np7=uqDx_w}O_=eA ziZf_&xe2n7p#m^=TDz@?NGmXrDoOtYY5xNg@VzdN!m~_&R9OG;D57HzJ1FXmG&)!& z_n)YvGfD}JZD+Ws-b^ng`_WDA#vOlSesXM9Q{bYJXnYzck{4;BTN>T z#9Lrbp+Ci5HPKh0uJG!qDp=nIpn+kdgLYv;eN&DMt6oiGVe9ek#xG(O;o#Y-gQELD zUfw<`q6(=2A`FKlN@`2)sUPXZX$&fnyxh-{3Nuq;OeSGwF#Za&O`338(HrGg{S5hc zLU#O8mC=nOe|Oai3P2)YDWo4qXVToOE9rpP(0s=R67BjCD{o+94~#XjCeHcsNmT%v zg6Pu^oE=#4F=?={oy>&?HCPJpy`FVT+SZxFi9Q>QajfuoKu(w5 z^qTJJFa>NUUAn@Vr&iQ{igNNVTG}29Zw-ZRUaNa!bxx6e3evXcDeWbdoXSLg->UWHQ5|GA+LR+{(U^W(DC6UFFR`8oHsWc25sf247X`BzeR)&qn* z>zv;e!~G|vl&vRF)r|C|509Q&T19|k5sC1@aI)PbYSKEV?`vwEKfChNC^ThB@J?~x z^@Xl-eB#8XErE*iE~%+S5#$ zUhW9Cek&AoHjcEVA9g2>;1EoF*YL4VR}G)u_uXh$z|_W#N#;xR-ghX7ryAQ0oE{*O z=&~ga9%-ZD`tfww-gbGQ0l>-Evdk~)bZqt8!o4gT(`nI_td9OvPPza3tS)k?)9)=w z%JIm8006YlkxjK?`+QiChqwWriJI@KKmpjhi>-E@P;7u6mSs-Zo^1!>wA&u4+lVyj z33bboGAl{gb#td-z836BaMgnh{Zd_Ruo{n97`1+*7! z+_02gt6IkYuE;>npZ{~dGbC(NA!oiVRCd;@Aa+J-8Rm7t3x_#JzU+C^%*roAa0fo% zB>fUN{u<(M^x(nw1qC!p;X`AWI%$+B{#HpU+e+MlJ;Th*Er#l(Grq=iCXwj*f;&RE zzPe~#KXHDZo@JZm;5qBurCN$ANlei9gFaCtn`&s3z>DrK;i04dSp18Cj(;E;!=wYp zA)GPF7JuC+*#HSf${486_}PGq$!S2X^05-Kx6c*j^d_l>Yw#*{=4`AL!!tTUs%(U9 zKnW7q5uKZ}ELqi*Jt9>L*)9x(k&1c5k*&FW)vcKDK0(i7ymePS!N4!~F5rXh_nmIjXN;`N!`&F3c!_Oan4y$xwjaA!I=qYL_HfCdS(~dmPm=>2h8sKv(wF zXO{8Etio(09{00Qt@;TNcHDR9P!^V#ud+1hQvB+=*XsTwRf zOzSP+Kk|R}tr@~cTU3Jf40kaVzR}u0delap`@2@%HoC}|DMFI>?eINQHBayt|7G7) z$RVCS|G~EZ0o_1MezGZEpnY^OD$(!|A@zKG4wHCB@0lA2mB6TY1JtFru;5eGX zy^X@1XUt8~mn^vKHH($y=E=Ukk#YrOj%~nhQZV76=T5k=kz#So+`5ZkNOWG){}kTR zUdk$@KB{}!mLU6poOkgyys@G#v*ohizjzpJBAd{tDf{Cw{!wDH%@r-l(unYs494Ko zdP1p%StLcbyoC-0wl=k(dN3>u#nX#KFrDpo@N^a~=oY`%Q`DvwFRJVOt#Kg=qOp_p zr<$vuMhflLD9$YW9bKl6%Me?+xmU_#bX#I6JQ^0PfSw@4cKeNVM4HxBqoDP=v!fA? z8ndz^lqy!r%-y8v=+tjCKMxz4Nc&gQ@=fbP!xOAcn`Oy}9%WSo18?cNe>b$8d)rw0Y zfN&f{Z9rbJemhT$^KiI@{N}mAdppc(#`7A$FcFtw$2Ib}p;MIQ-r8hpp*Q71Sy@;0UQl%gu@+KN#itsXow)3xb9^5Du@ zr+1SZ%VVr`gu0c{g}^YJDckNA4It|MOy_@`SLgM|qW$)jmrh;}3%X4aXSrVc&s&>Vu@Myk0j(I1q7p zbr>veGYjiba4BK+@f&1t7CW8GkGMZD_v+U#Z6uC+^6On)&aRt0i4{_NxUKkcxx9FG zZxGwV{fe8d#uQnM%Em5!acbR;^;O!22m;`u_Y$TwtPO=^H$a!tS3CU5uHB`3a@Ype z(vNC@JFwug0mZCiB=#SsG^}akHW7Wc)`sJgV=vRhP#2RD&JbVE%&6if1uJrt!jMiU z1|(V`XD(#uQcZP0W3oUZxqnAOilDCy44pj%vzha1d$#NBDQf>7g!Lu>1u^yV?B&XueO?csPq%o<2o8S=Tx9KF9*tebpX)guDHF-f56N67yIxhE(qn z29Jyo2(vR8>}izx5e`W2qjn#A2gBVMy+*-Kdo2t>{sJT7K(R($AENbcuG$+qY9J93PRlibkrq^!iO z+EZWewM7PmXD&she?b90Ip5>dErx zX%|TvKLY)C{YkU#Y_luAgQqEP+6Pp)A^ovbZLA-t{Xru9;HSgi zys~f!LcHysVq^6?cm=8WB<#noHgjcw8!< zZujsDoedu1Bs6HdiJjC7Y7;a24MA9KalSC{;DlC;3m4ovSc3j}rtxq8{%Bs0o~2ZS)OKwihjYnB6tZ}Cb^CN)D*_!8eXxTsq<=}X@>UFV(>s=it9J_2aZ@K=Ea2C)T;{vwn)xM&7k+kAJ+|KQBLrm4rhl*eO$VNX{`g_FjB0i%R(A z^}fABFQ!AoA#OOgf_DYRs?JgYZXhDv{RYwHS>_j%Swp}tIX6JmNtIIYIY(7{OXi!S zZGb?lfp|(X#@KkP^t{k=?0cX0X8_*dLseRu!hMRBC}m5VDIt?;D8eSE>$$P)YXNn+WfZgdbZ(r_srDeJ%fLu4@~JBA;sUuEkrop zu+fV##$1m0+-U}`%^C19cDUGR!Snn=f-3(sK!lUWLoY@P63?`nt*|5YE&p&vG9hn8|+cWO$X+6_Zu!qAFEl%=-p`Aqz-(Q=+8kgj{ShO+|Th1G92_` z_AoGaCUp5Vc6xZjR9n!-q9zpHVn)lh*I=iYKUyxX?m=O*5b4UKB;TTa6FecaJhpob z4jZa3rygm$-%U2zFZUh_m!9Y6yDeaufEM(Pfzyix-$_c&1&FE&xS8hBkN_!zBe9-- z90}POOHzt<8gQOCjD_x!2d5N3|B)(85&R=$_`k5jR2c}+$m;E7i?f{@8zrx4tn}UL zXkil5{(SE@-TUTm6Yuxk+|M^Tc6ojzvSVubcqGS0;J{c*GBm*Qd!fv0^|v?PY>jvF zr|FN2J(Xgf54H7=>kkw;ew0Oq5V5qBf@JXchUDjoC0XURY+*MAnWd(Ys(6ac28@XG z%d`%0Nm6saZJCdy1KJPob)AkEP>&C9kEc76_uIq6?8nNBZ=o=0eB`86oIF75NRFZW zf<)}Z4=Y(22*k1(5~WgsE9<>9dM88S?-;@D=7uB_q_APT@KTi-5+j@ zS!s`RE+gH@s7$`{(%7_;f3J)Xb|-P_xJ`HJ`0vV8;$WxAuQ&sYY;A%5rB$0$W!2## zIVN_lLzDC{^|<+1GyAABg2^uQjFo2k2KEV{A1C}637nIZt2neIrn+98+-*4qFljp0 zH@4E>Bva+iI3jC4hCjSd!pC-KyDz7byYC`thulAQt^Gd|OLG2<5Ojzbha_-@+`!CD z7H7CF&nucH^K5O#JHHhkN0K&yXCc;z<@>W0TdTu4ReV$4AAmp!S(sIS_oW9wH`P;HCdrzZVULF<|U^6Nf;Z&rh0KC6hA&?+ClM)rKA+7 zC=^}s*voQ+maU!sF#6Y_q>KOmsUkfA+&3&NeF?=5#HTy6q+%TYP8{v({if~6OTNc% ztk&;^l3!EXm3x)iw|A5{i_V?j8c%E|dTYk`_LWhCATY`A%q*Q&eTIhe2NPp~>#HCB z$z_pkG=jv3{-pneWh+M8@@|A;3vzD%50#q|Rn=wj2j9b+Tv3n9}8 zFl0ZTIN|O~A#_&-T5HEOM6}Q6md6b$7AXL3Eb~>ERTXWbF4}W@~Wv2>i^tkmR>lH>DbU@{(5 z{GuF?!$}0@hD&YOtfiZtVJB*AIv=*RrB6o_0>vz7G~ui@k7=NQ2-6>yrdg4AQ2&;b zq%rP)Uu3y={ZG2&okCHPkfPxeE=A3QNQaXL`n;O<{8lf~#XgTOzUxverdRoZ<7wPq zIL?arXz%Q1*KLq=%mLZ#@V}%8naBX>6vQ}KvwNbasN6grwW*2A93^zP3ZDIVg%WW) zz4)UOPIoOGt*G?LZu$iabO3t!Oz%BczoR7M0xp5t6n) z&P`B?K<1?*Bysjy?i~x@&cBh34Thc0s&PMT6!+$yu<*$0J(6tM0*$X)#!lmc1JFZn zl}Wi24tVL3{tp%u>*W-)psCHgs(Vq zM#*O}JqOZe$V|{^EGC>n#>@>XvP$bIL$&^}$uyg5hcd;KvjvdGMw-O}ZUMeGuscmS z|5m3AS7fBlV8eBIGAQW>!uzl%gU-CD!{p)8DB}wSWg!%u?tpLT9%0$wj86YPbx4Vj zU1_zOb|&o>KS@&Hnn{Kfl! z^&$P_-F(wuCrEny4ddmY0%-GF`_IsXxB&&}5xtO>`M*@=t**Y=VoR&!<>=56!+}4! zeaOdAl`+I`0&|H%^z#}~u0fp09BcbZHiB?bLQ>-@Pb9Mjx6kME*` z9?|`41qxI0*tQYzpeh7t6q^O8$q-#5$8=`(7o(1m?ASJhh*N6h?^T<0-%70}fR!cA z^}ku94v$*dRaF*dRNLtbq|~n-z}2DqNCuDe{zXl7+?3{=63;CHH#Vzk zRl64F&E_);stYlsou6z<8i3ZJ)O%Vk#bKJA+JhWxbPA4+Zu5_Sg`!xo@)0JRphwZVnkE&1pTqNBSo9urv z6#h&)Sm$^BC$;byrcr!}#b^f=e=Y0qLSa$PL-G(4Ty8A%AR#}pFfzU{MQKE;mP!J* z!Z$N5+dXBJj4C~~Pf;J4%N>}vPS;P}%zn*3PN>g}Cj6B@Df#16fyYAN#gOH&SXEgT zcd;mGO7^%y0Di7fD%IsXRQBQ1OM=!ZTj~@uY+eG&0=WpvXJ&NzN`JKx8O8}A2a84? zrxRPRbG@%|23CoxaFb~`eGE?gstuC8RW_MFDszM+`MNXx>7l*H=@Hfoc0i z=Vaz3twWMub4$Cux2Q)^`!$W3BOn_=?d8+(G4Xra6_emlYHhM%&F-@;CUK9#{7Oe zh@Rp3c6^0yJ175ovV{Bga(H#p@jrUqFQs%~zs*b!Xb^*Ntk4nzM>%8Yw-Y_?0& zKgpbF_wz=;QO!-rPF@8FeTg((a8`L2c%{?zJUFn=@mu}|Kb#3ZadYkp^3h$vbEP$M|f^HR1_@Ta*f zqPux8{ppCIH0Mbz%*e^ZZqn!#Ws0bijA_|Cz&`C*CNuwk zWSt427>^wcIW_7DSPnk|)kB(1Cyw(m(uHz;H3|zhbFDa(-T_Ry& z#vteZKwwB3G|6^3gtAtoPqpvEP(u=!xxoplGH znwi`{#Q!*PXnk=|JfUVwf?ZGPTSbn<;_J{a(R5vWB}<`PAuuI z$dF0>_Eqp0dj6Zzy@S%dN5Y+pWvf;??|z!f{zFGCdkLndwW4}?3b#d*lPQLHA)=;wb~7;<%@b26k+kE*Y1FfjM8oPQ4V{9g?tnwDz7PJm)y;>Qjfxw znY-9SuL4fY`%57Xz-QE+wtI%@fZNdHaxu3drY}r|m(I!g!tLr3ZR7+O*?!@m6Fx}nK z@gk>9v}+4L7ti_2TKFD8!QILPy`FeF&!%N7fDimPr^61`Z<=;MqSbD+IveY#yP!Br zs%fpvF-)EPjgeP#1{+A}gNdh{jQH)0gKm#|cMm1baaZw_u2!;u83;QRI4sY=0$LHEk@jfCAFp+M2*8z+$qPe>TqG|56i_ItccX3A#rTlcAnWt%}EDn>v^P zrkq7vuKygwYD&0+?J99`5S|m43aEGv-4c1J-0YN(i;jBV%AbA-et#6649=EiP~$1a zMr7!ENG?6puCm0`NMYO%H!m&iq$mvd=J}9D+g^b4%%WYz&4yOHi_@aye))wVy8C4+ zG_1V1!#z6Yz=GevB&(7=-t~1|<KMJikGcFrJwM z<`{kG$4JIW_K)bC&R8~F%Nv)SQvg0;J6g-N<&}5V9p2sX2rh_B&hM?E=C9{#M*yGL zDjlf~r4B?KmDEX8Fw?%FDRMvyYoZ0MlQMtIy|W7tw9nQ5YQ>?#3RA{WgDMSUtC^a#jNk1sHs+WPOnUKuM z*R>Q(|6Yd!Xs}LW;)a~rH5Lt|r=RmCZ|N}On$Q|gx?Vl^r(QhceiD0thMBAfB7Z|| zS8yQWLu!#tlPepoJ|r;k>h$a#yx9E>W_|FZ!Gey2D@w)QYw3#B1cAQ!dIOj4rE@}! z3n@7NYl{-wXTyKEc}2+hQNnJwASc{fm;JC#*P%$|g~e4Co0l>p1YdAec83KpU%1%s z>mRbRI>Sk3+IbuI(13f1QSL>&*w1>f5#z#mRx>lGaYP zX2ro-1-`P4XvlT{dpJKM&u?w?g`UdA(4Mwss`1`4ou~ntA4_=36qP2I^DP(;nzj`; z#ALkuvD$+U&l`tG`hlRNUg}<_!?#e5g}PEwV6DTZz%}5Na&`4f12D6o1~1mK+Yb|# zMXcJv!ut@8elmMU#hzV5^)DRG@1C|+uP)7wtN2=QHmJo+i zhu&7oP%J&pqwCn*-xUwTnuP^AHgd8`zP`Wbiw07D0g8nF6f^Cir)AY3$h^7BZfASb z(;dK6Iq8m1_*1_iSfqw#Zc84UgJ8aqFRe8+)5|QG+dr4#1EVsmwj5iyTip$BLm9iD z^cA(O$`^zDZXu^h{;8DuVfvwi4I&8r}F-5=t^*Q}uy!EwNMpQ(Q+RkHF^qW(cx76VWfv+j;HK9R4Lq{QaAb1%AL zA>H`k$j%0Xeo*l53Mb;!KNU_JI0~hof#|8trE7D0l~D1JIOt2-gUWwkry*(UIK1V^ zQV76bq&32Vi2g-UUL!lawRbVv-K5Ye5+c2l(T*o7+`%fC?pes#)&Cba+1?%uY#QM| z+A1L=A`@fLY+&ut&z}cGVoDuN;en3rk)o2w2ftY`B0{g-hRkqlB8a?%9u%{%=hY z0j-R%YPvedABn=*WP_6%Dy-=g+TQ<2nxdlpS*3s_Wb1RNb?f%G9%~T5^~g4E>H^7F z3KD=ZKeIB&MTxd}CM|RBJmD6jDO*oE+D!lDZgk8qMH=B)A^6vOQ<2w){AoS+|5;*% z@Rgt8eQ(1vm^t}=7Z}V7o6q-o8kJnnA>3Bjf5dh`U6t1OMz*zPoTj(|5%f1gW4e)6 z8qJveX6w3KJRRPZix_Dv9Ob*(hOwduc_PkC`$A(B;WubuBrrf8t}kF~b;akD#=n#Zt>G=;-<3-b7c3x`5apfG)|?jgYJag*IRfT-%mIua6aM1d6HZ?l zu*ed~qo@GE^NBy^K=HdW8a;u4H|nU`)zAr{BVD{ulo-?uh;YZ@OeI; z=kxwNPS2&WKe4IjSDR+)x9)7Xhcwh<1xx<*jmQKHY}ePN{hR zD8u&(RY);RFCvxYg1if5zQSyk?B;wg6RT7UV)1#RZc!~9BmD)5fsN6YJ<+Qtx|;4g z{~IHHS}mlHT4@MIpxp=9@8iXuq!HcL1_W1Ggvl?1Od7(_v2hIHmBr;>3NgpJ;7{$R z9)AY!s}I^X(4v<3%F8YSS!^VHkY%7=dLFHODv;z>E3wQbG3~HX2q|U(9u_Y;eHdZ8(Ons%iXy8UzYl;xJ6<>Qrq7YWu1j~*GWa*MjN}*5Ntw{RV$Pr$+ zkBOs0PIk06L)(iil#lA4DFjn9P<5Gh?M_;0Oj10m{+M2`EwF~7D%((vKQNip|0~W% zz)bk=$1g^1g)S-u87YV7mH~4|oo`Nzis(rO!+$aqKr<+F;Qi01Jg6 z!k2g1Qvi^duLBo=vRiO@#3FK9pRfNz;}pu*-?@LY+S(+dEff(R{QXm<}3gfdMg}qqsL`E}7qJ*tjxM#si=P;QXVYKwK1BN3k zbma;=Y`;=dP=CMj#&L#orV=4G!7a43O_=n_Mkh*<5(h*sOcm}mzx^rbrO@oojyfmi zfn@&mz&j^(X)b37GNAC`U=}6~Zp*ca!|#Zgm;<=; z0ngEiH{0O?@t-)9`N)u2vMx^;_Vu~lCC6cNJ^vSasdU0+)qD* zaG>>65+Xw-t=CrDIJ*QK`WRlP4D~(e;$gQmNjWHT&_L}d;|BQ)bW7;868iRq6~=@I zNi_(k_RR%3Z{NiOo!5B&?bDjTMCP)~T0BXDTZ3v<2~2P%M0DB9=QeYan(I!$S{%{A2H?RCVLD=ZUCE%{gVokoEY}M zAvA7zSxps<0J7)*4-XnJ1wfCPR?2t-cXQ{>WW=iZw&Th;J7cGSVlNULiR(mNYzvk_ z@3<1DK_C$wdOy}(r*7UYS=jq+&F_*c%_YTo$T~8?D;}kz>lj#<0|ROjp7o=_T%q&5 zVA@bv*Sq8??Haw3xoT}qmyh%3g;cewbjP9)%15!<)W{7&E|jU?WNfOveQB<|ICc}& zt}RRy5F=pJ(yFAii5KR^TLb?r->xv3$aSYKOoZ8=&?JYTsyUHonOmgwjG{W< z9#R4r2qe!5tAu6DkEHu@=I%D-m-1(MjOwSfy_dUk%xRQZ5k zcV7SMA#wV9nNj8Zo%vV=F$>Dc#===hm@iBk*rt?H{Eiuno;DRgJ`$Yj;R+$WhO&0Q z*tH%M|_47>q^(I}u{KHz^UwF5Ih!mFG36<5eifnt~^!}m3m-*Uj2n043G5J!l zZZ_fO)M$+&#vwWWZ;)^iO|U7>u|em}gN7B5lrPOgz5%Tcc@>jhGS#vw-TD~;0~sQl z9)7wEl$3tOm%ePib3qz&KGSp;*BT}Y%>hh@pSR+zzf+EM5pY9fh0_w!pNYsXflV~` z@jlDN3$A^oPFl{Lb8ZrwvGlz=!c${;DMgIYyL>IoJjq4*5yIwfaRC@KcCVr>h?ta0 zL1^jLDWp2~f`a4MCN&$UKl)u8u^@g^vnaikLS?-(#buS5h}fd0F$=~QfFGv#HiEk5V=?Yz*)8z-s64(CZhxP z{5xaK5rNwF!7nMZqsn3```y2TQLM# z_fF0Ci+KQtpHn^5(q?;l*kArvZc~Clas#Ql{~@21P2jG0R~}cxdy4HcHhS{hL0XSI zSH(9OBir|(yBms*@UTZ=petkGKDA!>YjB_O#-LKAzG#bblPRYPvbYq;xT0O3Wo^(e4%_$cxG$`Xgpe&tv4-A2zdC6VPu1%{PS{KdSSX#? zqsRS8p>nYe_@4Zaqxn8X@#8NH7bE`%KRURaIdlR|D>NGhjf7nQKE41M8JJxyyJ8#q E2f+KbJOBUy diff --git a/wikipiki/overview02.png b/wikipiki/overview02.png deleted file mode 100644 index 28638fbf1573b81b22378f15a93373b8214557ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11179 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 Date: Sun, 30 Jan 2022 03:20:59 +0000 Subject: [PATCH 081/219] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 80ceef9..b76dd2e 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A `user.js` is a configuration file that can control hundreds of Firefox setting The `arkenfox user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen). -Everyone, experts included, should at least read the [implementation](https://github.com/arkenfox/user.js/wiki/1.3-Implementation) wiki page, as it contains important information regarding a few `user.js` settings. +Everyone, experts included, should at least read the [wiki](https://github.com/arkenfox/user.js/wiki), as it contains important information regarding a few `user.js` settings. Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://www.torproject.org/about/torusers.html.en) calls for it, or for accessing hidden services. From 0d9de9174ad011d94645660e2780cf1b1f79d14d Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 30 Jan 2022 03:23:06 +0000 Subject: [PATCH 082/219] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b76dd2e..38f7293 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ### 🟪 user.js -A `user.js` is a configuration file that can control hundreds of Firefox settings. For a more technical breakdown and explanation, you can read more on the [overview](https://github.com/arkenfox/user.js/wiki/1.1-Overview) wiki page. +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) ### 🟩 the arkenfox user.js From 4c74f1bffb4242ec613168307566d593c6fb4401 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 30 Jan 2022 08:53:08 +0000 Subject: [PATCH 083/219] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 38f7293..2f33ad9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The `arkenfox user.js` is a **template** which aims to provide as much privacy a Everyone, experts included, should at least read the [wiki](https://github.com/arkenfox/user.js/wiki), as it contains important information regarding a few `user.js` settings. -Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://www.torproject.org/about/torusers.html.en) calls for it, or for accessing hidden services. +Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://2019.www.torproject.org/about/torusers.html) calls for it, or for accessing hidden services. Also be aware that the `arkenfox user.js` is made specifically for desktop Firefox. Using it as-is in other Gecko-based browsers can be counterproductive, especially in the Tor Browser. From 89bee0e3612be471d427cd81540bd54db1955c9d Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 31 Jan 2022 03:08:22 +1300 Subject: [PATCH 084/219] Add files via upload --- wikipiki/rfpCanvas.png | Bin 0 -> 5559 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wikipiki/rfpCanvas.png diff --git a/wikipiki/rfpCanvas.png b/wikipiki/rfpCanvas.png new file mode 100644 index 0000000000000000000000000000000000000000..97488cc218750d38ec88771429a35f1e323370dd GIT binary patch literal 5559 zcma);RZyHwn1w$A!6CQ=hG2oC+TE+&+KWD?>-5{*)o=C16R)YRh==_W8vp=2WhFUn06+N3NVNtD<>k?+z7)lwrlf==k!rEy zCSZTZ*rh8;i7bsvn7G{zEOlDyLH?Y6XkC`ruf2e^%wh~+;$|uFYVn8RR>{y1{)mK+ zjBW37N`+%Hx&s85EjDzX_Y5e&O^BEn8~p%AAAsVwfP)DPsO1g3rH*}kaVP^dK?#dO z8SqLIQo#%(0i*&_WXb_41(YyY4wDX0ga%klT3aCiO%A|P&gvz|0|sva5<8U-S z76@2;VPNnBqM!hY!nwZK8CyNUKI>Dbpv_{PjKcEa#+V!)82b90G;d~<$=OH*ET38C zN^uVPLn(Q}`Ck0Em;!*JG}5QnUflc5;MdR02&A;(n{yoYqd(GHSs@aOi(2PxPG(5VNXuMgtfSqMbQFpdn#5XfNLgi*h@V5yCec@s0;2x7J1`X&Y98_=?k zNq5KR9MbK;7k7X0*AlZ}@J&xR7Mk=IOkzvA)i@NZ1OtW?Omb-S4c(v;8c`x6?RXrC z7QIRuzY@200+?1;33M+0{+V#Bi9%PJ=of$|;x48~kvk*2SxfvIZmVo(rQpjbg%X^v zHeTGhsbocYU*CUzDV`)yy#KYv{>5slge?5+z%L36-Vx`woMXc>O+xHg>DH4?^tHG( zV=o)^YEir6udHXAe9?%)eOr;S6?KwlC4Uu-)NZ-d(C)x^rV}n3a^rryHG}H`)`9?QEk8U`uI;S+sgjW;e9nL?( z)HJ;keUV`&iGj%RxXJfY$J&2Wk$n-8ut{>tvcp1E z&ZpYRZENCGot2$sP@`0%Rik*+D^P!20W0s7?>4**$Crk`V>V${grv?qhwbaE=xkJA zSCFZRi(J)nRy&nZ6?e<|_PbV`! zOms{tYKLkkx!P)-8a_G=_M$Co;de1&wk#1-g4enyM>XT5qn!@TZgT3 z^R7|3;YnMMYqXKDVVQxhk!g!U9jxy4Qg>Z<1z|;}db)Z|!4hP+@vLpUt*V`}aqm0& zT78>KTd*a>iX75DT0eY}-kToW6`Xu8j)51uf?oqN0)=>feorEzC$gD4lYb%^JbIaR zzy&dwC7Auri)bUBWEpXQ>EtaaLdYSVo{<-EiSa5ClbqQSoOx7Z8((^N-+5hmm~IEm zU%~QP@`jEp*BVX)P8?2R*9)ik3Rwyac|E@lf06y6wKpe;Q<(YIX{$CwLslak(z?&U zWzChQU$@-YUglekv^*u3xR!Wdh>$>t32yRi8k$cD4zz!1pVSz3D=?4Vk_}~ew0R78 zoC7MtUZX%z^l>&t$D_bo0ZgYhpVWO(w>;Q_F|i=Y|~EZ8GJ*z(#MDSuvU+w)%Gc)A19+ zSv3W0)5lXS6Kfv?^G^#OkBNqewm-I&#i;0WfDC^2);bC|i+T93VIxSNv&HD4*NSx{ zw6VG@YSbL-XV-`HG6kqPg_{jdL=3i~I33~WV(&!6} zi)+R`$a{(LzBOGGUA0BKMcZ5D+ZLo`eSG!7P1dc8X`Q-@$1xmr9`zoB0l#gz^V=e5 zUL35Qy2N&*h!20&_W(Qf<-ilb(@oAF+hK5*^WQx{Vr?O5@I+R9k^*bDF&19=fFK|) zN15F7T!lQH+*@NS<1URUiMgf2&44?_wO23l`NRzU-(7&m9aaw_7SbW-vq`W_Sa1mE zpLL71lD5Eo>zOUb7jCCr1YXWv~Ak+2hh;fw1^S??r$cauj*BMYa+0p80-e zvU|ms`J}E#qsRPG>R5V3b|ZFC()eNh`{{b9DCL4-5}b~H;?vznyz%dR@|mjrl&umq2^rN zS@UwNJ@F>3wUV|P00g`SfUrma`1APW2LRyx761+{06-)M0La}wnvW_xVd##soHW>P z^*2mQ)p(f_9$L28tgC~THXi1xNm|369BVoM^9RR8l%1L0e7u;P5f--m#fNz%X=krD zJ*0;-L=o9aN!Xq54`e@$YVTZGu47GCTSa`vs?4_qE94%a@%e@Qs%F{9`n_$oMt=L! z**c;nNRmZ+WN-|5JM*XT5eXwc|8}--<`+kc8S&4ECOsVinl!;S`IE@qJeMXwBMf;G z=_vF6Jr<%U@YklfT! zMgQaPAaz7y=xrU^RhaNa-KlkQPs}Xe)IMJSkI^#0&TmU9scvX}CeyyDL1_zq>|a@= zNw+o5TdoV4qk6W^`K+@;h6M}nGc?|wDU73TI);i@cog6K@&;>azuY_a7R+`9S>Lo= zVBaR>3_xJ zZs%t7Eb*U2#DC|6{}uil4gF6s=2JOTYUk#;#~uCCt|yBS3i-GA$)3*oclpU^Q_Q2x z%Q8I&1stt-RSQ6nJ!OwOkiHO{U^yt-zdNSJ%!vJPt36X|44s@t`lMEldC%RCqz0))zhO>BH5U(X&} z5%3_y9rC92Hug~A$8DI#X7?!7edv^b(AIZTFO1%pbjCuYh@i!Diw7&_^ob<~lHjoC z87-w#qu;PjJSsz(GC3T(dh(CHJGHQ?76gJwGcpF&j$He0WF?0O`Dw)Ba5_cz&t#m3 zf(Ix0^mdW!Y?0!stj5(}ow%3e+His6|O#6s-$X-IGwjt`2w!d51{Fvyg zD@8@lgcP8OP>0Tw66^uN4C<{|Eft}M3O>50Z}lSepTe#S;nY_*UF-byEFN=vwY5%Y z6&nWoNf!v_zcy_FMpZ2XJC88Lvd`T!h3e`*Xtq;irs(?UfjKr&*ZL;lKRofW+vg_i zDUzi+TqB;bW0Xg+uD-nLfxznwOPwYt%kK;WsZPS;rkZ?&W@AE+A9bkD5l=%$%vdMr zS{s5clNwl~$mY;COxTzsO=;`gC_>pICtUrU?>8hNASXJDv*l2!!o|@6s@KJou1QQ? z+|wU>rQiG6fL>Ki%9Q4{0r%z2l}paLibCD*g>1yc8^O+^_$k}JtU8EFHcIAi9mLlN z|9GsE;xPJMK+n0}C6Vk*MR+c6AnRQfUo_K=}OC*kyxXUuj_*N^Qy)<*N(s9~QjkYxQ zCx30jKjW#8W@O8I484=%xZDMU1Q4t7*Bh)t1U^Y?8bPtUiRq z5d^X}gp5OS#6%~@kH~3d28G4og|l6%E{mfExT9;i3v!Xuj<$J5tt+Np-M!ylf*WFyk!rR$xrzx_$E?6XXvlTwVE?%yz+ zqE2%B!70n8%I0pm5qWY_zm#F zt*-UO{4uNASllTC`~0lP*-7Re#TvWQ5&Ni311CA-&*y!MEmI0pQ&oP#MEwr) z9?>T#H9oR~pIXVZ@l~2x${M;Wv6Fe1BxRv>{9N$RoA!WbCW%{9-&Nwg%R)8I%%=>M4&O z+^%YIuNjT3S8(pxRsL%Cl@>J1y@qX5(}^V$%~O~1bR`l_P$U1WVDg*(&69Uz^Vom{ zN%?!8j1(Nl#MGRvu?dSj$o4L#A9t<)$sKKkX8EbixR&}HmzoCLjScnk1e52J6LC8= zLcif{6kX*#T;2H{-gt6}t)FglQmkt&c0b~i?>jSBHvPhX;}vT$=N|Pk5$a+aqXr@7 zk4H_pDPAP=ykGdoQM{FmSCJSaX(jYq$-M@wmEz@ww}z;D!mEiDJbV;HC+01*M9nw# z5nUy@p|Z@GU5130pNU`4Ga+69QsqM{G|lasfWW$inz(Epm=P~3I2ME|c5aJ@1lQx9 z{AFIn92cVsPI3M_F$%RlhH{JKv>g6yKilS{td0d?grOtHN{L}X26cTtaB8JVYscu4 z$?R?MdmH@Z(?978bi0TSPQ=-&9uM`2T?gFlv(JwIlwXHaWm7E2-4Ke^sIX=-55-qC zA#ykd9Oofb*vH!qmGcDekjx_%2Vx^up{7p|wNoM|qxs3JN7Z_7Ciw?rO)B`Zsat3< zrLDjG8)ul1y;y(aXA*!wb literal 0 HcmV?d00001 From 917e3fe1aad0be2ae93787e4cbaeb33112a6f8c1 Mon Sep 17 00:00:00 2001 From: xfzv <78810647+xfzv@users.noreply.github.com> Date: Sun, 6 Feb 2022 12:23:20 +0000 Subject: [PATCH 085/219] Update wiki link for updater options (#1364) --- updater.bat | 4 ++-- updater.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/updater.bat b/updater.bat index badd778..eef06f0 100644 --- a/updater.bat +++ b/updater.bat @@ -3,8 +3,8 @@ TITLE arkenfox user.js updater REM ## arkenfox user.js updater for Windows REM ## author: @claustromaniac -REM ## version: 4.15 -REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts +REM ## version: 4.16 +REM ## instructions: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options]#-windows SET v=4.15 diff --git a/updater.sh b/updater.sh index a1f7070..8295720 100755 --- a/updater.sh +++ b/updater.sh @@ -2,7 +2,7 @@ ## arkenfox user.js updater for macOS and Linux -## version: 3.2 +## version: 3.3 ## Author: Pat Johnson (@overdodactyl) ## Additional contributors: @earthlng, @ema-pe, @claustromaniac @@ -62,7 +62,7 @@ show_banner() { #### #### ############################################################################" echo -e "${NC}\n" - echo -e "Documentation for this script is available here: ${CYAN}https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts${NC}\n" + echo -e "Documentation for this script is available here: ${CYAN}https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options]#-maclinux${NC}\n" } ######################### From 562127be87ff1115f1d5c7bebd5890efd801b064 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 6 Feb 2022 15:27:50 +0000 Subject: [PATCH 086/219] Update troubleshooting-help.md --- .../ISSUE_TEMPLATE/troubleshooting-help.md | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/troubleshooting-help.md b/.github/ISSUE_TEMPLATE/troubleshooting-help.md index 955c367..5e8c1f6 100644 --- a/.github/ISSUE_TEMPLATE/troubleshooting-help.md +++ b/.github/ISSUE_TEMPLATE/troubleshooting-help.md @@ -7,23 +7,24 @@ assignees: '' --- -Before you proceed... - - Issues will be closed as invalid if you do not [troubleshoot](https://github.com/arkenfox/user.js/wiki/1.4-Troubleshooting), including - - confirming the problem is caused by the `user.js` - - searching the `[Setup` tags in the `user.js` - - Search the GitHub repository. The information you need is most likely here already. - - Note: We do not support forks + + +https://github.com/arkenfox/user.js/wiki/5.2-Troubleshooting +- [ ] _I have read the troubleshooting guide, done the checks and confirmed this is caused by arkenfox:_ + +Information + - Browser version & OS: + - Steps to Reproduce (STR): + - Expected result: + - Actual result: + - Console errors and warnings: + - Anything else you deem worth mentioning: + +--- -Clear all of this when you're ready to type. From d61da93aad93904ba3deaf20ead1f5fcde1369cd Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 6 Feb 2022 15:30:25 +0000 Subject: [PATCH 087/219] Update troubleshooting-help.md --- .github/ISSUE_TEMPLATE/troubleshooting-help.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/troubleshooting-help.md b/.github/ISSUE_TEMPLATE/troubleshooting-help.md index 5e8c1f6..a27d59e 100644 --- a/.github/ISSUE_TEMPLATE/troubleshooting-help.md +++ b/.github/ISSUE_TEMPLATE/troubleshooting-help.md @@ -15,10 +15,10 @@ We do not support forks. --> -https://github.com/arkenfox/user.js/wiki/5.2-Troubleshooting -- [ ] _I have read the troubleshooting guide, done the checks and confirmed this is caused by arkenfox:_ +🟥 https://github.com/arkenfox/user.js/wiki/5.2-Troubleshooting +- [ ] I have read the troubleshooting guide, done the checks and confirmed this is caused by arkenfox -Information +🟪 INFO - Browser version & OS: - Steps to Reproduce (STR): - Expected result: @@ -27,4 +27,3 @@ Information - Anything else you deem worth mentioning: --- - From 58e2618b9ddb436867f1701733a07ab286eb1b3f Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Wed, 9 Feb 2022 20:00:43 +0000 Subject: [PATCH 088/219] dom.securecontext.whitelist_onions replaced by dom.securecontext.allowlist_onions - https://bugzilla.mozilla.org/1744006 --- scratchpad-scripts/arkenfox-cleanup.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scratchpad-scripts/arkenfox-cleanup.js b/scratchpad-scripts/arkenfox-cleanup.js index 9d2ec12..af6193f 100644 --- a/scratchpad-scripts/arkenfox-cleanup.js +++ b/scratchpad-scripts/arkenfox-cleanup.js @@ -3,7 +3,7 @@ - removed from the arkenfox user.js - deprecated by Mozilla but listed in the arkenfox user.js in the past - Last updated: 16-January-2022 + Last updated: 9-February-2022 Instructions: - [optional] close Firefox and backup your profile @@ -34,6 +34,7 @@ /* DEPRECATED */ /* FF92+ */ 'browser.urlbar.suggest.quicksuggest', // 95 + 'dom.securecontext.whitelist_onions', // 97 'layout.css.font-visibility.level', // 94 'security.ssl3.rsa_des_ede3_sha', // 93 /* FF79-91 */ From a98b73c64e2e0b505efb6b23d34e6c5d90abe2c8 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 14 Feb 2022 00:15:00 +1300 Subject: [PATCH 089/219] v97 (#1346) --- user.js | 64 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/user.js b/user.js index e80a95c..9098913 100644 --- a/user.js +++ b/user.js @@ -1,25 +1,24 @@ /****** -* name: arkenfox user.js -* date: 21 January 2022 -* version 96 -* url: https://github.com/arkenfox/user.js +* name: arkenfox user.js +* date: 12 February 2022 +* version: 97 +* url: https://github.com/arkenfox/user.js * license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt * README: 1. Consider using Tor Browser if it meets your needs or fits your threat model * https://2019.www.torproject.org/about/torusers.html - 2. Required reading: Overview, Backing Up, Implementing, and Maintenance entries + 2. Read the entire wiki * https://github.com/arkenfox/user.js/wiki 3. If you skipped step 2, return to step 2 - 4. Make changes + 4. Make changes in a user-overrides.js * There are often trade-offs and conflicts between security vs privacy vs anti-tracking and these need to be balanced against functionality & convenience & breakage * Some site breakage and unintended consequences will happen. Everyone's experience will differ e.g. some user data is erased on exit (section 2800), change this to suit your needs * While not 100% definitive, search for "[SETUP" tags e.g. third party images/videos not loading on some sites? check 1601 - * Take the wiki link in step 2 and read the Troubleshooting entry 5. Some tag info [SETUP-SECURITY] it's one item, read it [SETUP-WEB] can cause some websites to break @@ -159,7 +158,7 @@ user_pref("datareporting.policy.dataSubmissionEnabled", false); * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data ***/ user_pref("datareporting.healthreport.uploadEnabled", false); /* 0332: disable telemetry - * The "unified" pref affects the behaviour 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 true then "enabled" only controls whether to record extended data * [NOTE] "toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2] @@ -235,16 +234,16 @@ user_pref("_user.js.parrot", "0400 syntax error: the parrot's passed on!"); * To verify the safety of certain executable files, Firefox may submit some information about the * file, including the name, origin, size and a cryptographic hash of the contents, to the Google * Safe Browsing service which helps Firefox determine whether or not the file should be blocked - * [SETUP-SECURITY] If you do not understand this, or you want this protection, then override it ***/ + * [SETUP-SECURITY] If you do not understand this, or you want this protection, then override this ***/ user_pref("browser.safebrowsing.downloads.remote.enabled", false); -user_pref("browser.safebrowsing.downloads.remote.url", ""); + // user_pref("browser.safebrowsing.downloads.remote.url", ""); // Defense-in-depth /* 0404: disable SB checks for unwanted software * [SETTING] Privacy & Security>Security>... "Warn you about unwanted and uncommon software" ***/ // user_pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false); // user_pref("browser.safebrowsing.downloads.remote.block_uncommon", false); /* 0405: disable "ignore this warning" on SB warnings [FF45+] * If clicked, it bypasses the block for that session. This is a means for admins to enforce SB - * [TEST] see github wiki APPENDIX A: Test Sites: Section 5 + * [TEST] see https://github.com/arkenfox/user.js/wiki/Appendix-A-Test-Sites#-mozilla * [1] https://bugzilla.mozilla.org/1226490 ***/ // user_pref("browser.safebrowsing.allowOverride", false); @@ -263,7 +262,9 @@ user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: fals /* 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 ***/ user_pref("network.http.speculative-parallel-limit", 0); -/* 0605: enforce no "Hyperlink Auditing" (click tracking) +/* 0605: disable mousedown speculative connections on bookmarks and history [FF98+] ***/ +user_pref("browser.places.speculativeConnect.enabled", false); +/* 0610: enforce no "Hyperlink Auditing" (click tracking) * [1] https://www.bleepingcomputer.com/news/software/major-browsers-to-prevent-disabling-of-click-tracking-privacy-risk/ ***/ // user_pref("browser.send_pings", false); // [DEFAULT: false] @@ -306,7 +307,7 @@ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] * [WARNING] If false, this will break the fallback for some security features * [SETUP-CHROME] If you use a proxy and you understand the security impact * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1732792,1733994,1733481 ***/ - // user_pref("network.proxy.allow_bypass", false); // [HIDDEN PREF] + // user_pref("network.proxy.allow_bypass", false); // [HIDDEN PREF FF95-96] /* 0710: disable DNS-over-HTTPS (DoH) rollout [FF60+] * 0=off by default, 2=TRR (Trusted Recursive Resolver) first, 3=TRR only, 5=explicitly off * see "doh-rollout.home-region": USA Feb 2020, Canada July 2021 [3] @@ -323,8 +324,7 @@ user_pref("_user.js.parrot", "0800 syntax error: the parrot's ceased to be!"); * 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) - * [SETUP-CHROME] If you don't, or rarely, type URLs, or you use a default search - * engine that respects privacy, then you probably don't need this ***/ + * [SETUP-CHROME] Override this if you trust and use a privacy respecting search engine ***/ user_pref("keyword.enabled", false); /* 0802: disable location bar domain guessing * domain guessing intercepts DNS "hostname not found errors" and resends a @@ -338,7 +338,7 @@ user_pref("browser.fixup.alternate.enabled", false); user_pref("browser.urlbar.trimURLs", false); /* 0804: disable live search suggestions * [NOTE] Both must be true for the location bar to work - * [SETUP-CHROME] Change these if you trust and use a privacy respecting search engine + * [SETUP-CHROME] Override these if you trust and use a privacy respecting search engine * [SETTING] Search>Provide search suggestions | Show search suggestions in address bar results ***/ user_pref("browser.search.suggest.enabled", false); user_pref("browser.urlbar.suggest.searches", false); @@ -452,11 +452,11 @@ user_pref("browser.shell.shortcutFavicons", false); user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!"); /** SSL (Secure Sockets Layer) / TLS (Transport Layer Security) ***/ /* 1201: require safe negotiation - * Blocks connections (SSL_ERROR_UNSAFE_NEGOTIATION) to servers that don't support RFC 5746 [2] - * as they're potentially vulnerable to a MiTM attack [3]. A server without RFC 5746 can be - * safe from the attack if it disables renegotiations 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. + * Blocks connections to servers that don't support RFC 5746 [2] as they're potentially vulnerable to a + * MiTM attack [3]. A server without RFC 5746 can be safe from the attack if it disables renegotiations + * 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 + * [SETUP-WEB] SSL_ERROR_UNSAFE_NEGOTIATION: is it worth overriding this for that one site? * [STATS] SSL Labs (July 2021) reports over 99% of top sites have secure renegotiation [4] * [1] https://wiki.mozilla.org/Security:Renegotiation * [2] https://datatracker.ietf.org/doc/html/rfc5746 @@ -580,7 +580,7 @@ user_pref("_user.js.parrot", "1600 syntax error: the parrot rests in peace!"); /* 1601: control when to send a cross-origin referer * 0=always (default), 1=only if base domains match, 2=only if hosts match * [SETUP-WEB] Breakage: older modems/routers and some sites e.g banks, vimeo, icloud, instagram - * If "2" is too strict, then override to "0" and use Smart Referer (Strict mode + add exceptions) ***/ + * If "2" is too strict, then override to "0" and use Smart Referer extension (Strict mode + add exceptions) ***/ user_pref("network.http.referer.XOriginPolicy", 2); /* 1602: control the amount of cross-origin information to send [FF52+] * 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port ***/ @@ -598,7 +598,7 @@ user_pref("_user.js.parrot", "1700 syntax error: the parrot's bit the dust!"); * [SETTING] General>Tabs>Enable Container Tabs ***/ user_pref("privacy.userContext.enabled", true); user_pref("privacy.userContext.ui.enabled", true); -/* 1702: set behaviour on "+ Tab" button to display container menu on left click [FF74+] +/* 1702: set behavior on "+ Tab" button to display container menu on left click [FF74+] * [NOTE] The menu is always shown on long press and right click * [SETTING] General>Tabs>Enable Container Tabs>Settings>Select a container for each new tab ***/ // user_pref("privacy.userContext.newTabContainerOnLeftClick.enabled", true); @@ -766,8 +766,10 @@ user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin user_pref("browser.contentblocking.category", "strict"); /* 2702: disable ETP web compat features [FF93+] * [SETUP-HARDEN] Includes skip lists, heuristics (SmartBlock) and automatic grants + * Opener Heuristics are granted for 30 days and Redirect Heuristics for 15 minutes, see [3] * [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/en-US/docs/Web/Privacy/State_Partitioning#storage_access_heuristics ***/ // user_pref("privacy.antitracking.enableWebcompat", false); /* 2710: enable state partitioning of service workers [FF96+] ***/ user_pref("privacy.partition.serviceWorkers", true); @@ -781,7 +783,6 @@ user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!" * sharedWorkers and serviceWorkers. serviceWorkers require an "Allow" permission * [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed * [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow - * If using FPI the syntax must be https://example.com/^firstPartyDomain=example.com * [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Settings ***/ user_pref("network.cookie.lifetimePolicy", 2); /* 2802: delete cache on exit [FF96+] @@ -952,7 +953,7 @@ user_pref("browser.link.open_newwindow", 3); // [DEFAULT: 3] * [1] https://searchfox.org/mozilla-central/source/dom/tests/browser/browser_test_new_window_from_content.js ***/ user_pref("browser.link.open_newwindow.restriction", 0); /* 4520: disable WebGL (Web Graphics Library) - * [SETUP-WEB] If you need it then enable it. RFP still randomizes canvas for naive scripts ***/ + * [SETUP-WEB] If you need it then override it. RFP still randomizes canvas for naive scripts ***/ user_pref("webgl.disabled", true); /*** [SECTION 5000]: OPTIONAL OPSEC @@ -1029,8 +1030,8 @@ user_pref("_user.js.parrot", "5000 syntax error: the parrot's taken 'is last bow // user_pref("browser.download.folderList", 2); /*** [SECTION 5500]: OPTIONAL HARDENING - Not recommended. Keep in mind that these can cause breakage and performance - issues, are mostly fingerpintable, and the threat model is practically zero + Not recommended. Overriding these can cause breakage and performance issues, + they are mostly fingerprintable, and the threat model is practically nonexistent ***/ user_pref("_user.js.parrot", "5500 syntax error: this is an ex-parrot!"); /* 5501: disable MathML (Mathematical Markup Language) [FF51+] @@ -1125,7 +1126,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("geo.enabled", false); // user_pref("full-screen-api.enabled", false); // user_pref("browser.cache.offline.enable", false); - // user_pref("dom.vr.enabled", false); + // user_pref("dom.vr.enabled", false); // [DEFAULT: false FF97+] /* 7002: set default permissions * Location, Camera, Microphone, Notifications [FF58+] Virtual Reality [FF73+] * 0=always ask (default), 1=allow, 2=block @@ -1159,7 +1160,6 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies // user_pref("security.ssl.disable_session_identifiers", true); // [HIDDEN PREF] /* 7006: onions * [WHY] Firefox doesn't support hidden services. Use Tor Browser ***/ - // user_pref("dom.securecontext.whitelist_onions", true); // 1382359 // user_pref("dom.securecontext.allowlist_onions", true); // [FF97+] 1382359/1744006 // user_pref("network.http.referer.hideOnionSource", true); // 1305144 /* 7007: referers @@ -1344,6 +1344,10 @@ user_pref("browser.urlbar.suggest.quicksuggest", false); // [1] https://support.mozilla.org/kb/enable-background-updates-firefox-windows // [-] https://bugzilla.mozilla.org/1738983 user_pref("app.update.background.scheduling.enabled", false); +// FF97 +// 7006: onions - replaced by new 7006 "allowlist" + // [-] https://bugzilla.mozilla.org/1744006 + // user_pref("dom.securecontext.whitelist_onions", true); // 1382359 // ***/ /* END: internal custom pref to test for syntax errors ***/ From 41468d0d0bf287589e9ab2c012aa0eded1388610 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 13 Feb 2022 13:11:26 +0000 Subject: [PATCH 090/219] Update troubleshooting-help.md --- .github/ISSUE_TEMPLATE/troubleshooting-help.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/troubleshooting-help.md b/.github/ISSUE_TEMPLATE/troubleshooting-help.md index a27d59e..ea7f92f 100644 --- a/.github/ISSUE_TEMPLATE/troubleshooting-help.md +++ b/.github/ISSUE_TEMPLATE/troubleshooting-help.md @@ -11,12 +11,14 @@ assignees: '' Issues will be closed as invalid if you do not troubleshoot first, or if you ignore the steps in the template. -We do not support forks. +We do not support forks or no-longer supported releases. --> + 🟥 https://github.com/arkenfox/user.js/wiki/5.2-Troubleshooting - [ ] I have read the troubleshooting guide, done the checks and confirmed this is caused by arkenfox + - _unchecked issues ~~may~~ will closed as invalid_ 🟪 INFO - Browser version & OS: From 4bd17611df133b8ab3077df495ab7197c1844eea Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 13 Feb 2022 13:11:55 +0000 Subject: [PATCH 091/219] Update troubleshooting-help.md --- .github/ISSUE_TEMPLATE/troubleshooting-help.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/troubleshooting-help.md b/.github/ISSUE_TEMPLATE/troubleshooting-help.md index ea7f92f..ee0a8c7 100644 --- a/.github/ISSUE_TEMPLATE/troubleshooting-help.md +++ b/.github/ISSUE_TEMPLATE/troubleshooting-help.md @@ -18,7 +18,7 @@ We do not support forks or no-longer supported releases. 🟥 https://github.com/arkenfox/user.js/wiki/5.2-Troubleshooting - [ ] I have read the troubleshooting guide, done the checks and confirmed this is caused by arkenfox - - _unchecked issues ~~may~~ will closed as invalid_ + - _unchecked issues ~~may~~ will be closed as invalid_ 🟪 INFO - Browser version & OS: From ba052105de3c4be2e34cf103f08b2f28c6d5b496 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Mon, 14 Feb 2022 05:38:13 +1300 Subject: [PATCH 092/219] Add files via upload --- wikipiki/rfpCanvasException.png | Bin 0 -> 7765 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wikipiki/rfpCanvasException.png diff --git a/wikipiki/rfpCanvasException.png b/wikipiki/rfpCanvasException.png new file mode 100644 index 0000000000000000000000000000000000000000..6889f80924c3cff60b656dd56ec70f266ebd04f1 GIT binary patch literal 7765 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 O1LUPuq-rJ1LjMP~Z54L_ literal 0 HcmV?d00001 From 382b9181dfb9d4d6ae010af526e7410383137fd5 Mon Sep 17 00:00:00 2001 From: Thorin-Oakenpants Date: Sun, 20 Feb 2022 19:00:32 +1300 Subject: [PATCH 093/219] Add files via upload --- wikipiki/uboCustom.png | Bin 0 -> 12439 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wikipiki/uboCustom.png diff --git a/wikipiki/uboCustom.png b/wikipiki/uboCustom.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8c443aa48bb8c40ea41cc80e259d4a554a5e62 GIT binary patch literal 12439 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 Date: Thu, 24 Feb 2022 00:26:15 +0000 Subject: [PATCH 094/219] Update troubleshooting-help.md --- .github/ISSUE_TEMPLATE/troubleshooting-help.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/troubleshooting-help.md b/.github/ISSUE_TEMPLATE/troubleshooting-help.md index ee0a8c7..b5c7564 100644 --- a/.github/ISSUE_TEMPLATE/troubleshooting-help.md +++ b/.github/ISSUE_TEMPLATE/troubleshooting-help.md @@ -9,7 +9,7 @@ assignees: ''