mirror of
https://github.com/arkenfox/user.js.git
synced 2026-06-15 17:02:33 +05:30
Compare commits
147 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c367beabe3 | |||
| e1d336a178 | |||
| ee3e5f0186 | |||
| 42b7650d42 | |||
| f61d4a0d38 | |||
| 7fe9784bf8 | |||
| ed05c64482 | |||
| 16c3658040 | |||
| 515d6ff874 | |||
| fc65052286 | |||
| 6a107d4d2f | |||
| eff4b74130 | |||
| 2532ddcc18 | |||
| 44e22835c1 | |||
| 1f545312fd | |||
| 637e5964db | |||
| 26bca612d7 | |||
| 6fdda5fb62 | |||
| ed5b158777 | |||
| 4c4270f1d7 | |||
| af51631597 | |||
| ae0c980d25 | |||
| 3e4c56cf27 | |||
| 18112f9ae8 | |||
| c8eee094e0 | |||
| 78a7c194eb | |||
| f606c8b866 | |||
| 9c98972d14 | |||
| 75a03df0f7 | |||
| 76019e6fbe | |||
| 3c2bd930c3 | |||
| ed993d5502 | |||
| 22d2d702be | |||
| 8dacf6e91f | |||
| fbe1d48fe2 | |||
| 5fd7f6de7e | |||
| 592b959c24 | |||
| c6f53c8768 | |||
| 38d772e4c8 | |||
| cfce521919 | |||
| a5ab3e23d6 | |||
| b3eee6c9fd | |||
| 8d6d17d46b | |||
| 9a37e1340c | |||
| f1e0203ef4 | |||
| 726d5bde30 | |||
| f9f0fffd27 | |||
| 93840ca181 | |||
| 99aa5af356 | |||
| 0358fdac8b | |||
| 815c3026b5 | |||
| 5ed3047b7a | |||
| e16ede1cdf | |||
| 6905187b3e | |||
| 172118e61b | |||
| 8452edb94b | |||
| 0f6957bbd4 | |||
| 8c2bcc0352 | |||
| bc832575d8 | |||
| c4b7e07691 | |||
| 58fb1db838 | |||
| 2809854802 | |||
| 091a71aade | |||
| 117ab133b1 | |||
| c4a06c4689 | |||
| 0d27689c64 | |||
| 771e57480a | |||
| f8fd03482d | |||
| 10cc1224d0 | |||
| 52926cca7a | |||
| be64819ce7 | |||
| 24c228df92 | |||
| 892b3d9d69 | |||
| df21798b81 | |||
| 46d03279d3 | |||
| fe0af3bb34 | |||
| 84997386c1 | |||
| 1a389c0214 | |||
| d0060fed3c | |||
| 3d18af19e3 | |||
| b5b04454e0 | |||
| 618f7bed3f | |||
| 488a825626 | |||
| aaf6cb33d7 | |||
| 77ecef8be3 | |||
| 4be0a80720 | |||
| f573200aa8 | |||
| 48f258ff53 | |||
| b9100488cb | |||
| 9d78e050ee | |||
| b07cf1f03d | |||
| 683ef63b37 | |||
| 05580f5e99 | |||
| ecc62554e5 | |||
| f6e6de8444 | |||
| f69d92e6dd | |||
| 3edc48da56 | |||
| 868882ae33 | |||
| ff9bf76e52 | |||
| 4bc5b89cfe | |||
| bb1e5bfd54 | |||
| 27d72eda9e | |||
| 07117c65c1 | |||
| 919d4bfe96 | |||
| e38e253c25 | |||
| 14aaec71fb | |||
| c0780df24d | |||
| 0ea1605642 | |||
| bd384622db | |||
| 3366e0aa16 | |||
| dff5bb478a | |||
| d455c500a6 | |||
| b90e72370c | |||
| dd162d9f48 | |||
| d7c276b3fe | |||
| 394b691599 | |||
| ba83c555cc | |||
| b695468c7e | |||
| deae6e14f9 | |||
| 97c5378e52 | |||
| d2dd0c2ab4 | |||
| 8c7149c6a5 | |||
| d2da48c215 | |||
| 7e71b6663c | |||
| 94c83519f2 | |||
| e7d20867cb | |||
| 55ae994972 | |||
| f0945743b7 | |||
| ee35d7c70d | |||
| fe1b03bd2a | |||
| 187692af66 | |||
| b6e2a3f64f | |||
| 6f7e09ad43 | |||
| 4ddf60cf32 | |||
| 24777c9ac2 | |||
| 615ebeda2f | |||
| 4139630635 | |||
| a542701ba5 | |||
| e67a0c868d | |||
| 1afd52de6e | |||
| 64f34f1471 | |||
| 5f3e3b2691 | |||
| 1ce1f74494 | |||
| 03f558b09c | |||
| cd9fc110b0 | |||
| 7619e312de | |||
| 5d2c5de11c |
@@ -8,16 +8,16 @@ assignees: ''
|
||||
---
|
||||
|
||||
Before you proceed...
|
||||
- Keep reading this. Seriously.
|
||||
- Note that we do not support forks (i.e. IceCat, Pale Moon, WaterFox, etc).
|
||||
- Make sure you searched for the `[Setup` tags in the `user.js`.
|
||||
- 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.
|
||||
- Check out our [troubleshooting](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.4-Troubleshooting) wiki page, including steps to see if the problem is caused by the `user.js` or an extension.
|
||||
- Note: We do not support forks
|
||||
|
||||
See also:
|
||||
- Extension breakage due to prefs [issue 391](https://github.com/ghacksuserjs/ghacks-user.js/issues/391)
|
||||
- Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/ghacksuserjs/ghacks-user.js/issues/350)
|
||||
- The extension CSP header modification game [issue 664](https://github.com/ghacksuserjs/ghacks-user.js/issues/664)
|
||||
- Extension breakage due to prefs [issue 391](https://github.com/arkenfox/user.js/issues/391)
|
||||
- Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/arkenfox/user.js/issues/350)
|
||||
- The extension CSP header modification game [issue 664](https://github.com/arkenfox/user.js/issues/664)
|
||||
|
||||
If you still need help, help us help you by providing relevant information:
|
||||
- browser version
|
||||
|
||||
@@ -9,7 +9,7 @@ assignees: ''
|
||||
|
||||
We value feedback in general, but we value feedback from informed users more. There is no need for you to be an expert to participate (most of us aren't), but we hope that you at least understand our decisions before questioning them. We discuss all changes openly, and we do not make changes lightly. So, if you don't understand why we decided to add/remove/change a certain pref, search the repo. The answer is most certainly here.
|
||||
|
||||
If some change we made took you by surprise (in the wrong way), remember that keeping track of changes is your responsibility. Watch the repo, read the [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/issues?utf8=✓&q=is%3Aissue+label%3Achangelog), compare [releases](https://github.com/ghacksuserjs/ghacks-user.js/releases) as you update your copy of user.js, or use any other method you prefer.
|
||||
If some change we made took you by surprise (in the wrong way), remember that keeping track of changes is your responsibility. Watch the repo, read the [changelogs](https://github.com/arkenfox/user.js/issues?utf8=✓&q=is%3Aissue+label%3Achangelog), compare [releases](https://github.com/arkenfox/user.js/releases) as you update your copy of user.js, or use any other method you prefer.
|
||||
|
||||
Clear all of this when you're ready to type.
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 ghacksuserjs
|
||||
Copyright (c) 2020 arkenfox
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,27 +1,28 @@
|
||||
### ![][b] 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/ghacksuserjs/ghacks-user.js/wiki/1.1-Overview) wiki page.
|
||||
### 🟪 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.
|
||||
|
||||
### ![][b] ghacks user.js
|
||||
The `ghacks 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).
|
||||
### 🟩 the arkenfox user.js
|
||||
|
||||
Everyone, experts included, should at least read the [implementation](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation) wiki page, as it contains important information regarding a few `ghacks user.js` settings.
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
Also be aware that this `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.
|
||||
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.
|
||||
|
||||
Sitemap: [Releases](https://github.com/ghacksuserjs/ghacks-user.js/releases), [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Achangelog), [Wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki), [stickies](https://github.com/ghacksuserjs/ghacks-user.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22sticky+topic%22). [diffs](https://github.com/ghacksuserjs/ghacks-user.js/issues?q=is%3Aissue+label%3Adiffs)
|
||||
### 🟧 sitemap
|
||||
|
||||
### ![][b] acknowledgments
|
||||
Literally thousands of sources, references and suggestions. That said...
|
||||
- [Releases](https://github.com/arkenfox/user.js/releases)
|
||||
- [changelogs](https://github.com/arkenfox/user.js/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Achangelog)
|
||||
- [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)
|
||||
|
||||
* Martin Brinkmann at [ghacks](https://www.ghacks.net/) <sup>1</sup>
|
||||
* The ghacks community and commentators
|
||||
* [12bytes](https://12bytes.org/articles/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs)
|
||||
* The 12bytes article now uses this user.js and supplements it with an additional JS hosted at [Codeberg](https://codeberg.org/12bytes.org/Firefox-user.js-supplement)
|
||||
### 🟥 acknowledgments
|
||||
Literally thousands of sources, references and suggestions. Special mention to:
|
||||
|
||||
<sup>1</sup> The ghacks user.js was an independent project by [Thorin-Oakenpants](https://github.com/Thorin-Oakenpants) started in early 2015 and was [first published](https://www.ghacks.net/2015/08/18/a-comprehensive-list-of-firefox-privacy-and-security-settings/) at ghacks in August 2015. With Martin Brinkmann's blessing, it will keep the ghacks name.
|
||||
* This [12bytes article](https://12bytes.org/articles/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs) which uses the `arkenfox user.js` and supplements it with an additional JS hosted at [Codeberg](https://codeberg.org/12bytes.org/Firefox-user.js-supplement)
|
||||
|
||||
### ![][b] [](https://opensource.org/licenses/MIT)
|
||||
|
||||
[b]: /wikipiki/bullet01.png
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
theme: jekyll-theme-midnight
|
||||
title: ghacks-user.js
|
||||
title: user.js
|
||||
description: An ongoing comprehensive user.js template for configuring and hardening Firefox privacy, security and anti-fingerprinting
|
||||
|
||||
+3
-3
@@ -3,7 +3,7 @@ TITLE prefs.js cleaner
|
||||
|
||||
REM ### prefs.js cleaner for Windows
|
||||
REM ## author: @claustromaniac
|
||||
REM ## version: 2.2
|
||||
REM ## version: 2.3
|
||||
|
||||
CD /D "%~dp0"
|
||||
|
||||
@@ -13,7 +13,7 @@ ECHO:
|
||||
ECHO ########################################
|
||||
ECHO #### prefs.js cleaner for Windows ####
|
||||
ECHO #### by claustromaniac ####
|
||||
ECHO #### v2.2 ####
|
||||
ECHO #### v2.3 ####
|
||||
ECHO ########################################
|
||||
ECHO:
|
||||
CALL :message "This script should be run from your Firefox profile directory."
|
||||
@@ -101,7 +101,7 @@ ECHO add-ons disabled. Then, restart it again normally, and see if the
|
||||
CALL :message " problems were solved."
|
||||
ECHO:
|
||||
CALL :message "If you are able to identify the cause of your issues, please bring it up"
|
||||
ECHO on ghacks-user.js GitHub repository.
|
||||
ECHO on arkenfox user.js GitHub repository.
|
||||
ECHO:
|
||||
ECHO:
|
||||
PAUSE
|
||||
|
||||
+4
-4
@@ -2,7 +2,7 @@
|
||||
|
||||
## prefs.js cleaner for Linux/Mac
|
||||
## author: @claustromaniac
|
||||
## version: 1.1
|
||||
## version: 1.3
|
||||
|
||||
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
||||
|
||||
@@ -27,7 +27,7 @@ fQuit() {
|
||||
fFF_check() {
|
||||
# there are many ways to see if firefox is running or not, some more reliable than others
|
||||
# this isn't elegant and might not be future-proof but should at least be compatible with any environment
|
||||
while [ -e webappsstore.sqlite-shm ]; do
|
||||
while [ -e lock ]; do
|
||||
echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n"
|
||||
read -p "Press any key to continue."
|
||||
done
|
||||
@@ -58,7 +58,7 @@ echo -e "\n\n"
|
||||
echo " ╔══════════════════════════╗"
|
||||
echo " ║ prefs.js cleaner ║"
|
||||
echo " ║ by claustromaniac ║"
|
||||
echo " ║ v1.1 ║"
|
||||
echo " ║ v1.3 ║"
|
||||
echo " ╚══════════════════════════╝"
|
||||
echo -e "\nThis script should be run from your Firefox profile directory.\n"
|
||||
echo "It will remove any entries from prefs.js that also exist in user.js."
|
||||
@@ -90,7 +90,7 @@ select option in Start Help Exit; do
|
||||
echo "4. Rename or copy your latest backup to prefs.js."
|
||||
echo "5. Run Firefox and see if you notice anything wrong with it."
|
||||
echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved."
|
||||
echo -e "If you are able to identify the cause of your issues, please bring it up on ghacks-user.js GitHub repository.\n"
|
||||
echo -e "If you are able to identify the cause of your issues, please bring it up on the arkenfox user.js GitHub repository.\n"
|
||||
;;
|
||||
Exit)
|
||||
fQuit 0
|
||||
|
||||
+8
-4
@@ -1,10 +1,12 @@
|
||||
/***
|
||||
This will reset the preferences that are under sections 4600 & 4700 in the ghacks user.js
|
||||
up to and including Firefox/ESR 68. These are the prefs that are no longer necessary,
|
||||
or they conflict with, privacy.resistFingerprinting if you have that enabled.
|
||||
Version: up to and including FF/ESR78
|
||||
|
||||
This will reset the preferences that are under sections 4600 & 4700 in the
|
||||
arkenfox user.js. These are the prefs that are no longer necessary, or they
|
||||
conflict with, privacy.resistFingerprinting if you have that enabled.
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
***/
|
||||
|
||||
(function() {
|
||||
@@ -24,6 +26,8 @@
|
||||
'webgl.enable-debug-renderer-info',
|
||||
'dom.w3c_pointer_events.enabled',
|
||||
'ui.use_standins_for_native_colors',
|
||||
'ui.systemUsesDarkTheme',
|
||||
'ui.prefersReducedMotion',
|
||||
/* section 4700 */
|
||||
'general.useragent.override',
|
||||
'general.buildID.override',
|
||||
+29
-2
@@ -1,17 +1,44 @@
|
||||
/***
|
||||
Version: up to and including FF/ESR78
|
||||
|
||||
This will reset the preferences that have been deprecated by Mozilla
|
||||
and used in the ghacks user.js up to and including Firefox/ESR 68
|
||||
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/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* deprecated */
|
||||
|
||||
/* 78 */
|
||||
'media.autoplay.enabled.user-gestures-needed',
|
||||
'toolkit.cosmeticAnimations.enabled',
|
||||
/* 77 */
|
||||
'browser.urlbar.oneOffSearches',
|
||||
'browser.tabs.remote.allowLinkedWebInFileUriProcess',
|
||||
/* 76 */
|
||||
'extensions.blocklist.url',
|
||||
/* 74 */
|
||||
'geo.wifi.uri',
|
||||
'geo.wifi.logging.enabled',
|
||||
'privacy.userContext.longPressBehavior',
|
||||
'webgl.disable-extensions',
|
||||
/* 72 */
|
||||
'browser.newtabpage.activity-stream.telemetry.ping.endpoint',
|
||||
'toolkit.telemetry.hybridContent.enabled',
|
||||
'dom.indexedDB.enabled',
|
||||
/* 71 */
|
||||
'devtools.webide.enabled',
|
||||
'devtools.webide.autoinstallADBExtension',
|
||||
'offline-apps.allow_by_default',
|
||||
/* 69 */
|
||||
'gfx.downloadable_fonts.woff2.enabled',
|
||||
'plugins.click_to_play',
|
||||
'media.autoplay.allow-muted',
|
||||
/* 68 */
|
||||
'browser.newtabpage.activity-stream.disableSnippets',
|
||||
'browser.aboutHomeSnippets.updateUrl',
|
||||
+9
-4
@@ -1,15 +1,15 @@
|
||||
/***
|
||||
This will reset the preferences that have been removed completely from the ghacks user.js.
|
||||
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
||||
|
||||
Last updated: 19-December-2019
|
||||
Last updated: 14-Sept-2020
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* removed in ghacks user.js v52-57 */
|
||||
/* removed in arkenfox user.js v52-57 */
|
||||
/* 52-alpha */
|
||||
'browser.search.reset.enabled',
|
||||
'browser.search.reset.whitelist',
|
||||
@@ -218,6 +218,11 @@
|
||||
/* 71-beta */
|
||||
'media.block-autoplay-until-in-foreground',
|
||||
'middlemouse.paste',
|
||||
/* 75-beta */
|
||||
'browser.search.geoip.url',
|
||||
'browser.search.region',
|
||||
/* 79-beta */
|
||||
'browser.urlbar.usepreloadedtopurls.enabled',
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
/*** ghacks-user.js troubleshooter.js v1.6.0 ***/
|
||||
/*** arkenfox user.js troubleshooter.js v1.6.1 ***/
|
||||
|
||||
(function() {
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
]
|
||||
|
||||
// any runtime-set pref that everyone will have and that can be safely reset
|
||||
const oFILLER = { type: 64, name: 'extensions.blocklist.pingCountTotal', value: -1 };
|
||||
const oFILLER = { type: 64, name: 'app.update.lastUpdateTime.browser-cleanup-thumbnails', value: 1580000000 };
|
||||
|
||||
function getMyList(arr) {
|
||||
const aRet = [];
|
||||
|
||||
+18
-15
@@ -1,12 +1,12 @@
|
||||
@ECHO OFF & SETLOCAL EnableDelayedExpansion
|
||||
TITLE ghacks user.js updater
|
||||
TITLE arkenfox user.js updater
|
||||
|
||||
REM ## ghacks-user.js updater for Windows
|
||||
REM ## arkenfox user.js updater for Windows
|
||||
REM ## author: @claustromaniac
|
||||
REM ## version: 4.10
|
||||
REM ## instructions: https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts
|
||||
REM ## version: 4.12
|
||||
REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
|
||||
|
||||
SET v=4.10
|
||||
SET v=4.12
|
||||
|
||||
VERIFY ON
|
||||
CD /D "%~dp0"
|
||||
@@ -52,7 +52,7 @@ IF DEFINED _updateb (
|
||||
REM Uncomment the next line and comment out the PowerShell call for testing.
|
||||
REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul
|
||||
(
|
||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.bat', '[updated]!_myname!.bat')"
|
||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/updater.bat', '[updated]!_myname!.bat')"
|
||||
) >nul 2>&1
|
||||
IF EXIST "[updated]!_myname!.bat" (
|
||||
START /min CMD /C "[updated]!_myname!.bat" !_myparams!
|
||||
@@ -100,7 +100,10 @@ IF NOT EXIST user.js (
|
||||
)
|
||||
:exitloop
|
||||
IF NOT "!_name!"=="" (
|
||||
IF /I NOT "!_name!"=="!_name:ghacks=!" (
|
||||
SET "_tempvar="
|
||||
IF /I NOT "!_name!"=="!_name:ghacks=!" SET _tempvar=1
|
||||
IF /I NOT "!_name!"=="!_name:arkenfox=!" SET _tempvar=1
|
||||
IF !_tempvar! EQU 1 (
|
||||
CALL :message "!_name! !_version:~2!,!_date!"
|
||||
) ELSE (CALL :message "Current user.js version not recognised.")
|
||||
) ELSE (CALL :message "Current user.js version not recognised.")
|
||||
@@ -108,7 +111,7 @@ IF NOT EXIST user.js (
|
||||
ECHO:
|
||||
IF NOT DEFINED _ua (
|
||||
CALL :message "This batch should be run from your Firefox profile directory."
|
||||
ECHO: It will download the latest version of ghacks user.js from github and then
|
||||
ECHO: It will download the latest version of arkenfox user.js from github and then
|
||||
CALL :message "append any of your own changes from user-overrides.js to it."
|
||||
CALL :message "Visit the wiki for more detailed information."
|
||||
ECHO:
|
||||
@@ -130,16 +133,16 @@ IF DEFINED _log (
|
||||
IF EXIST user.js.new (DEL /F "user.js.new")
|
||||
CALL :message "Retrieving latest user.js file from github repository..."
|
||||
(
|
||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js', 'user.js.new')"
|
||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/user.js', 'user.js.new')"
|
||||
) >nul 2>&1
|
||||
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"
|
||||
)
|
||||
IF DEFINED _esr (
|
||||
CALL :message "Activating ESR section..."
|
||||
CALL :activate user.js.new ".x still uses all the following prefs"
|
||||
)
|
||||
IF DEFINED _multi (
|
||||
FORFILES /P user.js-overrides /M *.js >nul 2>&1
|
||||
@@ -216,8 +219,8 @@ ENDLOCAL
|
||||
GOTO :EOF
|
||||
|
||||
::::::::::::::: Activate Section :::::::::::::::
|
||||
:activate
|
||||
:: arg1 = file
|
||||
:activate
|
||||
:: arg1 = file
|
||||
:: arg2 = line substring
|
||||
SETLOCAL DisableDelayedExpansion
|
||||
(
|
||||
|
||||
+71
-99
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## ghacks-user.js updater for macOS and Linux
|
||||
## arkenfox user.js updater for macOS and Linux
|
||||
|
||||
## version: 2.5
|
||||
## version: 2.8
|
||||
## Author: Pat Johnson (@overdodactyl)
|
||||
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
readonly CURRDIR=$(pwd)
|
||||
|
||||
sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
||||
if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi
|
||||
[ -z "$sfp" ] && sfp=${BASH_SOURCE[0]}
|
||||
readonly SCRIPT_DIR=$(dirname "${sfp}")
|
||||
|
||||
|
||||
@@ -42,27 +42,27 @@ ESR=false
|
||||
# Download method priority: curl -> wget
|
||||
DOWNLOAD_METHOD=''
|
||||
if [[ $(command -v 'curl') ]]; then
|
||||
DOWNLOAD_METHOD='curl'
|
||||
DOWNLOAD_METHOD='curl --max-redirs 3 -so'
|
||||
elif [[ $(command -v 'wget') ]]; then
|
||||
DOWNLOAD_METHOD='wget'
|
||||
DOWNLOAD_METHOD='wget --max-redirect 3 --quiet -O'
|
||||
else
|
||||
echo -e "${RED}This script requires curl or wget.\nProcess aborted${NC}"
|
||||
exit 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
show_banner () {
|
||||
echo -e "${BBLUE}\n"
|
||||
echo ' ############################################################################'
|
||||
echo ' #### ####'
|
||||
echo ' #### ghacks user.js ####'
|
||||
echo ' #### Hardening the Privacy and Security Settings of Firefox ####'
|
||||
echo ' #### Maintained by @Thorin-Oakenpants and @earthlng ####'
|
||||
echo ' #### Updater for macOS and Linux by @overdodactyl ####'
|
||||
echo ' #### ####'
|
||||
echo ' ############################################################################'
|
||||
echo -e "${BBLUE}
|
||||
############################################################################
|
||||
#### ####
|
||||
#### arkenfox user.js ####
|
||||
#### Hardening the Privacy and Security Settings of Firefox ####
|
||||
#### Maintained by @Thorin-Oakenpants and @earthlng ####
|
||||
#### Updater for macOS and Linux by @overdodactyl ####
|
||||
#### ####
|
||||
############################################################################"
|
||||
echo -e "${NC}\n"
|
||||
echo -e "Documentation for this script is available here: ${CYAN}https://github.com/ghacksuserjs/ghacks-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/3.3-Updater-Scripts${NC}\n"
|
||||
}
|
||||
|
||||
#########################
|
||||
@@ -70,66 +70,50 @@ show_banner () {
|
||||
#########################
|
||||
|
||||
usage() {
|
||||
echo -e "${BLUE}\nUsage: $0 [-h] [-p PROFILE] [-u] [-d] [-s] [-n] [-b] [-c] [-v] [-r] [-e] [-o OVERRIDE]\n${NC}" 1>&2 # Echo usage string to standard error
|
||||
echo 'Optional Arguments:'
|
||||
echo -e "\t-h,\t\t Show this help message and exit."
|
||||
echo -e "\t-p PROFILE,\t Path to your Firefox profile (if different than the dir of this script)"
|
||||
echo -e "\t\t\t IMPORTANT: if the path include spaces, wrap the entire argument in quotes."
|
||||
echo -e "\t-l, \t\t Choose your Firefox profile from a list"
|
||||
echo -e "\t-u,\t\t Update updater.sh and execute silently. Do not seek confirmation."
|
||||
echo -e "\t-d,\t\t Do not look for updates to updater.sh."
|
||||
echo -e "\t-s,\t\t Silently update user.js. Do not seek confirmation."
|
||||
echo -e "\t-b,\t\t Only keep one backup of each file."
|
||||
echo -e "\t-c,\t\t Create a diff file comparing old and new user.js within userjs_diffs. "
|
||||
echo -e "\t-o OVERRIDE,\t Filename or path to overrides file (if different than user-overrides.js)."
|
||||
echo -e "\t\t\t If used with -p, paths should be relative to PROFILE or absolute paths"
|
||||
echo -e "\t\t\t If given a directory, all files inside will be appended recursively."
|
||||
echo -e "\t\t\t You can pass multiple files or directories by passing a comma separated list."
|
||||
echo -e "\t\t\t\t Note: If a directory is given, only files inside ending in the extension .js are appended"
|
||||
echo -e "\t\t\t\t IMPORTANT: do not add spaces between files/paths. Ex: -o file1.js,file2.js,dir1"
|
||||
echo -e "\t\t\t\t IMPORTANT: if any files/paths include spaces, wrap the entire argument in quotes."
|
||||
echo -e "\t\t\t\t\t Ex: -o \"override folder\" "
|
||||
echo -e "\t-n,\t\t Do not append any overrides, even if user-overrides.js exists."
|
||||
echo -e "\t-v,\t\t Open the resulting user.js file."
|
||||
echo -e "\t-r,\t\t Only download user.js to a temporary file and open it."
|
||||
echo -e "\t-e,\t\t Activate ESR related preferences."
|
||||
echo -e
|
||||
echo 'Deprecated Arguments (they still work for now):'
|
||||
echo -e "\t-donotupdate,\t Use instead -d"
|
||||
echo -e "\t-update,\t Use instead -u"
|
||||
echo -e
|
||||
echo
|
||||
echo -e "${BLUE}Usage: $0 [-bcdehlnrsuv] [-p PROFILE] [-o OVERRIDE]${NC}" 1>&2 # Echo usage string to standard error
|
||||
echo -e "
|
||||
Optional Arguments:
|
||||
-h Show this help message and exit.
|
||||
-p PROFILE Path to your Firefox profile (if different than the dir of this script)
|
||||
IMPORTANT: If the path contains spaces, wrap the entire argument in quotes.
|
||||
-l Choose your Firefox profile from a list
|
||||
-u Update updater.sh and execute silently. Do not seek confirmation.
|
||||
-d Do not look for updates to updater.sh.
|
||||
-s Silently update user.js. Do not seek confirmation.
|
||||
-b Only keep one backup of each file.
|
||||
-c Create a diff file comparing old and new user.js within userjs_diffs.
|
||||
-o OVERRIDE Filename or path to overrides file (if different than user-overrides.js).
|
||||
If used with -p, paths should be relative to PROFILE or absolute paths
|
||||
If given a directory, all files inside will be appended recursively.
|
||||
You can pass multiple files or directories by passing a comma separated list.
|
||||
Note: If a directory is given, only files inside ending in the extension .js are appended
|
||||
IMPORTANT: Do not add spaces between files/paths. Ex: -o file1.js,file2.js,dir1
|
||||
IMPORTANT: If any file/path contains spaces, wrap the entire argument in quotes.
|
||||
Ex: -o \"override folder\"
|
||||
-n Do not append any overrides, even if user-overrides.js exists.
|
||||
-v Open the resulting user.js file.
|
||||
-r Only download user.js to a temporary file and open it.
|
||||
-e Activate ESR related preferences."
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
legacy_argument () {
|
||||
echo -e "${ORANGE}\nWarning: command line arguments have changed."
|
||||
echo -e "$1 has been deprecated and may not work in the future.\n"
|
||||
echo -e "Please view the new options using the -h argument.${NC}"
|
||||
}
|
||||
|
||||
#########################
|
||||
# File Handling #
|
||||
#########################
|
||||
|
||||
# Download files
|
||||
download_file () {
|
||||
declare -r url=$1
|
||||
download_file () { # expects URL as argument ($1)
|
||||
declare -r tf=$(mktemp)
|
||||
local dlcmd=''
|
||||
|
||||
if [ $DOWNLOAD_METHOD = 'curl' ]; then
|
||||
dlcmd="curl -o $tf"
|
||||
else
|
||||
dlcmd="wget -O $tf"
|
||||
fi
|
||||
|
||||
$dlcmd "${url}" &>/dev/null && echo "$tf" || echo '' # return the temp-filename (or empty string on error)
|
||||
$DOWNLOAD_METHOD "${tf}" "$1" && echo "$tf" || echo '' # return the temp-filename or empty string on error
|
||||
}
|
||||
|
||||
open_file () { #expects one argument: file_path
|
||||
open_file () { # expects one argument: file_path
|
||||
if [ "$(uname)" == 'Darwin' ]; then
|
||||
open "$1"
|
||||
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
elif [ "$(uname -s | cut -c -5)" == "Linux" ]; then
|
||||
xdg-open "$1"
|
||||
else
|
||||
echo -e "${RED}Error: Sorry, opening files is not supported for your OS.${NC}"
|
||||
@@ -204,23 +188,22 @@ get_updater_version () {
|
||||
# Update updater.sh
|
||||
# Default: Check for update, if available, ask user if they want to execute it
|
||||
# Args:
|
||||
# -donotupdate: New version will not be looked for and update will not occur
|
||||
# -update: Check for update, if available, execute without asking
|
||||
# -d: New version will not be looked for and update will not occur
|
||||
# -u: Check for update, if available, execute without asking
|
||||
update_updater () {
|
||||
if [ $UPDATE = 'no' ]; then
|
||||
return 0 # User signified not to check for updates
|
||||
fi
|
||||
|
||||
declare -r tmpfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.sh')
|
||||
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh')"
|
||||
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
|
||||
|
||||
if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then
|
||||
if [ $UPDATE = 'check' ]; then
|
||||
echo -e "There is a newer version of updater.sh available. ${RED}Update and execute Y/N?${NC}"
|
||||
read -p "" -n 1 -r
|
||||
echo -e "\n\n"
|
||||
if [[ $REPLY =~ ^[Nn]$ ]]; then
|
||||
return 0 # Update available, but user chooses not to update
|
||||
fi
|
||||
[[ $REPLY =~ ^[Nn]$ ]] && return 0 # Update available, but user chooses not to update
|
||||
fi
|
||||
else
|
||||
return 0 # No update available
|
||||
@@ -228,7 +211,7 @@ update_updater () {
|
||||
mv "${tmpfile}" "${SCRIPT_DIR}/updater.sh"
|
||||
chmod u+x "${SCRIPT_DIR}/updater.sh"
|
||||
"${SCRIPT_DIR}/updater.sh" "$@" -d
|
||||
exit 1
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
@@ -238,11 +221,7 @@ update_updater () {
|
||||
|
||||
# Returns version number of a user.js file
|
||||
get_userjs_version () {
|
||||
if [ -e $1 ]; then
|
||||
echo "$(sed -n '4p' "$1")"
|
||||
else
|
||||
echo "Not detected."
|
||||
fi
|
||||
[ -e $1 ] && echo "$(sed -n '4p' "$1")" || echo "Not detected."
|
||||
}
|
||||
|
||||
add_override () {
|
||||
@@ -252,7 +231,7 @@ add_override () {
|
||||
cat "$input" >> user.js
|
||||
echo -e "Status: ${GREEN}Override file appended:${NC} ${input}"
|
||||
elif [ -d "$input" ]; then
|
||||
FSAVEIFS=$IFS
|
||||
SAVEIFS=$IFS
|
||||
IFS=$'\n\b' # Set IFS
|
||||
FILES="${input}"/*.js
|
||||
for f in $FILES
|
||||
@@ -271,12 +250,13 @@ remove_comments () { # expects 2 arguments: from-file and to-file
|
||||
|
||||
# Applies latest version of user.js and any custom overrides
|
||||
update_userjs () {
|
||||
declare -r newfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')
|
||||
declare -r newfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/user.js')"
|
||||
[ -z "${newfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && return 1 # check if download failed
|
||||
|
||||
echo 'Please observe the following information:'
|
||||
echo -e "\tFirefox profile: ${ORANGE}$(pwd)${NC}"
|
||||
echo -e "\tAvailable online: ${ORANGE}$(get_userjs_version $newfile)${NC}"
|
||||
echo -e "\tCurrently using: ${ORANGE}$(get_userjs_version user.js)\n${NC}\n"
|
||||
echo -e "Please observe the following information:
|
||||
Firefox profile: ${ORANGE}$(pwd)${NC}
|
||||
Available online: ${ORANGE}$(get_userjs_version $newfile)${NC}
|
||||
Currently using: ${ORANGE}$(get_userjs_version user.js)${NC}\n\n"
|
||||
|
||||
if [ $CONFIRM = 'yes' ]; then
|
||||
echo -e "This script will update to the latest user.js file and append any custom configurations from user-overrides.js. ${RED}Continue Y/N? ${NC}"
|
||||
@@ -298,9 +278,7 @@ update_userjs () {
|
||||
# backup user.js
|
||||
mkdir -p userjs_backups
|
||||
local bakname="userjs_backups/user.js.backup.$(date +"%Y-%m-%d_%H%M")"
|
||||
if [ $BACKUP = 'single' ]; then
|
||||
bakname='userjs_backups/user.js.backup'
|
||||
fi
|
||||
[ $BACKUP = 'single' ] && bakname='userjs_backups/user.js.backup'
|
||||
cp user.js "$bakname" &>/dev/null
|
||||
|
||||
mv "${newfile}" user.js
|
||||
@@ -313,8 +291,10 @@ update_userjs () {
|
||||
|
||||
# apply overrides
|
||||
if [ "$SKIPOVERRIDE" = false ]; then
|
||||
while IFS=',' read -ra FILE; do
|
||||
add_override "$FILE"
|
||||
while IFS=',' read -ra FILES; do
|
||||
for FILE in "${FILES[@]}"; do
|
||||
add_override "$FILE"
|
||||
done
|
||||
done <<< "$OVERRIDE"
|
||||
fi
|
||||
|
||||
@@ -334,14 +314,12 @@ update_userjs () {
|
||||
echo -e "Status: ${GREEN}A diff file was created:${NC} ${PWD}/${diffname}"
|
||||
else
|
||||
echo -e "Warning: ${ORANGE}Your new user.js file appears to be identical. No diff file was created.${NC}"
|
||||
if [ $BACKUP = 'multiple' ]; then
|
||||
rm $bakname &>/dev/null
|
||||
fi
|
||||
[ $BACKUP = 'multiple' ] && rm $bakname &>/dev/null
|
||||
fi
|
||||
rm $past_nocomments $current_nocomments $pastuserjs &>/dev/null
|
||||
fi
|
||||
|
||||
if [ "$VIEW" = true ]; then open_file "${PWD}/user.js"; fi
|
||||
[ "$VIEW" = true ] && open_file "${PWD}/user.js"
|
||||
}
|
||||
|
||||
#########################
|
||||
@@ -349,16 +327,9 @@ update_userjs () {
|
||||
#########################
|
||||
|
||||
if [ $# != 0 ]; then
|
||||
readonly legacy_lc=$(echo $1 | tr '[A-Z]' '[a-z]')
|
||||
# Display usage if first argument is -help or --help
|
||||
if [ $1 = '--help' ] || [ $1 = '-help' ]; then
|
||||
usage
|
||||
elif [ $legacy_lc = '-donotupdate' ]; then
|
||||
UPDATE='no'
|
||||
legacy_argument $1
|
||||
elif [ $legacy_lc = '-update' ]; then
|
||||
UPDATE='yes'
|
||||
legacy_argument $1
|
||||
else
|
||||
while getopts ":hp:ludsno:bcvre" opt; do
|
||||
case $opt in
|
||||
@@ -399,11 +370,12 @@ if [ $# != 0 ]; then
|
||||
ESR=true
|
||||
;;
|
||||
r)
|
||||
tfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')
|
||||
tfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/user.js')"
|
||||
[ -z "${tfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && exit 1 # check if download failed
|
||||
mv $tfile "${tfile}.js"
|
||||
echo -e "${ORANGE}Warning: user.js was saved to temporary file ${tfile}.js${NC}"
|
||||
open_file "${tfile}.js"
|
||||
exit 1
|
||||
exit 0
|
||||
;;
|
||||
\?)
|
||||
echo -e "${RED}\n Error! Invalid option: -$OPTARG${NC}" >&2
|
||||
@@ -411,7 +383,7 @@ if [ $# != 0 ]; then
|
||||
;;
|
||||
:)
|
||||
echo -e "${RED}Error! Option -$OPTARG requires an argument.${NC}" >&2
|
||||
exit 1
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
/******
|
||||
* name: ghacks user.js
|
||||
* date: 20 January 2020
|
||||
* version 72-beta
|
||||
* authors: v52+ github | v51- www.ghacks.net
|
||||
* url: https://github.com/ghacksuserjs/ghacks-user.js
|
||||
* license: MIT: https://github.com/ghacksuserjs/ghacks-user.js/blob/master/LICENSE.txt
|
||||
* name: arkenfox user.js
|
||||
* date: 23 Sep 2020
|
||||
* version 81-beta
|
||||
* url: https://github.com/arkenfox/user.js
|
||||
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
||||
|
||||
* releases: These are end-of-stable-life-cycle legacy archives.
|
||||
*Always* use the master branch user.js for a current up-to-date version.
|
||||
url: https://github.com/ghacksuserjs/ghacks-user.js/releases
|
||||
*Always* use the master branch user.js for a current up-to-date version
|
||||
url: https://github.com/arkenfox/user.js/releases
|
||||
|
||||
* README:
|
||||
|
||||
0. Consider using Tor Browser if it meets your needs or fits your threat model better
|
||||
* https://www.torproject.org/about/torusers.html.en
|
||||
1. READ the full README
|
||||
* https://github.com/ghacksuserjs/ghacks-user.js/blob/master/README.md
|
||||
* https://github.com/arkenfox/user.js/blob/master/README.md
|
||||
2. READ this
|
||||
* https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation
|
||||
* https://github.com/arkenfox/user.js/wiki/1.3-Implementation
|
||||
3. If you skipped steps 1 and 2 above (shame on you), then here is the absolute minimum
|
||||
* Real time binary checks with Google services are disabled (0412)
|
||||
* You will still get prompts to update Firefox, but auto-installing them is disabled (0302a)
|
||||
@@ -39,7 +38,7 @@
|
||||
[SETUP-HARDEN] maybe you should consider using the Tor Browser
|
||||
* [WARNING] tags are extra special and used sparingly, so heed them
|
||||
4. BACKUP your profile folder before implementing (and/or test in a new/cloned profile)
|
||||
5. KEEP UP TO DATE: https://github.com/ghacksuserjs/ghacks-user.js/wiki#small_orange_diamond-maintenance
|
||||
5. KEEP UP TO DATE: https://github.com/arkenfox/user.js/wiki#small_orange_diamond-maintenance
|
||||
|
||||
* INDEX:
|
||||
|
||||
@@ -83,10 +82,10 @@
|
||||
user_pref("_user.js.parrot", "START: Oh yes, the Norwegian Blue... what's wrong with it?");
|
||||
|
||||
/* 0000: disable about:config warning
|
||||
* The XUL version can still be accessed in FF71+ @ chrome://global/content/config.xul
|
||||
* and in FF73+ @ chrome://global/content/config.xhtml ***/
|
||||
user_pref("general.warnOnAboutConfig", false); // for the XUL version
|
||||
user_pref("browser.aboutConfig.showWarning", false); // for the new HTML version [FF71+]
|
||||
* FF71-72: chrome://global/content/config.xul
|
||||
* FF73+: chrome://global/content/config.xhtml ***/
|
||||
user_pref("general.warnOnAboutConfig", false); // XUL/XHTML version
|
||||
user_pref("browser.aboutConfig.showWarning", false); // HTML version [FF71+]
|
||||
|
||||
/*** [SECTION 0100]: STARTUP ***/
|
||||
user_pref("_user.js.parrot", "0100 syntax error: the parrot's dead!");
|
||||
@@ -117,7 +116,7 @@ user_pref("browser.newtabpage.activity-stream.telemetry", false);
|
||||
* Runs code received from a server (aka Remote Code Execution) and sends information back to a metrics server
|
||||
* [1] https://abouthome-snippets-service.readthedocs.io/ ***/
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
|
||||
user_pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "");
|
||||
user_pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "{}");
|
||||
/* 0105c: disable Activity Stream Top Stories, Pocket-based and/or sponsored content ***/
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
|
||||
user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false);
|
||||
@@ -125,6 +124,9 @@ user_pref("browser.newtabpage.activity-stream.showSponsored", false);
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); // [FF66+]
|
||||
/* 0105d: disable Activity Stream recent Highlights in the Library [FF57+] ***/
|
||||
// user_pref("browser.library.activity-stream.enabled", false);
|
||||
/* 0105e: clear default topsites
|
||||
* [NOTE] This does not block you from adding your own ***/
|
||||
user_pref("browser.newtabpage.activity-stream.default.sites", "");
|
||||
/* 0110: start Firefox in PB (Private Browsing) mode
|
||||
* [NOTE] In this mode *all* windows are "private windows" and the PB mode icon is not displayed
|
||||
* [WARNING] The P in PB mode is misleading: it means no "persistent" disk storage such as history,
|
||||
@@ -150,39 +152,35 @@ user_pref("_user.js.parrot", "0200 syntax error: the parrot's definitely decease
|
||||
* [SETTING] to add site exceptions: Page Info>Permissions>Access Your Location
|
||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Location>Settings ***/
|
||||
// user_pref("permissions.default.geo", 2);
|
||||
/* 0203: use Mozilla geolocation service instead of Google when geolocation is enabled
|
||||
/* 0203: use Mozilla geolocation service instead of Google when geolocation is enabled [FF74+]
|
||||
* Optionally enable logging to the console (defaults to false) ***/
|
||||
user_pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
|
||||
// user_pref("geo.wifi.logging.enabled", true); // [HIDDEN PREF]
|
||||
user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
|
||||
// user_pref("geo.provider.network.logging.enabled", true); // [HIDDEN PREF]
|
||||
/* 0204: disable using the OS's geolocation service ***/
|
||||
user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
|
||||
user_pref("geo.provider.use_corelocation", false); // [MAC]
|
||||
user_pref("geo.provider.use_gpsd", false); // [LINUX]
|
||||
/* 0205: disable GeoIP-based search results
|
||||
* [NOTE] May not be hidden if Firefox has changed your settings due to your locale
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/16254
|
||||
* [2] https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_geolocation-for-default-search-engine ***/
|
||||
user_pref("browser.search.region", "US"); // [HIDDEN PREF]
|
||||
user_pref("browser.search.geoip.url", "");
|
||||
/* 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 ***/
|
||||
user_pref("browser.search.geoSpecificDefaults", false);
|
||||
user_pref("browser.search.geoSpecificDefaults.url", "");
|
||||
/* 0207: 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+]
|
||||
/* 0208: set search region
|
||||
* [NOTE] May not be hidden if Firefox has changed your settings due to your region (see 0207) ***/
|
||||
// user_pref("browser.search.region", "US"); // [HIDDEN PREF]
|
||||
|
||||
/** LANGUAGE / LOCALE ***/
|
||||
/* 0210: set preferred language for displaying web pages
|
||||
* [TEST] https://addons.mozilla.org/about ***/
|
||||
user_pref("intl.accept_languages", "en-US, en");
|
||||
/* 0211: enforce US English locale regardless of the system locale
|
||||
* [1] https://bugzilla.mozilla.org/867501 ***/
|
||||
* [SETUP-WEB] May break some input methods e.g xim/ibus for CJK languages, see [2]
|
||||
* [1] https://bugzilla.mozilla.org/867501
|
||||
* [2] https://bugzilla.mozilla.org/1629630 ***/
|
||||
user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF]
|
||||
/* 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
|
||||
* [SETTING] General>Language and Appearance>Fonts and Colors>Advanced>Text Encoding for Legacy Content
|
||||
* [TEST] https://hsivonen.com/test/moz/check-charset.htm
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/20025 ***/
|
||||
user_pref("intl.charset.fallback.override", "windows-1252");
|
||||
|
||||
/*** [SECTION 0300]: QUIET FOX
|
||||
Starting in user.js v67, we only disable the auto-INSTALL of Firefox. You still get prompts
|
||||
@@ -204,12 +202,11 @@ user_pref("app.update.auto", false);
|
||||
* [SETTING] about:addons>Extensions>[cog-wheel-icon]>Update Add-ons Automatically (toggle) ***/
|
||||
// user_pref("extensions.update.autoUpdateDefault", false);
|
||||
/* 0306: disable extension metadata
|
||||
* used when installing/updating an extension, and in daily background update checks: if false, it
|
||||
* hides the expanded text description (if it exists) when you "show more details about an addon" ***/
|
||||
* 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);
|
||||
/* 0308: disable search engine updates (e.g. OpenSearch)
|
||||
* [NOTE] This does not affect Mozilla's built-in or Web Extension search engines
|
||||
* [SETTING] General>Firefox Updates>Automatically update search engines ***/
|
||||
* [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/
|
||||
user_pref("browser.search.update", false);
|
||||
/* 0309: disable sending Flash crash reports ***/
|
||||
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
|
||||
@@ -276,12 +273,10 @@ user_pref("network.connectivity-service.enabled", false);
|
||||
/*** [SECTION 0400]: BLOCKLISTS / SAFE BROWSING (SB) ***/
|
||||
user_pref("_user.js.parrot", "0400 syntax error: the parrot's passed on!");
|
||||
/** BLOCKLISTS ***/
|
||||
/* 0401: enforce Firefox blocklist, but sanitize blocklist url
|
||||
/* 0401: enforce Firefox blocklist
|
||||
* [NOTE] It includes updates for "revoked certificates"
|
||||
* [1] https://blog.mozilla.org/security/2015/03/03/revoking-intermediate-certificates-introducing-onecrl/
|
||||
* [2] https://trac.torproject.org/projects/tor/ticket/16931 ***/
|
||||
* [1] https://blog.mozilla.org/security/2015/03/03/revoking-intermediate-certificates-introducing-onecrl/ ***/
|
||||
user_pref("extensions.blocklist.enabled", true); // [DEFAULT: true]
|
||||
user_pref("extensions.blocklist.url", "https://blocklists.settings.services.mozilla.com/v1/blocklist/3/%APP_ID%/%APP_VERSION%/");
|
||||
|
||||
/** SAFE BROWSING (SB)
|
||||
Safe Browsing has taken many steps to preserve privacy. *IF* required, a full url is never
|
||||
@@ -350,17 +345,14 @@ user_pref("extensions.systemAddon.update.url", ""); // [FF44+]
|
||||
* Currently blocked by 'datareporting.healthreport.uploadEnabled' (see 0340) ***/
|
||||
user_pref("browser.ping-centre.telemetry", false);
|
||||
/* 0515: disable Screenshots
|
||||
* alternatively in FF60+, disable uploading to the Screenshots server
|
||||
* [1] https://github.com/mozilla-services/screenshots
|
||||
* [2] https://www.ghacks.net/2017/05/28/firefox-screenshots-integrated-in-firefox-nightly/ ***/
|
||||
* alternatively in FF60+, disable uploading to the Screenshots server ***/
|
||||
// user_pref("extensions.screenshots.disabled", true); // [FF55+]
|
||||
// user_pref("extensions.screenshots.upload-disabled", true); // [FF60+]
|
||||
/* 0517: disable Form Autofill
|
||||
* [NOTE] Stored data is NOT secure (uses a JSON file)
|
||||
* [NOTE] Heuristics controls Form Autofill on forms without @autocomplete attributes
|
||||
* [SETTING] Options>Privacy&Security>Forms and Autofill>Autofill addresses (FF73+)
|
||||
* [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill
|
||||
* [2] https://www.ghacks.net/2017/05/24/firefoxs-new-form-autofill-is-awesome/ ***/
|
||||
* [SETTING] Privacy & Security>Forms and Autofill>Autofill addresses
|
||||
* [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill ***/
|
||||
user_pref("extensions.formautofill.addresses.enabled", false); // [FF55+]
|
||||
user_pref("extensions.formautofill.available", "off"); // [FF56+]
|
||||
user_pref("extensions.formautofill.creditCards.enabled", false); // [FF56+]
|
||||
@@ -375,33 +367,31 @@ user_pref("_user.js.parrot", "0600 syntax error: the parrot's no more!");
|
||||
* [1] https://developer.mozilla.org/docs/Web/HTTP/Link_prefetching_FAQ ***/
|
||||
user_pref("network.prefetch-next", false);
|
||||
/* 0602: disable DNS prefetching
|
||||
* [1] https://www.ghacks.net/2013/04/27/firefox-prefetching-what-you-need-to-know/
|
||||
* [2] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
|
||||
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
|
||||
user_pref("network.dns.disablePrefetch", true);
|
||||
user_pref("network.dns.disablePrefetchFromHTTPS", true); // [HIDDEN PREF ESR] [DEFAULT: true FF70+]
|
||||
user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true FF70+]
|
||||
/* 0603: disable predictor / prefetching ***/
|
||||
user_pref("network.predictor.enabled", false);
|
||||
user_pref("network.predictor.enable-prefetch", false); // [FF48+]
|
||||
/* 0605: disable link-mouseover opening connection to linked server
|
||||
* [1] https://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests
|
||||
* [2] https://www.ghacks.net/2015/08/16/block-firefox-from-connecting-to-sites-when-you-hover-over-links/ ***/
|
||||
* [1] https://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests ***/
|
||||
user_pref("network.http.speculative-parallel-limit", 0);
|
||||
/* 0606: disable "Hyperlink Auditing" (click tracking) and enforce same host in case
|
||||
/* 0606: 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]
|
||||
user_pref("browser.send_pings.require_same_host", true);
|
||||
user_pref("browser.send_pings.require_same_host", true); // defense-in-depth
|
||||
|
||||
/*** [SECTION 0700]: HTTP* / TCP/IP / DNS / PROXY / SOCKS etc ***/
|
||||
user_pref("_user.js.parrot", "0700 syntax error: the parrot's given up the ghost!");
|
||||
/* 0701: disable IPv6
|
||||
* IPv6 can be abused, especially regarding MAC addresses. They also do not play nice
|
||||
* with VPNs. That's even assuming your ISP and/or router and/or website can handle it.
|
||||
* Firefox telemetry (April 2019) shows only 5% of all connections are IPv6.
|
||||
* IPv6 can be abused, especially with MAC addresses, and they do not play nice with VPNs. That's
|
||||
* even assuming your ISP and/or router and/or website can handle it. Sites will fall back to IPv4
|
||||
* [STATS] Firefox telemetry (June 2020) shows only 5% of all connections are IPv6
|
||||
* [NOTE] This is just an application level fallback. Disabling IPv6 is best done at an
|
||||
* OS/network level, and/or configured properly in VPN setups. If you are not masking your IP,
|
||||
* then this won't make much difference. If you are masking your IP, then it can only help.
|
||||
* [TEST] https://ipleak.org/
|
||||
* [1] https://github.com/ghacksuserjs/ghacks-user.js/issues/437#issuecomment-403740626
|
||||
* [1] https://github.com/arkenfox/user.js/issues/437#issuecomment-403740626
|
||||
* [2] https://www.internetsociety.org/tag/ipv6-security/ (see Myths 2,4,5,6) ***/
|
||||
user_pref("network.dns.disableIPv6", true);
|
||||
/* 0702: disable HTTP2
|
||||
@@ -432,17 +422,17 @@ user_pref("network.http.altsvc.oe", false);
|
||||
* [1] https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers ***/
|
||||
user_pref("network.proxy.socks_remote_dns", true);
|
||||
/* 0708: disable FTP [FF60+]
|
||||
* [1] https://www.ghacks.net/2018/02/20/firefox-60-with-new-preference-to-disable-ftp/ ***/
|
||||
* [1] https://www.fxsitecompat.dev/en-CA/docs/2020/ftp-support-will-be-removed/ ***/
|
||||
// user_pref("network.ftp.enabled", false);
|
||||
/* 0709: disable using UNC (Uniform Naming Convention) paths [FF61+]
|
||||
* [SETUP-CHROME] Can break extensions for profiles on network shares
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/26424 ***/
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/26424 ***/
|
||||
user_pref("network.file.disable_unc_paths", true); // [HIDDEN PREF]
|
||||
/* 0710: 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 smb and sftp protocols are accepted so far (as of FF64)
|
||||
* [1] https://bugzilla.mozilla.org/1433507
|
||||
* [2] https://trac.torproject.org/23044
|
||||
* [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) ***/
|
||||
user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF]
|
||||
@@ -459,9 +449,8 @@ user_pref("_user.js.parrot", "0800 syntax error: the parrot's ceased to be!");
|
||||
/* 0801: disable location bar using search
|
||||
* Don't leak URL typos to a search engine, give an error message instead.
|
||||
* Examples: "secretplace,com", "secretplace/com", "secretplace com", "secret place.com"
|
||||
* [NOTE] Search buttons in the dropdown work, but hitting 'enter' in the location bar will fail
|
||||
* [TIP] You can add keywords to search engines in options (e.g. 'd' for DuckDuckGo) and
|
||||
* the dropdown will now auto-select it and you can then hit 'enter' and it will work
|
||||
* [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 ***/
|
||||
user_pref("keyword.enabled", false);
|
||||
@@ -489,18 +478,20 @@ user_pref("layout.css.visited_links_enabled", false);
|
||||
* [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);
|
||||
/* 0809: disable location bar suggesting "preloaded" top websites [FF54+]
|
||||
* [1] https://bugzilla.mozilla.org/1211726 ***/
|
||||
user_pref("browser.urlbar.usepreloadedtopurls.enabled", false);
|
||||
/* 0810: disable location bar making speculative connections [FF56+]
|
||||
* [1] https://bugzilla.mozilla.org/1348275 ***/
|
||||
user_pref("browser.urlbar.speculativeConnect.enabled", false);
|
||||
/* 0811: disable location bar leaking single words to a DNS provider **after searching** [FF78+]
|
||||
* 0=never resolve single words, 1=heuristic (default), 2=always resolve
|
||||
* [NOTE] For FF78 value 1 and 2 are the same and always resolve but that will change in future versions
|
||||
* [1] https://bugzilla.mozilla.org/1642623 ***/
|
||||
user_pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
|
||||
/* 0850a: disable location bar suggestion types
|
||||
* If all three suggestion types are false, search engine keywords are disabled
|
||||
* [SETTING] Privacy & Security>Address Bar>When using the address bar, suggest ***/
|
||||
// user_pref("browser.urlbar.suggest.history", false);
|
||||
// user_pref("browser.urlbar.suggest.bookmark", false);
|
||||
// user_pref("browser.urlbar.suggest.openpage", false);
|
||||
// user_pref("browser.urlbar.suggest.topsites", false); // [FF78+]
|
||||
/* 0850c: disable location bar dropdown
|
||||
* This value controls the total number of entries to appear in the location bar dropdown
|
||||
* [NOTE] Items (bookmarks/history/openpages) with a high "frecency"/"bonus" will always
|
||||
@@ -512,11 +503,8 @@ user_pref("browser.urlbar.speculativeConnect.enabled", false);
|
||||
/* 0850d: disable location bar autofill
|
||||
* [1] https://support.mozilla.org/en-US/kb/address-bar-autocomplete-firefox#w_url-autocomplete ***/
|
||||
// user_pref("browser.urlbar.autoFill", false);
|
||||
/* 0850e: disable location bar one-off searches [FF51+]
|
||||
* [1] https://www.ghacks.net/2016/08/09/firefox-one-off-searches-address-bar/ ***/
|
||||
// user_pref("browser.urlbar.oneOffSearches", false);
|
||||
/* 0860: disable search and form history
|
||||
* [SETUP-WEB] Be aware thet autocomplete form data can be read by third parties, see [1] [2]
|
||||
* [SETUP-WEB] Be aware that autocomplete form data can be read by third parties, see [1] [2]
|
||||
* [NOTE] We also clear formdata on exit (see 2803)
|
||||
* [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history
|
||||
* [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html
|
||||
@@ -540,20 +528,21 @@ user_pref("_user.js.parrot", "0900 syntax error: the parrot's expired!");
|
||||
* [NOTE] This does not clear any passwords already saved
|
||||
* [SETTING] Privacy & Security>Logins and Passwords>Ask to save logins and passwords for websites ***/
|
||||
// user_pref("signon.rememberSignons", false);
|
||||
/* 0902: use a master password
|
||||
/* 0902: use a primary password
|
||||
* There are no preferences for this. It is all handled internally.
|
||||
* [SETTING] Privacy & Security>Logins and Passwords>Use a master password
|
||||
* [1] https://support.mozilla.org/kb/use-master-password-protect-stored-logins ***/
|
||||
/* 0903: set how often Firefox should ask for the master password
|
||||
* [SETTING] Privacy & Security>Logins and Passwords>Use a Primary Password
|
||||
* [1] https://support.mozilla.org/kb/use-primary-password-protect-stored-logins-and-pas ***/
|
||||
/* 0903: set how often Firefox should ask for the primary password
|
||||
* 0=the first time (default), 1=every time it's needed, 2=every n minutes (see 0904) ***/
|
||||
user_pref("security.ask_for_password", 2);
|
||||
/* 0904: set how often in minutes Firefox should ask for the master password (see 0903)
|
||||
/* 0904: set how often in minutes Firefox should ask for the primary password (see 0903)
|
||||
* in minutes, default is 30 ***/
|
||||
user_pref("security.password_lifetime", 5);
|
||||
/* 0905: disable auto-filling username & password form fields
|
||||
* can leak in cross-site forms *and* be spoofed
|
||||
* [NOTE] Username & password is still available when you enter the field
|
||||
* [SETTING] Privacy & Security>Logins and Passwords>Autofill logins and passwords ***/
|
||||
* [SETTING] Privacy & Security>Logins and Passwords>Autofill logins and passwords
|
||||
* [1] https://freedom-to-tinker.com/2017/12/27/no-boundaries-for-user-identities-web-trackers-exploit-browser-login-managers/ ***/
|
||||
user_pref("signon.autofillForms", false);
|
||||
/* 0909: disable formless login capture for Password Manager [FF51+] ***/
|
||||
user_pref("signon.formlessCapture.enabled", false);
|
||||
@@ -579,7 +568,7 @@ user_pref("network.auth.subresource-http-auth-allow", 1);
|
||||
[2] https://robertheaton.com/2014/01/20/cookieless-user-tracking-for-douchebags/
|
||||
[3] https://www.grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache
|
||||
[4] https://medium.com/@stoically/enhance-your-privacy-in-firefox-with-temporary-containers-33925cd6cd21
|
||||
[5] https://github.com/ghacksuserjs/ghacks-user.js/wiki/4.2.4-Header-Editor
|
||||
[5] https://github.com/arkenfox/user.js/wiki/4.2.4-Header-Editor
|
||||
***/
|
||||
user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!");
|
||||
/** CACHE ***/
|
||||
@@ -589,13 +578,18 @@ user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is m
|
||||
* [NOTE] We also clear cache on exiting Firefox (see 2803) ***/
|
||||
user_pref("browser.cache.disk.enable", false);
|
||||
/* 1003: disable memory cache
|
||||
/* capacity: -1=determine dynamically (default), 0=none, n=memory capacity in kilobytes ***/
|
||||
* capacity: -1=determine dynamically (default), 0=none, n=memory capacity in kibibytes ***/
|
||||
// user_pref("browser.cache.memory.enable", false);
|
||||
// user_pref("browser.cache.memory.capacity", 0); // [HIDDEN PREF ESR]
|
||||
// user_pref("browser.cache.memory.capacity", 0);
|
||||
/* 1006: disable permissions manager from writing to disk [RESTART]
|
||||
* [NOTE] This means any permission changes are session only
|
||||
* [1] https://bugzilla.mozilla.org/967812 ***/
|
||||
// user_pref("permissions.memory_only", true); // [HIDDEN PREF]
|
||||
/* 1007: 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) ***/
|
||||
user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); // [FF75+]
|
||||
user_pref("media.memory_cache_max_size", 65536);
|
||||
|
||||
/** SESSIONS & SESSION RESTORE ***/
|
||||
/* 1020: exclude "Undo Closed Tabs" in Session Restore ***/
|
||||
@@ -637,6 +631,8 @@ user_pref("browser.shell.shortcutFavicons", false);
|
||||
/*** [SECTION 1200]: HTTPS (SSL/TLS / OCSP / CERTS / HPKP / CIPHERS)
|
||||
Your cipher and other settings can be used in server side fingerprinting
|
||||
[TEST] https://www.ssllabs.com/ssltest/viewMyClient.html
|
||||
[TEST] https://browserleaks.com/ssl
|
||||
[TEST] https://ja3er.com/
|
||||
[1] https://www.securityartwork.es/2017/02/02/tls-client-fingerprinting-with-bro/
|
||||
***/
|
||||
user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!");
|
||||
@@ -653,12 +649,14 @@ user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!");
|
||||
user_pref("security.ssl.require_safe_negotiation", true);
|
||||
/* 1202: control TLS versions with min and max
|
||||
* 1=TLS 1.0, 2=TLS 1.1, 3=TLS 1.2, 4=TLS 1.3
|
||||
* [STATS] Firefox telemetry (June 2020) shows only 0.16% of SSL handshakes use 1.0 or 1.1
|
||||
* [WARNING] Leave these at default, otherwise you alter your TLS fingerprint.
|
||||
* Firefox telemetry (April 2019) shows only 0.5% of TLS web traffic uses 1.0 or 1.1
|
||||
* [1] https://www.ssllabs.com/ssl-pulse/ ***/
|
||||
// user_pref("security.tls.version.min", 3);
|
||||
// user_pref("security.tls.version.min", 3); // [DEFAULT: 3 FF78+]
|
||||
// user_pref("security.tls.version.max", 4);
|
||||
/* 1203: disable SSL session tracking [FF36+]
|
||||
/* 1203: enforce TLS 1.0 and 1.1 downgrades as session only */
|
||||
user_pref("security.tls.version.enable-deprecated", false);
|
||||
/* 1204: disable SSL session tracking [FF36+]
|
||||
* SSL Session IDs are unique, last up to 24hrs in Firefox, and can be used for tracking
|
||||
* [SETUP-PERF] Relax this if you have FPI enabled (see 4000) *AND* you understand the
|
||||
* consequences. FPI isolates these, but it was designed with the Tor protocol in mind,
|
||||
@@ -667,12 +665,12 @@ user_pref("security.ssl.require_safe_negotiation", true);
|
||||
* [2] https://bugzilla.mozilla.org/967977
|
||||
* [3] https://arxiv.org/abs/1810.07304 ***/
|
||||
user_pref("security.ssl.disable_session_identifiers", true); // [HIDDEN PREF]
|
||||
/* 1204: disable SSL Error Reporting
|
||||
/* 1205: disable SSL Error Reporting
|
||||
* [1] https://firefox-source-docs.mozilla.org/browser/base/sslerrorreport/preferences.html ***/
|
||||
user_pref("security.ssl.errorReporting.automatic", false);
|
||||
user_pref("security.ssl.errorReporting.enabled", false);
|
||||
user_pref("security.ssl.errorReporting.url", "");
|
||||
/* 1205: disable TLS1.3 0-RTT (round-trip time) [FF51+]
|
||||
/* 1206: disable TLS1.3 0-RTT (round-trip time) [FF51+]
|
||||
* [1] https://github.com/tlswg/tls13-spec/issues/1001
|
||||
* [2] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/
|
||||
user_pref("security.tls.enable_0rtt_data", false);
|
||||
@@ -713,7 +711,7 @@ user_pref("security.pki.sha1_enforcement_level", 1);
|
||||
* 0=disable detecting Family Safety mode and importing the root
|
||||
* 1=only attempt to detect Family Safety mode (don't import the root)
|
||||
* 2=detect Family Safety mode and import the root
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/21686 ***/
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21686 ***/
|
||||
user_pref("security.family_safety.mode", 0);
|
||||
/* 1222: disable intermediate certificate caching (fingerprinting attack vector) [FF41+] [RESTART]
|
||||
* [NOTE] This affects login/cert/key dbs. The effect is all credentials are session-only.
|
||||
@@ -724,41 +722,60 @@ user_pref("security.family_safety.mode", 0);
|
||||
* PKP (Public Key Pinning) 0=disabled 1=allow user MiTM (such as your antivirus), 2=strict
|
||||
* [SETUP-WEB] If you rely on an AV (antivirus) to protect your web browsing
|
||||
* by inspecting ALL your web traffic, then leave at current default=1
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/16206 ***/
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/16206 ***/
|
||||
user_pref("security.cert_pinning.enforcement_level", 2);
|
||||
|
||||
/** MIXED CONTENT ***/
|
||||
/* 1240: disable insecure active content on https pages
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/21323 ***/
|
||||
/* 1240: enforce no insecure active content on https pages
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21323 ***/
|
||||
user_pref("security.mixed_content.block_active_content", true); // [DEFAULT: true]
|
||||
/* 1241: disable insecure passive content (such as images) on https pages [SETUP-WEB] ***/
|
||||
user_pref("security.mixed_content.block_display_content", true);
|
||||
/* 1243: block unencrypted requests from Flash on encrypted pages to mitigate MitM attacks [FF59+]
|
||||
* [1] https://bugzilla.mozilla.org/1190623 ***/
|
||||
user_pref("security.mixed_content.block_object_subrequest", true);
|
||||
/* 1244: enable HTTPS-Only mode [FF76+]
|
||||
* When "https_only_mode" (all windows) is true, "https_only_mode_pbm" (private windows only) is ignored
|
||||
* [WARNING] This is experimental, see [1] and you can't set exceptions if FPI is enabled, see [2]
|
||||
* [SETTING] to add site exceptions: Page Info>Permissions>Use insecure HTTP (FF80+)
|
||||
* [SETTING] Privacy & Security>HTTPS-Only Mode (FF80+ with browser.preferences.exposeHTTPSOnly = true)
|
||||
* [1] https://bugzilla.mozilla.org/1613063 [META]
|
||||
* [2] https://bugzilla.mozilla.org/1647829 ***/
|
||||
// user_pref("dom.security.https_only_mode", true); // [FF76+]
|
||||
// user_pref("dom.security.https_only_mode_pbm", true); // [FF80+]
|
||||
// user_pref("dom.security.https_only_mode.upgrade_local", true); // [FF77+]
|
||||
|
||||
/** CIPHERS [WARNING: do not meddle with your cipher suite: see the section 1200 intro] ***/
|
||||
/* 1261: disable 3DES (effective key size < 128)
|
||||
/** CIPHERS [WARNING: do not meddle with your cipher suite: see the section 1200 intro]
|
||||
* These are all the ciphers still using SHA-1 and CBC which are weaker than the available alternatives. (see "Cipher Suites" in [1])
|
||||
* Additionally some have other weaknesses like key sizes of 128 (or lower) [2] and/or no Perfect Forward Secrecy [3].
|
||||
* [1] https://browserleaks.com/ssl
|
||||
* [2] https://en.wikipedia.org/wiki/Key_size
|
||||
* [3] https://en.wikipedia.org/wiki/Forward_secrecy
|
||||
***/
|
||||
/* 1261: disable 3DES (effective key size < 128 and no PFS)
|
||||
* [1] https://en.wikipedia.org/wiki/3des#Security
|
||||
* [2] https://en.wikipedia.org/wiki/Meet-in-the-middle_attack
|
||||
* [3] https://www-archive.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html ***/
|
||||
// user_pref("security.ssl3.rsa_des_ede3_sha", false);
|
||||
/* 1262: disable 128 bits ***/
|
||||
// user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
|
||||
// user_pref("security.ssl3.ecdhe_rsa_aes_128_sha", false);
|
||||
/* 1263: disable DHE (Diffie-Hellman Key Exchange)
|
||||
* [1] https://www.eff.org/deeplinks/2015/10/how-to-protect-yourself-from-nsa-attacks-1024-bit-DH ***/
|
||||
// user_pref("security.ssl3.dhe_rsa_aes_128_sha", false);
|
||||
// user_pref("security.ssl3.dhe_rsa_aes_256_sha", false);
|
||||
/* 1264: disable the remaining non-modern cipher suites as of FF52 ***/
|
||||
// user_pref("security.ssl3.rsa_aes_128_sha", false);
|
||||
// user_pref("security.ssl3.rsa_aes_256_sha", false);
|
||||
// user_pref("security.ssl3.dhe_rsa_aes_128_sha", false); // [DEFAULT: false FF78+]
|
||||
// user_pref("security.ssl3.dhe_rsa_aes_256_sha", false); // [DEFAULT: false FF78+]
|
||||
/* 1264: disable the remaining non-modern cipher suites as of FF78 (in order of preferred by FF) ***/
|
||||
// user_pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", false);
|
||||
// user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
|
||||
// user_pref("security.ssl3.ecdhe_rsa_aes_128_sha", false);
|
||||
// user_pref("security.ssl3.ecdhe_rsa_aes_256_sha", false);
|
||||
// user_pref("security.ssl3.rsa_aes_128_sha", false); // no PFS
|
||||
// user_pref("security.ssl3.rsa_aes_256_sha", false); // no PFS
|
||||
|
||||
/** UI (User Interface) ***/
|
||||
/* 1270: display warning on the padlock for "broken security" (if 1201 is false)
|
||||
* Bug: warning padlock not indicated for subresources on a secure page! [2]
|
||||
* [STATS] SSL Labs (June 2020) reports 98.8% of sites have secure renegotiation [3]
|
||||
* [1] https://wiki.mozilla.org/Security:Renegotiation
|
||||
* [2] https://bugzilla.mozilla.org/1353705 ***/
|
||||
* [2] https://bugzilla.mozilla.org/1353705
|
||||
* [3] https://www.ssllabs.com/ssl-pulse/ ***/
|
||||
user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
|
||||
/* 1271: control "Add Security Exception" dialog on SSL warnings
|
||||
* 0=do neither 1=pre-populate url 2=pre-populate url + pre-fetch cert (default)
|
||||
@@ -770,19 +787,19 @@ user_pref("browser.ssl_override_behavior", 1);
|
||||
* [TEST] https://expired.badssl.com/ ***/
|
||||
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||
/* 1273: display "insecure" icon and "Not Secure" text on HTTP sites ***/
|
||||
user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true FF70+]
|
||||
// user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true FF70+]
|
||||
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!");
|
||||
/* 1401: disable websites choosing fonts (0=block, 1=allow)
|
||||
* This can limit most (but not all) JS font enumeration which is a high entropy fingerprinting vector
|
||||
* [SETUP-WEB] Disabling fonts can uglify the web a fair bit.
|
||||
* [SETUP-WEB] Can break some PDFs (missing text). Limiting to default fonts can "uglify" the web
|
||||
* [SETTING] General>Language and Appearance>Fonts & Colors>Advanced>Allow pages to choose... ***/
|
||||
user_pref("browser.display.use_document_fonts", 0);
|
||||
/* 1403: disable icon fonts (glyphs) and local fallback rendering
|
||||
* [1] https://bugzilla.mozilla.org/789788
|
||||
* [2] https://trac.torproject.org/projects/tor/ticket/8455 ***/
|
||||
* [2] https://gitlab.torproject.org/legacy/trac/-/issues/8455 ***/
|
||||
// user_pref("gfx.downloadable_fonts.enabled", false); // [FF41+]
|
||||
// user_pref("gfx.downloadable_fonts.fallback_delay", -1);
|
||||
/* 1404: disable rendering of SVG OpenType fonts
|
||||
@@ -794,9 +811,10 @@ user_pref("gfx.font_rendering.opentype_svg.enabled", false);
|
||||
* [2] https://en.wikipedia.org/wiki/Graphite_(SIL) ***/
|
||||
user_pref("gfx.font_rendering.graphite.enabled", false);
|
||||
/* 1409: limit system font exposure to a whitelist [FF52+] [RESTART]
|
||||
* If the whitelist is empty, then whitelisting is considered disabled and all fonts are allowed.
|
||||
* If the whitelist is empty, then whitelisting is considered disabled and all fonts are allowed
|
||||
* [NOTE] in FF80 RFP restricts the whitelist to bundled and "Base Fonts"
|
||||
* ...and in FF81+ the whitelist **overrides** RFP's font visibility (see 4618)
|
||||
* [WARNING] Creating your own probably highly-unique whitelist will raise your entropy.
|
||||
* Eventually privacy.resistFingerprinting (see 4500) will cover this
|
||||
* [1] https://bugzilla.mozilla.org/1121643 ***/
|
||||
// user_pref("font.system.whitelist", ""); // [HIDDEN PREF]
|
||||
|
||||
@@ -867,18 +885,17 @@ user_pref("privacy.userContext.ui.enabled", true);
|
||||
/* 1702: enable Container Tabs [FF50+]
|
||||
* [SETTING] General>Tabs>Enable Container Tabs ***/
|
||||
user_pref("privacy.userContext.enabled", true);
|
||||
/* 1704: set behaviour on "+ Tab" button to display container menu [FF53+] [SETUP-CHROME]
|
||||
* 0=no menu (default), 1=show when clicked, 2=show on long press
|
||||
* [1] https://bugzilla.mozilla.org/1328756 ***/
|
||||
user_pref("privacy.userContext.longPressBehavior", 2);
|
||||
/* 1703: set behaviour 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);
|
||||
|
||||
/*** [SECTION 1800]: PLUGINS ***/
|
||||
user_pref("_user.js.parrot", "1800 syntax error: the parrot's pushing up daisies!");
|
||||
/* 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
|
||||
* [1] https://www.ghacks.net/2013/07/09/how-to-make-sure-that-a-firefox-plugin-never-activates-again/ ***/
|
||||
* [NOTE] You can still override individual sites via site permissions ***/
|
||||
user_pref("plugin.state.flash", 0);
|
||||
/* 1820: disable GMP (Gecko Media Plugins)
|
||||
* [1] https://wiki.mozilla.org/GeckoMediaPlugins ***/
|
||||
@@ -901,7 +918,7 @@ user_pref("_user.js.parrot", "2000 syntax error: the parrot's snuffed it!");
|
||||
* [1] https://www.privacytools.io/#webrtc ***/
|
||||
user_pref("media.peerconnection.enabled", false);
|
||||
/* 2002: limit WebRTC IP leaks if using WebRTC
|
||||
* In FF70+ these settings match Mode 4 (Mode 3 in older versions) (see [3])
|
||||
* In FF70+ these settings match Mode 4 (Mode 3 in older versions), see [3]
|
||||
* [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
|
||||
@@ -918,7 +935,6 @@ user_pref("webgl.disabled", true);
|
||||
user_pref("webgl.enable-webgl2", false);
|
||||
/* 2012: limit WebGL ***/
|
||||
user_pref("webgl.min_capability_mode", true);
|
||||
user_pref("webgl.disable-extensions", true);
|
||||
user_pref("webgl.disable-fail-if-major-performance-caveat", true);
|
||||
/* 2022: disable screensharing ***/
|
||||
user_pref("media.getusermedia.screensharing.enabled", false);
|
||||
@@ -935,34 +951,27 @@ user_pref("media.getusermedia.audiocapture.enabled", false);
|
||||
* [NOTE] You can set exceptions under site permissions
|
||||
* [SETTING] Privacy & Security>Permissions>Autoplay>Settings>Default for all websites ***/
|
||||
// user_pref("media.autoplay.default", 5);
|
||||
/* 2031: disable autoplay of HTML5 media if you interacted with the site [FF66+] ***/
|
||||
user_pref("media.autoplay.enabled.user-gestures-needed", false);
|
||||
/* 2031: disable autoplay of HTML5 media if you interacted with the site [FF78+]
|
||||
* 0=sticky (default), 1=transient, 2=user
|
||||
* [NOTE] If you have trouble with some video sites, then add an exception (see 2030)
|
||||
* [1] https://html.spec.whatwg.org/multipage/interaction.html#sticky-activation ***/
|
||||
user_pref("media.autoplay.blocking_policy", 2);
|
||||
|
||||
/*** [SECTION 2200]: WINDOW MEDDLING & LEAKS / POPUPS ***/
|
||||
user_pref("_user.js.parrot", "2200 syntax error: the parrot's 'istory!");
|
||||
/* 2201: prevent websites from disabling new window features ***/
|
||||
user_pref("dom.disable_window_open_feature.close", true);
|
||||
user_pref("dom.disable_window_open_feature.location", true); // [DEFAULT: true]
|
||||
user_pref("dom.disable_window_open_feature.menubar", true);
|
||||
user_pref("dom.disable_window_open_feature.minimizable", true);
|
||||
user_pref("dom.disable_window_open_feature.personalbar", true); // bookmarks toolbar
|
||||
user_pref("dom.disable_window_open_feature.resizable", true); // [DEFAULT: true]
|
||||
user_pref("dom.disable_window_open_feature.status", true); // [DEFAULT: true]
|
||||
user_pref("dom.disable_window_open_feature.titlebar", true);
|
||||
user_pref("dom.disable_window_open_feature.toolbar", true);
|
||||
/* 2202: prevent scripts from moving and resizing open windows ***/
|
||||
user_pref("dom.disable_window_move_resize", true);
|
||||
/* 2203: open links targeting new windows in a new tab instead
|
||||
* This stops malicious window sizes and some screen resolution leaks.
|
||||
* You can still right-click a link and open in a new window.
|
||||
* [TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#screen
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/9881 ***/
|
||||
user_pref("browser.link.open_newwindow", 3);
|
||||
* [TEST] https://arkenfox.github.io/TZP/tzp.html#screen
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/9881 ***/
|
||||
user_pref("browser.link.open_newwindow", 3); // 1=most recent window or tab 2=new window, 3=new tab
|
||||
user_pref("browser.link.open_newwindow.restriction", 0);
|
||||
/* 2204: disable Fullscreen API (requires user interaction) to prevent screen-resolution leaks
|
||||
* [NOTE] You can still manually toggle the browser's fullscreen state (F11),
|
||||
* but this pref will disable embedded video/game fullscreen controls, e.g. youtube
|
||||
* [TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#screen ***/
|
||||
* [TEST] https://arkenfox.github.io/TZP/tzp.html#screen ***/
|
||||
// user_pref("full-screen-api.enabled", false);
|
||||
/* 2210: block popup windows
|
||||
* [SETTING] Privacy & Security>Permissions>Block pop-up windows ***/
|
||||
@@ -1026,14 +1035,13 @@ user_pref("_user.js.parrot", "2400 syntax error: the parrot's kicked the bucket!
|
||||
/* 2401: disable website control over browser right-click context menu
|
||||
* [NOTE] Shift-Right-Click will always bring up the browser right-click context menu ***/
|
||||
// user_pref("dom.event.contextmenu.enabled", false);
|
||||
/* 2402: disable website access to clipboard events/content
|
||||
* [SETUP-WEB] This will break some sites functionality such as pasting into facebook, wordpress
|
||||
/* 2402: disable website access to clipboard events/content [SETUP-HARDEN]
|
||||
* [NOTE] This will break some sites' functionality e.g. Outlook, Twitter, Facebook, Wordpress
|
||||
* This applies to onCut/onCopy/onPaste events - i.e. it requires interaction with the website
|
||||
* [WARNING] If both 'middlemouse.paste' and 'general.autoScroll' are true (at least one
|
||||
* is default false) then enabling this pref can leak clipboard content, see [2]
|
||||
* [1] https://www.ghacks.net/2014/01/08/block-websites-reading-modifying-clipboard-contents-firefox/
|
||||
* [2] https://bugzilla.mozilla.org/1528289 */
|
||||
user_pref("dom.event.clipboardevents.enabled", false);
|
||||
* is default false) then enabling this pref can leak clipboard content, see [1]
|
||||
* [1] https://bugzilla.mozilla.org/1528289 */
|
||||
// user_pref("dom.event.clipboardevents.enabled", false);
|
||||
/* 2404: disable clipboard commands (cut/copy) from "non-privileged" content [FF41+]
|
||||
* this disables document.execCommand("cut"/"copy") to protect your clipboard
|
||||
* [1] https://bugzilla.mozilla.org/1170911 ***/
|
||||
@@ -1053,11 +1061,14 @@ user_pref("dom.vibrator.enabled", false);
|
||||
* [5] https://www.mozilla.org/security/advisories/mfsa2017-05/#CVE-2017-5400
|
||||
* [6] https://rh0dev.github.io/blog/2017/the-return-of-the-jit/ ***/
|
||||
user_pref("javascript.options.asmjs", false);
|
||||
/* 2421: disable Ion and baseline JIT to help harden JS against exploits
|
||||
* [WARNING] If false, causes the odd site issue and there is also a performance loss
|
||||
/* 2421: disable Ion and baseline JIT to harden against JS exploits [SETUP-HARDEN]
|
||||
* [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)
|
||||
* [WARNING] Disabling Ion/JIT can cause some site issues and performance loss
|
||||
* [1] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0817 ***/
|
||||
// user_pref("javascript.options.ion", false);
|
||||
// user_pref("javascript.options.baselinejit", false);
|
||||
// user_pref("javascript.options.jit_trustedprincipals", true); // [FF75+] [HIDDEN PREF]
|
||||
/* 2422: disable WebAssembly [FF52+] [SETUP-PERF]
|
||||
* [NOTE] In FF71+ this no longer affects extensions (1576254)
|
||||
* [1] https://developer.mozilla.org/docs/WebAssembly ***/
|
||||
@@ -1069,7 +1080,7 @@ user_pref("javascript.options.wasm", false);
|
||||
// user_pref("dom.IntersectionObserver.enabled", false);
|
||||
/* 2429: enable (limited but sufficient) 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);
|
||||
user_pref("dom.targetBlankNoOpener.enabled", true); // [DEFAULT: true FF79+]
|
||||
|
||||
/*** [SECTION 2500]: HARDWARE FINGERPRINTING ***/
|
||||
user_pref("_user.js.parrot", "2500 syntax error: the parrot's shuffled off 'is mortal coil!");
|
||||
@@ -1077,13 +1088,9 @@ user_pref("_user.js.parrot", "2500 syntax error: the parrot's shuffled off 'is m
|
||||
* Initially a Linux issue (high precision readout) that was fixed.
|
||||
* However, it is still another metric for fingerprinting, used to raise entropy.
|
||||
* e.g. do you have a battery or not, current charging status, charge level, times remaining etc
|
||||
* [NOTE] From FF52+ Battery Status API is only available in chrome/privileged code. see [1]
|
||||
* [NOTE] From FF52+ Battery Status API is only available in chrome/privileged code, see [1]
|
||||
* [1] https://bugzilla.mozilla.org/1313580 ***/
|
||||
// user_pref("dom.battery.enabled", false);
|
||||
/* 2504: disable virtual reality devices
|
||||
* Optional protection depending on your connected devices
|
||||
* [1] https://developer.mozilla.org/docs/Web/API/WebVR_API ***/
|
||||
// user_pref("dom.vr.enabled", false);
|
||||
/* 2505: disable media device enumeration [FF29+]
|
||||
* [NOTE] media.peerconnection.enabled should also be set to false (see 2001)
|
||||
* [1] https://wiki.mozilla.org/Media/getUserMedia
|
||||
@@ -1104,6 +1111,15 @@ user_pref("dom.webaudio.enabled", false);
|
||||
* [1] https://github.com/WICG/media-capabilities
|
||||
* [2] https://wicg.github.io/media-capabilities/#security-privacy-considerations ***/
|
||||
// user_pref("media.media-capabilities.enabled", false);
|
||||
/* 2520: disable virtual reality devices
|
||||
* Optional protection depending on your connected devices
|
||||
* [1] https://developer.mozilla.org/docs/Web/API/WebVR_API ***/
|
||||
// user_pref("dom.vr.enabled", false);
|
||||
/* 2521: set a default permission for Virtual Reality (see 2520) [FF73+]
|
||||
* 0=always ask (default), 1=allow, 2=block
|
||||
* [SETTING] to add site exceptions: Page Info>Permissions>Access Virtual Reality Devices
|
||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Virtual Reality>Settings ***/
|
||||
// user_pref("permissions.default.xr", 0);
|
||||
|
||||
/*** [SECTION 2600]: MISCELLANEOUS ***/
|
||||
user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!");
|
||||
@@ -1120,10 +1136,6 @@ user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||
/* 2604: disable page thumbnail collection
|
||||
* look in profile/thumbnails directory - you may want to clean that out ***/
|
||||
user_pref("browser.pagethumbnails.capturing_disabled", true); // [HIDDEN PREF]
|
||||
/* 2605: block web content in file processes [FF55+]
|
||||
* [SETUP-WEB] You may want to disable this for corporate or developer environments
|
||||
* [1] https://bugzilla.mozilla.org/1343184 ***/
|
||||
user_pref("browser.tabs.remote.allowLinkedWebInFileUriProcess", false);
|
||||
/* 2606: disable UITour backend so there is no chance that a remote page can use it ***/
|
||||
user_pref("browser.uitour.enabled", false);
|
||||
user_pref("browser.uitour.url", "");
|
||||
@@ -1131,20 +1143,19 @@ user_pref("browser.uitour.url", "");
|
||||
* [SETTING] Devtools>Advanced Settings>Enable browser chrome and add-on debugging toolboxes
|
||||
* [1] https://github.com/pyllyukko/user.js/issues/179#issuecomment-246468676 ***/
|
||||
user_pref("devtools.chrome.enabled", false);
|
||||
/* 2608: disable remote debugging
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/16222 ***/
|
||||
user_pref("devtools.debugger.remote-enabled", false);
|
||||
/* 2608: reset remote debugging to disabled
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/16222 ***/
|
||||
user_pref("devtools.debugger.remote-enabled", false); // [DEFAULT: false]
|
||||
/* 2609: disable MathML (Mathematical Markup Language) [FF51+] [SETUP-HARDEN]
|
||||
* [TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#misc
|
||||
* [TEST] https://arkenfox.github.io/TZP/tzp.html#misc
|
||||
* [1] https://bugzilla.mozilla.org/1173199 ***/
|
||||
// user_pref("mathml.disabled", true);
|
||||
/* 2610: disable in-content SVG (Scalable Vector Graphics) [FF53+]
|
||||
* [NOTE] In FF70+ and ESR68.1.0+ this no longer affects extensions (1564208)
|
||||
* [WARNING] Expect breakage incl. youtube player controls. Best left for a "hardened" profile.
|
||||
* [1] https://bugzilla.mozilla.org/1216893 ***/
|
||||
// user_pref("svg.disabled", true);
|
||||
/* 2611: disable middle mouse click opening links from clipboard
|
||||
* [1] https://trac.torproject.org/projects/tor/ticket/10089 ***/
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/10089 ***/
|
||||
user_pref("middlemouse.contentLoadURL", false);
|
||||
/* 2614: limit HTTP redirects (this does not control redirects with HTML meta tags or JS)
|
||||
* [NOTE] A low setting of 5 or under will probably break some sites (e.g. gmail logins)
|
||||
@@ -1179,9 +1190,17 @@ user_pref("network.IDN_show_punycode", true);
|
||||
* CAVEAT: JS can still force a pdf to open in-browser by bundling its own code (rare)
|
||||
* [SETTING] General>Applications>Portable Document Format (PDF) ***/
|
||||
user_pref("pdfjs.disabled", false); // [DEFAULT: false]
|
||||
/* 2621: disable links launching Windows Store on Windows 8/8.1/10 [WINDOWS]
|
||||
* [1] https://www.ghacks.net/2016/03/25/block-firefox-chrome-windows-store/ ***/
|
||||
/* 2621: disable links launching Windows Store on Windows 8/8.1/10 [WINDOWS] ***/
|
||||
user_pref("network.protocol-handler.external.ms-windows-store", false);
|
||||
/* 2622: enforce no system colors; they can be fingerprinted
|
||||
* [SETTING] General>Language and Appearance>Fonts and Colors>Colors>Use system colors ***/
|
||||
user_pref("browser.display.use_system_colors", false); // [DEFAULT: false]
|
||||
/* 2623: disable permissions delegation [FF73+]
|
||||
* Currently applies to cross-origin geolocation, camera, mic and screen-sharing
|
||||
* permissions, and fullscreen requests. Disabling delegation means any prompts
|
||||
* for these will show/use their correct 3rd party origin
|
||||
* [1] https://groups.google.com/forum/#!topic/mozilla.dev.platform/BdFOMAuCGW8/discussion */
|
||||
user_pref("permissions.delegation.enabled", false);
|
||||
|
||||
/** DOWNLOADS ***/
|
||||
/* 2650: discourage downloading to desktop
|
||||
@@ -1211,7 +1230,7 @@ user_pref("browser.download.hide_plugins_without_extensions", false);
|
||||
* [1] archived: https://archive.is/DYjAM ***/
|
||||
user_pref("extensions.enabledScopes", 5); // [HIDDEN PREF]
|
||||
user_pref("extensions.autoDisableScopes", 15); // [DEFAULT: 15]
|
||||
/* 2662: disable webextension restrictions on certain mozilla domains (also see 4503) [FF60+]
|
||||
/* 2662: disable webextension restrictions on certain mozilla domains (you also need 4503) [FF60+]
|
||||
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/
|
||||
// user_pref("extensions.webextensions.restrictedDomains", "");
|
||||
|
||||
@@ -1335,6 +1354,7 @@ user_pref("privacy.cpd.siteSettings", false); // Site Preferences
|
||||
user_pref("privacy.sanitize.timeSpan", 0);
|
||||
|
||||
/*** [SECTION 4000]: FPI (FIRST PARTY ISOLATION)
|
||||
4001: FPI
|
||||
** 1278037 - isolate indexedDB (FF51+)
|
||||
** 1277803 - isolate favicons (FF52+)
|
||||
** 1264562 - isolate OCSP cache (FF52+)
|
||||
@@ -1353,22 +1373,29 @@ user_pref("privacy.sanitize.timeSpan", 0);
|
||||
** 1506693 - isolate pdfjs range-based requests (FF68+)
|
||||
** 1330467 - isolate site permissions (FF69+)
|
||||
** 1534339 - isolate IPv6 (FF73+)
|
||||
4003: NETWORK PARTITON
|
||||
** 1647732 - isolate font cache (FF80+)
|
||||
** 1649673 - isolate speculative connections (FF80+)
|
||||
***/
|
||||
user_pref("_user.js.parrot", "4000 syntax error: the parrot's pegged out");
|
||||
/* 4001: enable First Party Isolation [FF51+]
|
||||
* [SETUP-WEB] May break cross-domain logins and site functionality until perfected
|
||||
* [1] https://bugzilla.mozilla.org/1260931 ***/
|
||||
* [1] https://bugzilla.mozilla.org/1260931
|
||||
* [2] https://bugzilla.mozilla.org/1299996 [META] ***/
|
||||
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. (see [2],[3])
|
||||
* to reduce breakage it ignores the 1st-party domain (FPD) originAttribute, see [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/en-US/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); // [HIDDEN PREF ESR]
|
||||
// user_pref("privacy.firstparty.isolate.block_post_message", true);
|
||||
/* 4003: enable site partitioning (FF78+)
|
||||
* [1] https://bugzilla.mozilla.org/1590107 [META] */
|
||||
user_pref("privacy.partition.network_state", true);
|
||||
|
||||
/*** [SECTION 4500]: RFP (RESIST FINGERPRINTING)
|
||||
This master switch will be used for a wide range of items, many of which will
|
||||
@@ -1381,7 +1408,7 @@ user_pref("privacy.firstparty.isolate", true);
|
||||
[NOTE] Info only: To set a size, open a XUL (chrome) page (such as about:config) which is at
|
||||
100% zoom, hit Shift+F4 to open the scratchpad, type window.resizeTo(1366,768), hit Ctrl+R to run.
|
||||
Test your window size, do some math, resize to allow for all the non inner window elements
|
||||
[TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#screen
|
||||
[TEST] https://arkenfox.github.io/TZP/tzp.html#screen
|
||||
** 1281949 - spoof screen orientation (FF50+)
|
||||
** 1281963 - hide the contents of navigator.plugins and navigator.mimeTypes (FF50+)
|
||||
FF53: Fixes GetSupportedNames in nsMimeTypeArray and nsPluginArray (1324044)
|
||||
@@ -1392,12 +1419,13 @@ user_pref("privacy.firstparty.isolate", true);
|
||||
This spoof *shouldn't* affect core chrome/Firefox performance
|
||||
** 1217238 - reduce precision of time exposed by javascript (FF55+)
|
||||
** 1369303 - spoof/disable performance API (see 2410-deprecated, 4602, 4603) (FF56+)
|
||||
** 1333651 & 1383495 & 1396468 - spoof Navigator API (see section 4700) (FF56+)
|
||||
FF56: The version number will be rounded down to the nearest multiple of 10
|
||||
FF57: The version number will match current ESR (1393283, 1418672, 1418162, 1511763)
|
||||
FF59: The OS will be reported as Windows, OSX, Android, or Linux (to reduce breakage) (1404608)
|
||||
FF66: The OS in HTTP Headers will be reduced to Windows or Android (1509829)
|
||||
FF68: Reported OS versions updated to Windows 10, OS 10.14, and Adnroid 8.1 (1511434)
|
||||
** 1333651 & 1383495 & 1396468 - spoof User Agent & Navigator API (see section 4700) (FF56+)
|
||||
FF56: Version: rounded down to the nearest multiple of 10
|
||||
FF57: Version: match current ESR (1393283, 1418672, 1418162, 1511763)
|
||||
FF59: OS: Windows, OSX, Android, or Linux (to reduce breakage) (1404608)
|
||||
FF66: OS: HTTP Headers reduced to Windows or Android (1509829)
|
||||
FF68: OS: updated to Windows 10, OS 10.14, and Android 8.1 (1511434)
|
||||
FF78: OS: updated to OS 10.15 and Android 9.0 (1635011)
|
||||
** 1369319 - disable device sensor API (see 4604) (FF56+)
|
||||
** 1369357 - disable site specific zoom (see 4605) (FF56+)
|
||||
** 1337161 - hide gamepads from content (see 4606) (FF56+)
|
||||
@@ -1411,7 +1439,7 @@ user_pref("privacy.firstparty.isolate", true);
|
||||
** 1354633 - limit MediaError.message to a whitelist (FF57+)
|
||||
** 1382533 - enable fingerprinting resistance for Presentation API (FF57+)
|
||||
This blocks exposure of local IP Addresses via mDNS (Multicast DNS)
|
||||
** 967895 - enable site permission prompt before allowing canvas data extraction (FF58+)
|
||||
** 967895 - spoof canvas and enable site permission prompt before allowing canvas data extraction (FF58+)
|
||||
FF59: Added to site permissions panel (1413780) Only prompt when triggered by user input (1376865)
|
||||
** 1372073 - spoof/block fingerprinting in MediaDevices API (FF59+)
|
||||
Spoof: enumerate devices reports one "Internal Camera" and one "Internal Microphone" if
|
||||
@@ -1424,15 +1452,18 @@ user_pref("privacy.firstparty.isolate", true);
|
||||
FF60: Fix keydown/keyup events (1438795)
|
||||
** 1337157 - disable WebGL debug renderer info (see 4613) (FF60+)
|
||||
** 1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62+)
|
||||
** 1479239 - return "no-preference" with prefers-reduced-motion (FF63+)
|
||||
** 1363508 - spoof/suppress Pointer Events (see 4614) (FF64+)
|
||||
** 1479239 - return "no-preference" with prefers-reduced-motion (see 4614) (FF63+)
|
||||
** 1363508 - spoof/suppress Pointer Events (see 4615) (FF64+)
|
||||
FF65: pointerEvent.pointerid (1492766)
|
||||
** 1485266 - disable exposure of system colors to CSS or canvas (see 4615) (FF67+)
|
||||
** 1485266 - disable exposure of system colors to CSS or canvas (see 4616) (FF67+)
|
||||
** 1407366 - enable inner window letterboxing (see 4504) (FF67+)
|
||||
** 1540726 - return "light" with prefers-color-scheme (see 4616) (FF67+)
|
||||
** 1494034 - return "light" with prefers-color-scheme (see 4617) (FF67+)
|
||||
[1] https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
|
||||
** 1564422 - spoof audioContext outputLatency (FF70+)
|
||||
** 1595823 - spoof audioContext sampleRate (FF72+)
|
||||
** 1607316 - spoof pointer as coarse and hover as none (ANDROID) (FF74+)
|
||||
** 1621433 - randomize canvas (previously FF58+ returned an all-white canvas) (FF78+)
|
||||
** 1653987 - limit font visibility to bundled and "Base Fonts" (see 4618) (non-ANDROID) (FF80+)
|
||||
***/
|
||||
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
|
||||
/* 4501: enable privacy.resistFingerprinting [FF41+]
|
||||
@@ -1467,6 +1498,9 @@ user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
|
||||
* When default true (FF62+) this no longer masks the RFP chrome resizing activity
|
||||
* [1] https://bugzilla.mozilla.org/1448423 ***/
|
||||
user_pref("browser.startup.blankWindow", false);
|
||||
/* 4520: disable chrome animations [FF77+] [RESTART]
|
||||
* [NOTE] pref added in FF63, but applied to chrome in FF77. RFP spoofs this for web content ***/
|
||||
user_pref("ui.prefersReducedMotion", 1); // [HIDDEN PREF]
|
||||
|
||||
/*** [SECTION 4600]: RFP ALTERNATIVES
|
||||
* non-RFP users:
|
||||
@@ -1485,8 +1519,8 @@ user_pref("_user.js.parrot", "4600 syntax error: the parrot's crossed the Jordan
|
||||
// 4601: [2514] spoof (or limit?) number of CPU cores [FF48+]
|
||||
// [NOTE] *may* affect core chrome/Firefox performance, will affect content.
|
||||
// [1] https://bugzilla.mozilla.org/1008453
|
||||
// [2] https://trac.torproject.org/projects/tor/ticket/21675
|
||||
// [3] https://trac.torproject.org/projects/tor/ticket/22127
|
||||
// [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21675
|
||||
// [3] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/22127
|
||||
// [4] https://html.spec.whatwg.org/multipage/workers.html#navigator.hardwareconcurrency
|
||||
// user_pref("dom.maxHardwareConcurrency", 2);
|
||||
// * * * /
|
||||
@@ -1498,7 +1532,7 @@ user_pref("dom.enable_resource_timing", false);
|
||||
user_pref("dom.enable_performance", false);
|
||||
// 4604: [2512] disable device sensor API
|
||||
// Optional protection depending on your device
|
||||
// [1] https://trac.torproject.org/projects/tor/ticket/15758
|
||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/15758
|
||||
// [2] https://blog.lukaszolejnik.com/stealing-sensitive-browser-data-with-the-w3c-ambient-light-sensor-api/
|
||||
// [3] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1357733,1292751
|
||||
// user_pref("device.sensors.enabled", false);
|
||||
@@ -1509,7 +1543,7 @@ user_pref("dom.enable_performance", false);
|
||||
user_pref("browser.zoom.siteSpecific", false);
|
||||
// 4606: [2501] disable gamepad API - USB device ID enumeration
|
||||
// Optional protection depending on your connected devices
|
||||
// [1] https://trac.torproject.org/projects/tor/ticket/13023
|
||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/13023
|
||||
// user_pref("dom.gamepad.enabled", false);
|
||||
// 4607: [2503] disable giving away network info [FF31+]
|
||||
// e.g. bluetooth, cellular, ethernet, wifi, wimax, other, mixed, unknown, none
|
||||
@@ -1525,7 +1559,7 @@ user_pref("media.webspeech.synth.enabled", false);
|
||||
// * * * /
|
||||
// FF57+
|
||||
// 4610: [2506] disable video statistics - JS performance fingerprinting [FF25+]
|
||||
// [1] https://trac.torproject.org/projects/tor/ticket/15757
|
||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/15757
|
||||
// [2] https://bugzilla.mozilla.org/654550
|
||||
user_pref("media.video_stats.enabled", false);
|
||||
// 4611: [2509] disable touch events
|
||||
@@ -1533,7 +1567,7 @@ user_pref("media.video_stats.enabled", false);
|
||||
// 0=disabled, 1=enabled, 2=autodetect
|
||||
// Optional protection depending on your device
|
||||
// [1] https://developer.mozilla.org/docs/Web/API/Touch_events
|
||||
// [2] https://trac.torproject.org/projects/tor/ticket/10286
|
||||
// [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/10286
|
||||
// user_pref("dom.w3c_touch_events.enabled", 0);
|
||||
// * * * /
|
||||
// FF59+
|
||||
@@ -1548,20 +1582,31 @@ user_pref("media.ondevicechange.enabled", false);
|
||||
// [2] https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info
|
||||
user_pref("webgl.enable-debug-renderer-info", false);
|
||||
// * * * /
|
||||
// FF65+
|
||||
// 4614: [2516] disable PointerEvents
|
||||
// FF63+
|
||||
// 4614: enforce prefers-reduced-motion as no-preference [FF63+] [RESTART]
|
||||
// 0=no-preference, 1=reduce
|
||||
user_pref("ui.prefersReducedMotion", 0); // [HIDDEN PREF]
|
||||
// FF64+
|
||||
// 4615: [2516] disable PointerEvents
|
||||
// [1] https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
|
||||
user_pref("dom.w3c_pointer_events.enabled", false);
|
||||
// * * * /
|
||||
// FF67+
|
||||
// 4615: [2618] disable exposure of system colors to CSS or canvas [FF44+]
|
||||
// [NOTE] See second listed bug: may cause black on black for elements with undefined colors
|
||||
// [SETUP-CHROME] Might affect CSS in themes and extensions
|
||||
// [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=232227,1330876
|
||||
// 4616: [2618] disable exposure of system colors to CSS or canvas [FF44+]
|
||||
// [NOTE] See second listed bug: may cause black on black for elements with undefined colors
|
||||
// [SETUP-CHROME] Might affect CSS in themes and extensions
|
||||
// [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=232227,1330876
|
||||
user_pref("ui.use_standins_for_native_colors", true);
|
||||
// 4616: enforce prefers-color-scheme as light [FF67+]
|
||||
// 0=light, 1=dark : This overrides your OS value
|
||||
// 4617: enforce prefers-color-scheme as light [FF67+]
|
||||
// 0=light, 1=dark : This overrides your OS value
|
||||
user_pref("ui.systemUsesDarkTheme", 0); // [HIDDEN PREF]
|
||||
// FF80+
|
||||
// 4618: limit font visbility (non-ANDROID) [FF79+]
|
||||
// Uses hardcoded lists with two parts: kBaseFonts + kLangPackFonts, see [1]
|
||||
// 1=only base system fonts, 2=also fonts from optional language packs, 3=also user-installed fonts
|
||||
// [NOTE] Bundled fonts are auto-allowed
|
||||
// [1] https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc
|
||||
user_pref("layout.css.font-visibility.level", 1);
|
||||
// * * * /
|
||||
// ***/
|
||||
|
||||
@@ -1570,8 +1615,8 @@ user_pref("ui.systemUsesDarkTheme", 0); // [HIDDEN PREF]
|
||||
to use RFP (4500) or an extension, in which case they become POINTLESS.
|
||||
(a) Many of the components that make up your UA can be derived by other means.
|
||||
And when those values differ, you provide more bits and raise entropy.
|
||||
Examples of leaks include navigator objects, date locale/formats, iframes,
|
||||
headers, tcp/ip attributes, feature detection, and **many** more.
|
||||
Examples of leaks include workers, navigator objects, date locale/formats,
|
||||
iframes, headers, tcp/ip attributes, feature detection, and **many** more.
|
||||
ALL values below intentionally left blank - use RFP, or get a vetted, tested
|
||||
extension and mimic RFP values to *lower* entropy, or randomize to *raise* it
|
||||
***/
|
||||
@@ -1608,7 +1653,6 @@ user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
||||
// user_pref("full-screen-api.warning.timeout", 0);
|
||||
/* APPEARANCE ***/
|
||||
// user_pref("browser.download.autohideButton", false); // [FF57+]
|
||||
// user_pref("toolkit.cosmeticAnimations.enabled", false); // [FF55+]
|
||||
// user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); // [FF68+] allow userChrome/userContent
|
||||
/* CONTENT BEHAVIOR ***/
|
||||
// user_pref("accessibility.typeaheadfind", true); // enable "Find As You Type"
|
||||
@@ -1637,11 +1681,24 @@ user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
||||
// user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR)
|
||||
|
||||
/*** [SECTION 9999]: DEPRECATED / REMOVED / LEGACY / RENAMED
|
||||
Documentation denoted as [-]. Items deprecated prior to FF68 have been archived at [1], which
|
||||
also provides a link-clickable, viewer-friendly version of the deprecated bugzilla tickets
|
||||
[1] https://github.com/ghacksuserjs/ghacks-user.js/issues/123
|
||||
Documentation denoted as [-]. Items deprecated in FF78 or earlier have been archived at [1],
|
||||
which also provides a link-clickable, viewer-friendly version of the deprecated bugzilla tickets
|
||||
[1] https://github.com/arkenfox/user.js/issues/123
|
||||
***/
|
||||
user_pref("_user.js.parrot", "9999 syntax error: the parrot's deprecated!");
|
||||
/* 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");
|
||||
// * * * /
|
||||
// ***/
|
||||
|
||||
/* ESR68.x still uses all the following prefs
|
||||
// [NOTE] replace the * with a slash in the line above to re-enable them
|
||||
// FF69
|
||||
@@ -1684,6 +1741,56 @@ user_pref("toolkit.telemetry.hybridContent.enabled", false); // [FF59+]
|
||||
// [-] https://bugzilla.mozilla.org/1488583
|
||||
user_pref("dom.indexedDB.enabled", true); // [DEFAULT: true]
|
||||
// * * * /
|
||||
// FF74
|
||||
// 0203: use Mozilla geolocation service instead of Google when geolocation is enabled
|
||||
// Optionally enable logging to the console (defaults to false)
|
||||
// [-] https://bugzilla.mozilla.org/1613627
|
||||
user_pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
|
||||
// user_pref("geo.wifi.logging.enabled", true); // [HIDDEN PREF]
|
||||
// 1704: set behaviour on "+ Tab" button to display container menu [FF53+] [SETUP-CHROME]
|
||||
// 0=no menu (default), 1=show when clicked, 2=show on long press
|
||||
// [1] https://bugzilla.mozilla.org/1328756
|
||||
// [-] https://bugzilla.mozilla.org/1606265
|
||||
user_pref("privacy.userContext.longPressBehavior", 2);
|
||||
// 2012: limit WebGL
|
||||
// [-] https://bugzilla.mozilla.org/1477756
|
||||
user_pref("webgl.disable-extensions", true);
|
||||
// * * * /
|
||||
// FF76
|
||||
// 0401: sanitize blocklist url
|
||||
// [2] https://trac.torproject.org/projects/tor/ticket/16931
|
||||
// [-] https://bugzilla.mozilla.org/1618188
|
||||
user_pref("extensions.blocklist.url", "https://blocklists.settings.services.mozilla.com/v1/blocklist/3/%APP_ID%/%APP_VERSION%/");
|
||||
// 2201: prevent websites from disabling new window features
|
||||
// [-] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1507375,1660524
|
||||
user_pref("dom.disable_window_open_feature.close", true);
|
||||
user_pref("dom.disable_window_open_feature.location", true); // [DEFAULT: true]
|
||||
user_pref("dom.disable_window_open_feature.menubar", true);
|
||||
user_pref("dom.disable_window_open_feature.minimizable", true);
|
||||
user_pref("dom.disable_window_open_feature.personalbar", true); // bookmarks toolbar
|
||||
user_pref("dom.disable_window_open_feature.resizable", true); // [DEFAULT: true]
|
||||
user_pref("dom.disable_window_open_feature.status", true); // [DEFAULT: true]
|
||||
user_pref("dom.disable_window_open_feature.titlebar", true);
|
||||
user_pref("dom.disable_window_open_feature.toolbar", true);
|
||||
// * * * /
|
||||
// FF77
|
||||
// 0850e: disable location bar one-off searches [FF51+]
|
||||
// [-] https://bugzilla.mozilla.org/1628926
|
||||
// user_pref("browser.urlbar.oneOffSearches", false);
|
||||
// 2605: block web content in file processes [FF55+]
|
||||
// [SETUP-WEB] You may want to disable this for corporate or developer environments
|
||||
// [1] https://bugzilla.mozilla.org/1343184
|
||||
// [-] https://bugzilla.mozilla.org/1603007
|
||||
user_pref("browser.tabs.remote.allowLinkedWebInFileUriProcess", false);
|
||||
// * * * /
|
||||
// FF78
|
||||
// 2031: disable autoplay of HTML5 media if you interacted with the site [FF66+] - replaced by 'media.autoplay.blocking_policy'
|
||||
// [-] https://bugzilla.mozilla.org/1509933
|
||||
user_pref("media.autoplay.enabled.user-gestures-needed", false);
|
||||
// 5000's: disable chrome animations - replaced FF77+ by 'ui.prefersReducedMotion' (4520)
|
||||
// [-] https://bugzilla.mozilla.org/1640501
|
||||
// user_pref("toolkit.cosmeticAnimations.enabled", false); // [FF55+]
|
||||
// * * * /
|
||||
// ***/
|
||||
|
||||
/* END: internal custom pref to test for syntax errors ***/
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 KiB |
Reference in New Issue
Block a user