mirror of
https://github.com/arkenfox/user.js.git
synced 2025-09-01 17:38:30 +02:00
Compare commits
77 Commits
Author | SHA1 | Date | |
---|---|---|---|
efcceaf2c3 | |||
9018577a3e | |||
6968b9a369 | |||
ada31d4f50 | |||
d973e11714 | |||
b6d7b2bff5 | |||
74f804a056 | |||
f0b5e3649d | |||
9cc132e69d | |||
9419e2faab | |||
0566ded651 | |||
ba9b3c217b | |||
79c5539edb | |||
cfd7cd01d1 | |||
da9f912862 | |||
9930cfbc07 | |||
7738e320d5 | |||
9b8735a87a | |||
6c10e03ce5 | |||
7ad3bb9e61 | |||
5dcf639d33 | |||
2da3b0192f | |||
ada8158caf | |||
2071939c5e | |||
f082278217 | |||
abe37add6e | |||
bc07ca94c0 | |||
728c962684 | |||
ca99add006 | |||
f771027138 | |||
8f1c0044b9 | |||
87cd828b5b | |||
46ccd9f654 | |||
b1927f9de1 | |||
b592e0e592 | |||
3b6cd93749 | |||
3a24c01f03 | |||
b7c80841a9 | |||
95645f59a3 | |||
9138e342fd | |||
692ed70ea9 | |||
3430507ae4 | |||
844f3ce9c8 | |||
03ffb90186 | |||
5f9bb59b95 | |||
7163efdd1e | |||
65fb24ff1b | |||
612cfbf313 | |||
4596d721e6 | |||
911206eed5 | |||
cb5cdca99d | |||
e54ae46537 | |||
7c978d4e70 | |||
d905b4387d | |||
c31c825a74 | |||
6505a9fefd | |||
de74f812ee | |||
82bb3f987d | |||
a35a616de7 | |||
ecf99bf9e7 | |||
cfaf354fe3 | |||
0b51e98d91 | |||
fa51251235 | |||
21fcd0bd35 | |||
96d558dd0c | |||
b6e8dcab81 | |||
fa78c53114 | |||
2f6b14ab6e | |||
2dd455ef83 | |||
306610da8e | |||
59ac1727f7 | |||
c974b3252d | |||
480933484f | |||
0cbd8a13a3 | |||
ae6c76fe54 | |||
1f098f2eaf | |||
11977e7017 |
@ -3,7 +3,7 @@ TITLE prefs.js cleaner
|
|||||||
|
|
||||||
REM ### prefs.js cleaner for Windows
|
REM ### prefs.js cleaner for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 2.3
|
REM ## version: 2.4
|
||||||
|
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ ECHO:
|
|||||||
ECHO ########################################
|
ECHO ########################################
|
||||||
ECHO #### prefs.js cleaner for Windows ####
|
ECHO #### prefs.js cleaner for Windows ####
|
||||||
ECHO #### by claustromaniac ####
|
ECHO #### by claustromaniac ####
|
||||||
ECHO #### v2.3 ####
|
ECHO #### v2.4 ####
|
||||||
ECHO ########################################
|
ECHO ########################################
|
||||||
ECHO:
|
ECHO:
|
||||||
CALL :message "This script should be run from your Firefox profile directory."
|
CALL :message "This script should be run from your Firefox profile directory."
|
||||||
@ -28,6 +28,7 @@ IF ERRORLEVEL 3 (EXIT /B)
|
|||||||
IF ERRORLEVEL 2 (GOTO :showhelp)
|
IF ERRORLEVEL 2 (GOTO :showhelp)
|
||||||
IF NOT EXIST "user.js" (CALL :abort "user.js not found in the current directory." 30)
|
IF NOT EXIST "user.js" (CALL :abort "user.js not found in the current directory." 30)
|
||||||
IF NOT EXIST "prefs.js" (CALL :abort "prefs.js not found in the current directory." 30)
|
IF NOT EXIST "prefs.js" (CALL :abort "prefs.js not found in the current directory." 30)
|
||||||
|
CALL :strlenCheck
|
||||||
CALL :FFcheck
|
CALL :FFcheck
|
||||||
CALL :message "Backing up prefs.js..."
|
CALL :message "Backing up prefs.js..."
|
||||||
SET "_time=%time: =0%"
|
SET "_time=%time: =0%"
|
||||||
@ -50,6 +51,21 @@ ECHO:
|
|||||||
ECHO: %~1
|
ECHO: %~1
|
||||||
ECHO:
|
ECHO:
|
||||||
GOTO :EOF
|
GOTO :EOF
|
||||||
|
REM ### string length Check Function ####
|
||||||
|
:strlenCheck
|
||||||
|
SET /a cnt=0
|
||||||
|
setlocal ENABLEDELAYEDEXPANSION
|
||||||
|
FOR /F "tokens=1,* delims=:" %%G IN ('FINDSTR /N "^" prefs.js') DO (
|
||||||
|
ECHO:%%H >nul
|
||||||
|
SET /a cnt += 1
|
||||||
|
IF /I "%%G" NEQ "!cnt!" (
|
||||||
|
ECHO:
|
||||||
|
CALL :message "ERROR: line !cnt! in prefs.js is too long."
|
||||||
|
(CALL :abort "Aborting ..." 30)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
endlocal
|
||||||
|
GOTO :EOF
|
||||||
REM ####### Firefox Check Function ######
|
REM ####### Firefox Check Function ######
|
||||||
:FFcheck
|
:FFcheck
|
||||||
TASKLIST /FI "IMAGENAME eq firefox.exe" 2>NUL | FIND /I /N "firefox.exe">NUL
|
TASKLIST /FI "IMAGENAME eq firefox.exe" 2>NUL | FIND /I /N "firefox.exe">NUL
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## prefs.js cleaner for Linux/Mac
|
## prefs.js cleaner for Linux/Mac
|
||||||
## author: @claustromaniac
|
## author: @claustromaniac
|
||||||
## version: 1.3
|
## version: 1.4
|
||||||
|
|
||||||
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
||||||
|
|
||||||
@ -20,15 +20,22 @@ cd "$(dirname "${sfp}")"
|
|||||||
fQuit() {
|
fQuit() {
|
||||||
## change directory back to the original working directory
|
## change directory back to the original working directory
|
||||||
cd "${currdir}"
|
cd "${currdir}"
|
||||||
echo -e "\n$2"
|
[ $1 -eq 0 ] && echo -e "\n$2" || echo -e "\n$2" >&2
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fUsage() {
|
||||||
|
echo -e "\nUsage: $0 [-s]"
|
||||||
|
echo -e "
|
||||||
|
Optional Arguments:
|
||||||
|
-s Start immediately"
|
||||||
|
}
|
||||||
|
|
||||||
fFF_check() {
|
fFF_check() {
|
||||||
# there are many ways to see if firefox is running or not, some more reliable than others
|
# 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
|
# this isn't elegant and might not be future-proof but should at least be compatible with any environment
|
||||||
while [ -e lock ]; do
|
while [ -e lock ]; do
|
||||||
echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n"
|
echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n" >&2
|
||||||
read -p "Press any key to continue."
|
read -p "Press any key to continue."
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -54,19 +61,7 @@ fClean() {
|
|||||||
done < "$1" > prefs.js
|
done < "$1" > prefs.js
|
||||||
}
|
}
|
||||||
|
|
||||||
echo -e "\n\n"
|
fStart() {
|
||||||
echo " ╔══════════════════════════╗"
|
|
||||||
echo " ║ prefs.js cleaner ║"
|
|
||||||
echo " ║ by claustromaniac ║"
|
|
||||||
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."
|
|
||||||
echo "This will allow inactive preferences to be reset to their default values."
|
|
||||||
echo -e "\nThis Firefox profile shouldn't be in use during the process.\n"
|
|
||||||
select option in Start Help Exit; do
|
|
||||||
case $option in
|
|
||||||
Start)
|
|
||||||
if [ ! -e user.js ]; then
|
if [ ! -e user.js ]; then
|
||||||
fQuit 1 "user.js not found in the current directory."
|
fQuit 1 "user.js not found in the current directory."
|
||||||
elif [ ! -e prefs.js ]; then
|
elif [ ! -e prefs.js ]; then
|
||||||
@ -80,8 +75,28 @@ select option in Start Help Exit; do
|
|||||||
echo "Cleaning prefs.js..."
|
echo "Cleaning prefs.js..."
|
||||||
fClean "$bakfile"
|
fClean "$bakfile"
|
||||||
fQuit 0 "All done!"
|
fQuit 0 "All done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -e "\n\n"
|
||||||
|
echo " ╔══════════════════════════╗"
|
||||||
|
echo " ║ prefs.js cleaner ║"
|
||||||
|
echo " ║ by claustromaniac ║"
|
||||||
|
echo " ║ v1.4 ║"
|
||||||
|
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."
|
||||||
|
echo "This will allow inactive preferences to be reset to their default values."
|
||||||
|
echo -e "\nThis Firefox profile shouldn't be in use during the process.\n"
|
||||||
|
|
||||||
|
[ "$1" == '-s' ] && fStart
|
||||||
|
|
||||||
|
select option in Start Help Exit; do
|
||||||
|
case $option in
|
||||||
|
Start)
|
||||||
|
fStart
|
||||||
;;
|
;;
|
||||||
Help)
|
Help)
|
||||||
|
fUsage
|
||||||
echo -e "\nThis script creates a backup of your prefs.js file before doing anything."
|
echo -e "\nThis script creates a backup of your prefs.js file before doing anything."
|
||||||
echo -e "It should be safe, but you can follow these steps if something goes wrong:\n"
|
echo -e "It should be safe, but you can follow these steps if something goes wrong:\n"
|
||||||
echo "1. Make sure Firefox is closed."
|
echo "1. Make sure Firefox is closed."
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/***
|
/***
|
||||||
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
||||||
|
|
||||||
Last updated: 30-Dec-2020
|
Last updated: 25-May-2021
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
let ops = [
|
let ops = [
|
||||||
/* removed in arkenfox user.js v52-57 */
|
/* removed in arkenfox user.js */
|
||||||
/* 52-alpha */
|
/* 52-alpha */
|
||||||
'browser.search.reset.enabled',
|
'browser.search.reset.enabled',
|
||||||
'browser.search.reset.whitelist',
|
'browser.search.reset.whitelist',
|
||||||
@ -26,7 +26,6 @@
|
|||||||
'extensions.pocket.api', // covered by extensions.pocket.enabled
|
'extensions.pocket.api', // covered by extensions.pocket.enabled
|
||||||
'extensions.pocket.oAuthConsumerKey', // ditto
|
'extensions.pocket.oAuthConsumerKey', // ditto
|
||||||
'extensions.pocket.site', // ditto
|
'extensions.pocket.site', // ditto
|
||||||
/* 56-alpha: none */
|
|
||||||
/* 57-alpha */
|
/* 57-alpha */
|
||||||
'geo.wifi.xhr.timeout', // covered by geo.enabled
|
'geo.wifi.xhr.timeout', // covered by geo.enabled
|
||||||
'browser.search.geoip.timeout', // ditto
|
'browser.search.geoip.timeout', // ditto
|
||||||
@ -128,7 +127,6 @@
|
|||||||
'browser.cache.disk.smart_size.enabled',
|
'browser.cache.disk.smart_size.enabled',
|
||||||
'browser.cache.disk.smart_size.first_run',
|
'browser.cache.disk.smart_size.first_run',
|
||||||
'browser.cache.offline.insecure.enable',
|
'browser.cache.offline.insecure.enable',
|
||||||
'browser.safebrowsing.downloads.remote.url',
|
|
||||||
'browser.safebrowsing.provider.google.reportMalwareMistakeURL',
|
'browser.safebrowsing.provider.google.reportMalwareMistakeURL',
|
||||||
'browser.safebrowsing.provider.google.reportPhishMistakeURL',
|
'browser.safebrowsing.provider.google.reportPhishMistakeURL',
|
||||||
'browser.safebrowsing.provider.google.reportURL',
|
'browser.safebrowsing.provider.google.reportURL',
|
||||||
@ -179,7 +177,6 @@
|
|||||||
'browser.safebrowsing.provider.mozilla.updateURL',
|
'browser.safebrowsing.provider.mozilla.updateURL',
|
||||||
'browser.urlbar.userMadeSearchSuggestionsChoice',
|
'browser.urlbar.userMadeSearchSuggestionsChoice',
|
||||||
'privacy.trackingprotection.annotate_channels',
|
'privacy.trackingprotection.annotate_channels',
|
||||||
'privacy.trackingprotection.enabled',
|
|
||||||
'privacy.trackingprotection.lower_network_priority',
|
'privacy.trackingprotection.lower_network_priority',
|
||||||
'privacy.trackingprotection.pbmode.enabled',
|
'privacy.trackingprotection.pbmode.enabled',
|
||||||
'services.blocklist.addons.collection',
|
'services.blocklist.addons.collection',
|
||||||
@ -231,7 +228,16 @@
|
|||||||
'security.ssl3.dhe_rsa_aes_256_sha',
|
'security.ssl3.dhe_rsa_aes_256_sha',
|
||||||
/* 84-beta */
|
/* 84-beta */
|
||||||
'browser.newtabpage.activity-stream.asrouter.providers.snippets',
|
'browser.newtabpage.activity-stream.asrouter.providers.snippets',
|
||||||
'layout.css.visited_links_enabled',
|
/* 85-beta */
|
||||||
|
'network.http.redirection-limit',
|
||||||
|
/* 86-beta */
|
||||||
|
'media.gmp-widevinecdm.visible',
|
||||||
|
/* 87-beta */
|
||||||
|
'browser.send_pings.require_same_host',
|
||||||
|
/* 88-beta */
|
||||||
|
'webgl.min_capability_mode',
|
||||||
|
/* 89-beta */
|
||||||
|
'security.ssl.enable_ocsp_stapling',
|
||||||
/* reset parrot: check your open about:config after running the script */
|
/* reset parrot: check your open about:config after running the script */
|
||||||
'_user.js.parrot'
|
'_user.js.parrot'
|
||||||
]
|
]
|
||||||
|
28
updater.bat
28
updater.bat
@ -3,10 +3,10 @@ TITLE arkenfox user.js updater
|
|||||||
|
|
||||||
REM ## arkenfox user.js updater for Windows
|
REM ## arkenfox user.js updater for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 4.12
|
REM ## version: 4.14
|
||||||
REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
|
REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
|
||||||
|
|
||||||
SET v=4.12
|
SET v=4.14
|
||||||
|
|
||||||
VERIFY ON
|
VERIFY ON
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
@ -28,6 +28,15 @@ SHIFT
|
|||||||
GOTO parse
|
GOTO parse
|
||||||
:endparse
|
:endparse
|
||||||
|
|
||||||
|
FOR /F %%i IN ('PowerShell -Command "[Enum]::GetNames([Net.SecurityProtocolType]) -contains 'Tls12'"') DO (
|
||||||
|
IF "%%i" == "False" (
|
||||||
|
CALL :message "Your PowerShell version doesn't support TLS1.2 ^!"
|
||||||
|
ECHO: Instructions to update PowerShell are on the arkenfox wiki
|
||||||
|
PAUSE
|
||||||
|
EXIT
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
IF DEFINED _updateb (
|
IF DEFINED _updateb (
|
||||||
REM The normal flow here goes from phase 1 to phase 2 and then phase 3.
|
REM The normal flow here goes from phase 1 to phase 2 and then phase 3.
|
||||||
IF NOT "!_myname:~0,9!"=="[updated]" (
|
IF NOT "!_myname:~0,9!"=="[updated]" (
|
||||||
@ -51,9 +60,7 @@ IF DEFINED _updateb (
|
|||||||
CALL :message "Updating script..."
|
CALL :message "Updating script..."
|
||||||
REM Uncomment the next line and comment out the PowerShell call for testing.
|
REM Uncomment the next line and comment out the PowerShell call for testing.
|
||||||
REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul
|
REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul
|
||||||
(
|
CALL :psdownload https://raw.githubusercontent.com/arkenfox/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" (
|
IF EXIST "[updated]!_myname!.bat" (
|
||||||
START /min CMD /C "[updated]!_myname!.bat" !_myparams!
|
START /min CMD /C "[updated]!_myname!.bat" !_myparams!
|
||||||
) ELSE (
|
) ELSE (
|
||||||
@ -132,9 +139,7 @@ IF DEFINED _log (
|
|||||||
)
|
)
|
||||||
IF EXIST user.js.new (DEL /F "user.js.new")
|
IF EXIST user.js.new (DEL /F "user.js.new")
|
||||||
CALL :message "Retrieving latest user.js file from github repository..."
|
CALL :message "Retrieving latest user.js file from github repository..."
|
||||||
(
|
CALL :psdownload https://raw.githubusercontent.com/arkenfox/user.js/master/user.js "user.js.new"
|
||||||
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 EXIST user.js.new (
|
||||||
IF DEFINED _rfpalts (
|
IF DEFINED _rfpalts (
|
||||||
CALL :message "Activating RFP Alternatives section..."
|
CALL :message "Activating RFP Alternatives section..."
|
||||||
@ -218,6 +223,13 @@ IF NOT "2"=="%_log%" (ECHO:)
|
|||||||
ENDLOCAL
|
ENDLOCAL
|
||||||
GOTO :EOF
|
GOTO :EOF
|
||||||
|
|
||||||
|
::::::::::::::: Download :::::::::::::::
|
||||||
|
:psdownload
|
||||||
|
(
|
||||||
|
PowerShell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; (New-Object Net.WebClient).DownloadFile('%~1', '%~2')"
|
||||||
|
) >nul 2>&1
|
||||||
|
GOTO :EOF
|
||||||
|
|
||||||
::::::::::::::: Activate Section :::::::::::::::
|
::::::::::::::: Activate Section :::::::::::::::
|
||||||
:activate
|
:activate
|
||||||
:: arg1 = file
|
:: arg1 = file
|
||||||
|
53
updater.sh
53
updater.sh
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## arkenfox user.js updater for macOS and Linux
|
## arkenfox user.js updater for macOS and Linux
|
||||||
|
|
||||||
## version: 2.9
|
## version: 3.2
|
||||||
## Author: Pat Johnson (@overdodactyl)
|
## Author: Pat Johnson (@overdodactyl)
|
||||||
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
||||||
|
|
||||||
@ -103,7 +103,6 @@ Optional Arguments:
|
|||||||
# File Handling #
|
# File Handling #
|
||||||
#########################
|
#########################
|
||||||
|
|
||||||
# Download files
|
|
||||||
download_file () { # expects URL as argument ($1)
|
download_file () { # expects URL as argument ($1)
|
||||||
declare -r tf=$(mktemp)
|
declare -r tf=$(mktemp)
|
||||||
|
|
||||||
@ -122,36 +121,33 @@ open_file () { # expects one argument: file_path
|
|||||||
|
|
||||||
readIniFile () { # expects one argument: absolute path of profiles.ini
|
readIniFile () { # expects one argument: absolute path of profiles.ini
|
||||||
declare -r inifile="$1"
|
declare -r inifile="$1"
|
||||||
declare -r tfile=$(mktemp)
|
|
||||||
|
|
||||||
if [ $(grep '^\[Profile' "$inifile" | wc -l) == "1" ]; then ### only 1 profile found
|
# tempIni will contain: [ProfileX], Name=, IsRelative= and Path= (and Default= if present) of the only (if) or the selected (else) profile
|
||||||
grep '^\[Profile' -A 4 "$inifile" | grep -v '^\[Profile' > $tfile
|
if [ $(grep -c '^\[Profile' "${inifile}") -eq "1" ]; then ### only 1 profile found
|
||||||
|
tempIni="$(grep '^\[Profile' -A 4 "${inifile}")"
|
||||||
else
|
else
|
||||||
grep -E -v '^\[General\]|^StartWithLastProfile=|^IsRelative=' "$inifile"
|
echo -e "Profiles found:\n––––––––––––––––––––––––––––––"
|
||||||
echo ''
|
## cmd-substitution to strip trailing newlines and in quotes to keep internal ones:
|
||||||
|
echo "$(grep --color=never -E 'Default=[^1]|\[Profile[0-9]*\]|Name=|Path=|^$' "${inifile}")"
|
||||||
|
echo '––––––––––––––––––––––––––––––'
|
||||||
read -p 'Select the profile number ( 0 for Profile0, 1 for Profile1, etc ) : ' -r
|
read -p 'Select the profile number ( 0 for Profile0, 1 for Profile1, etc ) : ' -r
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
if [[ $REPLY =~ ^(0|[1-9][0-9]*)$ ]]; then
|
if [[ $REPLY =~ ^(0|[1-9][0-9]*)$ ]]; then
|
||||||
grep '^\[Profile'${REPLY} -A 4 "$inifile" | grep -v '^\[Profile'${REPLY} > $tfile
|
tempIni="$(grep "^\[Profile${REPLY}" -A 4 "${inifile}")" || {
|
||||||
if [[ "$?" != "0" ]]; then
|
echo -e "${RED}Profile${REPLY} does not exist!${NC}" && exit 1
|
||||||
echo "Profile${REPLY} does not exist!" && exit 1
|
}
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "Invalid selection!" && exit 1
|
echo -e "${RED}Invalid selection!${NC}" && exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
declare -r profpath=$(grep '^Path=' $tfile)
|
# extracting 0 or 1 from the "IsRelative=" line
|
||||||
declare -r pathisrel=$(grep '^IsRelative=' $tfile)
|
declare -r pathisrel=$(sed -n 's/^IsRelative=\([01]\)$/\1/p' <<< "${tempIni}")
|
||||||
|
|
||||||
rm "$tfile"
|
# extracting only the path itself, excluding "Path="
|
||||||
|
PROFILE_PATH=$(sed -n 's/^Path=\(.*\)$/\1/p' <<< "${tempIni}")
|
||||||
# update global variable
|
# update global variable if path is relative
|
||||||
if [[ ${pathisrel#*=} == "1" ]]; then
|
[[ ${pathisrel} == "1" ]] && PROFILE_PATH="$(dirname "${inifile}")/${PROFILE_PATH}"
|
||||||
PROFILE_PATH="$(dirname "$inifile")/${profpath#*=}"
|
|
||||||
else
|
|
||||||
PROFILE_PATH="${profpath#*=}"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getProfilePath () {
|
getProfilePath () {
|
||||||
@ -161,16 +157,14 @@ getProfilePath () {
|
|||||||
if [ "$PROFILE_PATH" = false ]; then
|
if [ "$PROFILE_PATH" = false ]; then
|
||||||
PROFILE_PATH="$SCRIPT_DIR"
|
PROFILE_PATH="$SCRIPT_DIR"
|
||||||
elif [ "$PROFILE_PATH" = 'list' ]; then
|
elif [ "$PROFILE_PATH" = 'list' ]; then
|
||||||
local ini=''
|
|
||||||
if [[ -f "$f1" ]]; then
|
if [[ -f "$f1" ]]; then
|
||||||
ini="$f1"
|
readIniFile "$f1" # updates PROFILE_PATH or exits on error
|
||||||
elif [[ -f "$f2" ]]; then
|
elif [[ -f "$f2" ]]; then
|
||||||
ini="$f2"
|
readIniFile "$f2"
|
||||||
else
|
else
|
||||||
echo -e "${RED}Error: Sorry, -l is not supported for your OS${NC}"
|
echo -e "${RED}Error: Sorry, -l is not supported for your OS${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
readIniFile "$ini" # updates PROFILE_PATH or exits on error
|
|
||||||
#else
|
#else
|
||||||
# PROFILE_PATH already set by user with -p
|
# PROFILE_PATH already set by user with -p
|
||||||
fi
|
fi
|
||||||
@ -191,9 +185,7 @@ get_updater_version () {
|
|||||||
# -d: New version will not be looked for and update will not occur
|
# -d: New version will not be looked for and update will not occur
|
||||||
# -u: Check for update, if available, execute without asking
|
# -u: Check for update, if available, execute without asking
|
||||||
update_updater () {
|
update_updater () {
|
||||||
if [ $UPDATE = 'no' ]; then
|
[ $UPDATE = 'no' ] && return 0 # User signified not to check for updates
|
||||||
return 0 # User signified not to check for updates
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/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
|
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
|
||||||
@ -214,7 +206,6 @@ update_updater () {
|
|||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# Update user.js #
|
# Update user.js #
|
||||||
#########################
|
#########################
|
||||||
@ -245,7 +236,7 @@ add_override () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
remove_comments () { # expects 2 arguments: from-file and to-file
|
remove_comments () { # expects 2 arguments: from-file and to-file
|
||||||
sed -e 's/^[[:space:]]*\/\/.*$//' -e '/^\/\*/,/\*\//d' -e '/^[[:space:]]*$/d' -e 's/);[[:space:]]*\/\/.*/);/' "$1" > "$2"
|
sed -e '/^\/\*.*\*\/[[:space:]]*$/d' -e '/^\/\*/,/\*\//d' -e 's|^[[:space:]]*//.*$||' -e '/^[[:space:]]*$/d' -e 's|);[[:space:]]*//.*|);|' "$1" > "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Applies latest version of user.js and any custom overrides
|
# Applies latest version of user.js and any custom overrides
|
||||||
|
321
user.js
321
user.js
@ -1,7 +1,7 @@
|
|||||||
/******
|
/******
|
||||||
* name: arkenfox user.js
|
* name: arkenfox user.js
|
||||||
* date: 05 Jan 2021
|
* date: 15 June 2021
|
||||||
* version 84
|
* version 89
|
||||||
* url: https://github.com/arkenfox/user.js
|
* url: https://github.com/arkenfox/user.js
|
||||||
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
||||||
|
|
||||||
@ -18,6 +18,7 @@
|
|||||||
* Some site breakage and unintended consequences will happen. Everyone's experience will differ
|
* Some site breakage and unintended consequences will happen. Everyone's experience will differ
|
||||||
e.g. some user data is erased on close (section 2800), change this to suit your needs
|
e.g. some user data is erased on close (section 2800), change this to suit your needs
|
||||||
* While not 100% definitive, search for "[SETUP" tags
|
* While not 100% definitive, search for "[SETUP" tags
|
||||||
|
e.g. third party images/videos not loading on some sites? check 1603
|
||||||
* Take the wiki link in step 2 and read the Troubleshooting entry
|
* Take the wiki link in step 2 and read the Troubleshooting entry
|
||||||
5. Some tag info
|
5. Some tag info
|
||||||
[SETUP-SECURITY] it's one item, read it
|
[SETUP-SECURITY] it's one item, read it
|
||||||
@ -37,7 +38,8 @@
|
|||||||
- If you are not using arkenfox v78... (not a definitive list)
|
- If you are not using arkenfox v78... (not a definitive list)
|
||||||
- 1244: HTTPS-Only mode is enabled
|
- 1244: HTTPS-Only mode is enabled
|
||||||
- 1401: document fonts is inactive as it is now covered by RFP in FF80+
|
- 1401: document fonts is inactive as it is now covered by RFP in FF80+
|
||||||
- 4600: some prefs may apply even if you use RFP (currently none apply as of FF84)
|
- 2626: non-native widget theme is enforced
|
||||||
|
- 4600: some prefs may apply even if you use RFP
|
||||||
- 9999: switch the appropriate deprecated section(s) back on
|
- 9999: switch the appropriate deprecated section(s) back on
|
||||||
|
|
||||||
* INDEX:
|
* INDEX:
|
||||||
@ -82,9 +84,8 @@
|
|||||||
user_pref("_user.js.parrot", "START: Oh yes, the Norwegian Blue... what's wrong with it?");
|
user_pref("_user.js.parrot", "START: Oh yes, the Norwegian Blue... what's wrong with it?");
|
||||||
|
|
||||||
/* 0000: disable about:config warning
|
/* 0000: disable about:config warning
|
||||||
* FF71-72: chrome://global/content/config.xul
|
* FF73-86: chrome://global/content/config.xhtml ***/
|
||||||
* FF73+: chrome://global/content/config.xhtml ***/
|
user_pref("general.warnOnAboutConfig", false); // XHTML version
|
||||||
user_pref("general.warnOnAboutConfig", false); // XUL/XHTML version
|
|
||||||
user_pref("browser.aboutConfig.showWarning", false); // HTML version [FF71+]
|
user_pref("browser.aboutConfig.showWarning", false); // HTML version [FF71+]
|
||||||
|
|
||||||
/*** [SECTION 0100]: STARTUP ***/
|
/*** [SECTION 0100]: STARTUP ***/
|
||||||
@ -92,7 +93,8 @@ user_pref("_user.js.parrot", "0100 syntax error: the parrot's dead!");
|
|||||||
/* 0101: disable default browser check
|
/* 0101: disable default browser check
|
||||||
* [SETTING] General>Startup>Always check if Firefox is your default browser ***/
|
* [SETTING] General>Startup>Always check if Firefox is your default browser ***/
|
||||||
user_pref("browser.shell.checkDefaultBrowser", false);
|
user_pref("browser.shell.checkDefaultBrowser", false);
|
||||||
/* 0102: set START page (0=blank, 1=home, 2=last visited page, 3=resume previous session)
|
/* 0102: set startup page [SETUP-CHROME]
|
||||||
|
* 0=blank, 1=home, 2=last visited page, 3=resume previous session
|
||||||
* [NOTE] Session Restore is not used in PB mode (0110) and is cleared with history (2803, 2804)
|
* [NOTE] Session Restore is not used in PB mode (0110) and is cleared with history (2803, 2804)
|
||||||
* [SETTING] General>Startup>Restore previous session ***/
|
* [SETTING] General>Startup>Restore previous session ***/
|
||||||
user_pref("browser.startup.page", 0);
|
user_pref("browser.startup.page", 0);
|
||||||
@ -115,14 +117,12 @@ user_pref("browser.newtabpage.activity-stream.telemetry", false);
|
|||||||
/* 0105b: disable Activity Stream Snippets
|
/* 0105b: disable Activity Stream Snippets
|
||||||
* Runs code received from a server (aka Remote Code Execution) and sends information back to a metrics server
|
* 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/ ***/
|
* [1] https://abouthome-snippets-service.readthedocs.io/ ***/
|
||||||
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
|
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); // [DEFAULT: false FF89+]
|
||||||
/* 0105c: disable Activity Stream Top Stories, Pocket-based and/or sponsored content ***/
|
/* 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.feeds.section.topstories", false);
|
||||||
user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false);
|
user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false);
|
||||||
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
|
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
|
||||||
user_pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); // [FF66+]
|
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
|
/* 0105e: clear default topsites
|
||||||
* [NOTE] This does not block you from adding your own ***/
|
* [NOTE] This does not block you from adding your own ***/
|
||||||
user_pref("browser.newtabpage.activity-stream.default.sites", "");
|
user_pref("browser.newtabpage.activity-stream.default.sites", "");
|
||||||
@ -142,13 +142,13 @@ user_pref("browser.newtabpage.activity-stream.default.sites", "");
|
|||||||
user_pref("_user.js.parrot", "0200 syntax error: the parrot's definitely deceased!");
|
user_pref("_user.js.parrot", "0200 syntax error: the parrot's definitely deceased!");
|
||||||
/** GEOLOCATION ***/
|
/** GEOLOCATION ***/
|
||||||
/* 0201: disable Location-Aware Browsing
|
/* 0201: disable Location-Aware Browsing
|
||||||
* [NOTE] Best left at default "true", fingerprintable, is already behind a prompt (see 0202)
|
* [NOTE] Best left at default "true", fingerprintable, already behind a prompt (see 0202)
|
||||||
* [1] https://www.mozilla.org/firefox/geolocation/ ***/
|
* [1] https://www.mozilla.org/firefox/geolocation/ ***/
|
||||||
// user_pref("geo.enabled", false);
|
// user_pref("geo.enabled", false);
|
||||||
/* 0202: set a default permission for Location (see 0201) [FF58+]
|
/* 0202: set a default permission for Location (see 0201) [FF58+]
|
||||||
* 0=always ask (default), 1=allow, 2=block
|
* 0=always ask (default), 1=allow, 2=block
|
||||||
* [NOTE] Best left at default "always ask", fingerprintable via Permissions API
|
* [NOTE] Best left at default "always ask", fingerprintable via Permissions API
|
||||||
* [SETTING] to add site exceptions: Page Info>Permissions>Access Your Location
|
* [SETTING] to add site exceptions: Ctrl+I>Permissions>Access Your Location
|
||||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Location>Settings ***/
|
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Location>Settings ***/
|
||||||
// user_pref("permissions.default.geo", 2);
|
// user_pref("permissions.default.geo", 2);
|
||||||
/* 0203: use Mozilla geolocation service instead of Google when geolocation is enabled [FF74+]
|
/* 0203: use Mozilla geolocation service instead of Google when geolocation is enabled [FF74+]
|
||||||
@ -201,10 +201,6 @@ user_pref("app.update.auto", false);
|
|||||||
/* 0308: disable search engine updates (e.g. OpenSearch)
|
/* 0308: disable search engine updates (e.g. OpenSearch)
|
||||||
* [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/
|
* [NOTE] This does not affect Mozilla's built-in or Web Extension search engines ***/
|
||||||
user_pref("browser.search.update", false);
|
user_pref("browser.search.update", false);
|
||||||
/* 0309: disable sending Flash crash reports ***/
|
|
||||||
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
|
|
||||||
/* 0310: disable sending the URL of the website where a plugin crashed ***/
|
|
||||||
user_pref("dom.ipc.plugins.reportCrashURL", false);
|
|
||||||
/* 0320: disable about:addons' Recommendations pane (uses Google Analytics) ***/
|
/* 0320: disable about:addons' Recommendations pane (uses Google Analytics) ***/
|
||||||
user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF]
|
user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF]
|
||||||
/* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/
|
/* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/
|
||||||
@ -250,10 +246,10 @@ user_pref("browser.discovery.enabled", false);
|
|||||||
/* 0350: disable Crash Reports ***/
|
/* 0350: disable Crash Reports ***/
|
||||||
user_pref("breakpad.reportURL", "");
|
user_pref("breakpad.reportURL", "");
|
||||||
user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+]
|
user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+]
|
||||||
user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+]
|
// user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+] [DEFAULT: false]
|
||||||
/* 0351: disable backlogged Crash Reports
|
/* 0351: enforce no submission of backlogged Crash Reports [FF58+]
|
||||||
* [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports ***/
|
* [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports ***/
|
||||||
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [FF58+]
|
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [DEFAULT: false]
|
||||||
/* 0390: disable Captive Portal detection
|
/* 0390: disable Captive Portal detection
|
||||||
* [1] https://www.eff.org/deeplinks/2017/08/how-captive-portals-interfere-wireless-security-and-privacy
|
* [1] https://www.eff.org/deeplinks/2017/08/how-captive-portals-interfere-wireless-security-and-privacy
|
||||||
* [2] https://wiki.mozilla.org/Necko/CaptivePortal ***/
|
* [2] https://wiki.mozilla.org/Necko/CaptivePortal ***/
|
||||||
@ -278,9 +274,9 @@ user_pref("extensions.blocklist.enabled", true); // [DEFAULT: true]
|
|||||||
Firefox also takes measures such as striping out identifying parameters and since SBv4 (FF57+)
|
Firefox also takes measures such as striping out identifying parameters and since SBv4 (FF57+)
|
||||||
doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity)
|
doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity)
|
||||||
|
|
||||||
#Required reading [#] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/
|
[1] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/
|
||||||
[1] https://wiki.mozilla.org/Security/Safe_Browsing
|
[2] https://wiki.mozilla.org/Security/Safe_Browsing
|
||||||
[2] https://support.mozilla.org/en-US/kb/how-does-phishing-and-malware-protection-work
|
[3] https://support.mozilla.org/en-US/kb/how-does-phishing-and-malware-protection-work
|
||||||
***/
|
***/
|
||||||
/* 0410: disable SB (Safe Browsing)
|
/* 0410: disable SB (Safe Browsing)
|
||||||
* [WARNING] Do this at your own risk! These are the master switches.
|
* [WARNING] Do this at your own risk! These are the master switches.
|
||||||
@ -313,8 +309,6 @@ user_pref("browser.safebrowsing.downloads.remote.url", "");
|
|||||||
built-in features to Firefox, that are hidden from the about:addons UI.
|
built-in features to Firefox, that are hidden from the about:addons UI.
|
||||||
To view your System Add-ons go to about:support, they are listed under "Firefox Features"
|
To view your System Add-ons go to about:support, they are listed under "Firefox Features"
|
||||||
|
|
||||||
Some System Add-ons have no on-off prefs. Instead you can manually remove them. Note that app
|
|
||||||
updates will restore them. They may also be updated and possibly restored automatically (see 0505)
|
|
||||||
* Portable: "...\App\Firefox64\browser\features\" (or "App\Firefox\etc" for 32bit)
|
* Portable: "...\App\Firefox64\browser\features\" (or "App\Firefox\etc" for 32bit)
|
||||||
* Windows: "...\Program Files\Mozilla\browser\features" (or "Program Files (X86)\etc" for 32bit)
|
* Windows: "...\Program Files\Mozilla\browser\features" (or "Program Files (X86)\etc" for 32bit)
|
||||||
* Mac: "...\Applications\Firefox\Contents\Resources\browser\features\"
|
* Mac: "...\Applications\Firefox\Contents\Resources\browser\features\"
|
||||||
@ -322,7 +316,7 @@ user_pref("browser.safebrowsing.downloads.remote.url", "");
|
|||||||
* Linux: "/usr/lib/firefox/browser/features" (or similar)
|
* Linux: "/usr/lib/firefox/browser/features" (or similar)
|
||||||
|
|
||||||
[1] https://firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html
|
[1] https://firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html
|
||||||
[2] https://dxr.mozilla.org/mozilla-central/source/browser/extensions
|
[2] https://searchfox.org/mozilla-central/source/browser/extensions
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "0500 syntax error: the parrot's cashed in 'is chips!");
|
user_pref("_user.js.parrot", "0500 syntax error: the parrot's cashed in 'is chips!");
|
||||||
/* 0503: disable Normandy/Shield [FF60+]
|
/* 0503: disable Normandy/Shield [FF60+]
|
||||||
@ -349,9 +343,9 @@ user_pref("extensions.formautofill.available", "off"); // [FF56+]
|
|||||||
user_pref("extensions.formautofill.creditCards.available", false); // [FF57+]
|
user_pref("extensions.formautofill.creditCards.available", false); // [FF57+]
|
||||||
user_pref("extensions.formautofill.creditCards.enabled", false); // [FF56+]
|
user_pref("extensions.formautofill.creditCards.enabled", false); // [FF56+]
|
||||||
user_pref("extensions.formautofill.heuristics.enabled", false); // [FF55+]
|
user_pref("extensions.formautofill.heuristics.enabled", false); // [FF55+]
|
||||||
/* 0518: disable Web Compatibility Reporter [FF56+]
|
/* 0518: enforce disabling of Web Compatibility Reporter [FF56+]
|
||||||
* Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla ***/
|
* Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla ***/
|
||||||
user_pref("extensions.webcompat-reporter.enabled", false);
|
user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false]
|
||||||
|
|
||||||
/*** [SECTION 0600]: BLOCK IMPLICIT OUTBOUND [not explicitly asked for - e.g. clicked on] ***/
|
/*** [SECTION 0600]: BLOCK IMPLICIT OUTBOUND [not explicitly asked for - e.g. clicked on] ***/
|
||||||
user_pref("_user.js.parrot", "0600 syntax error: the parrot's no more!");
|
user_pref("_user.js.parrot", "0600 syntax error: the parrot's no more!");
|
||||||
@ -361,17 +355,16 @@ user_pref("network.prefetch-next", false);
|
|||||||
/* 0602: disable DNS prefetching
|
/* 0602: disable DNS prefetching
|
||||||
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
|
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
|
||||||
user_pref("network.dns.disablePrefetch", true);
|
user_pref("network.dns.disablePrefetch", true);
|
||||||
user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true]
|
// user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true]
|
||||||
/* 0603: disable predictor / prefetching ***/
|
/* 0603: disable predictor / prefetching ***/
|
||||||
user_pref("network.predictor.enabled", false);
|
user_pref("network.predictor.enabled", false);
|
||||||
user_pref("network.predictor.enable-prefetch", false); // [FF48+]
|
// user_pref("network.predictor.enable-prefetch", false); // [FF48+] [DEFAULT: false]
|
||||||
/* 0605: disable link-mouseover opening connection to linked server
|
/* 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 ***/
|
* [1] https://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests ***/
|
||||||
user_pref("network.http.speculative-parallel-limit", 0);
|
user_pref("network.http.speculative-parallel-limit", 0);
|
||||||
/* 0606: enforce no "Hyperlink Auditing" (click tracking)
|
/* 0606: enforce no "Hyperlink Auditing" (click tracking)
|
||||||
* [1] https://www.bleepingcomputer.com/news/software/major-browsers-to-prevent-disabling-of-click-tracking-privacy-risk/ ***/
|
* [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", false); // [DEFAULT: false]
|
||||||
user_pref("browser.send_pings.require_same_host", true); // defense-in-depth
|
|
||||||
|
|
||||||
/*** [SECTION 0700]: HTTP* / TCP/IP / DNS / PROXY / SOCKS etc ***/
|
/*** [SECTION 0700]: HTTP* / TCP/IP / DNS / PROXY / SOCKS etc ***/
|
||||||
user_pref("_user.js.parrot", "0700 syntax error: the parrot's given up the ghost!");
|
user_pref("_user.js.parrot", "0700 syntax error: the parrot's given up the ghost!");
|
||||||
@ -389,8 +382,8 @@ user_pref("network.dns.disableIPv6", true);
|
|||||||
/* 0702: disable HTTP2
|
/* 0702: disable HTTP2
|
||||||
* HTTP2 raises concerns with "multiplexing" and "server push", does nothing to
|
* HTTP2 raises concerns with "multiplexing" and "server push", does nothing to
|
||||||
* enhance privacy, and opens up a number of server-side fingerprinting opportunities.
|
* enhance privacy, and opens up a number of server-side fingerprinting opportunities.
|
||||||
* [WARNING] Disabling this made sense in the past, and doesn't break anything, but HTTP2 is
|
* [WARNING] Don't disable HTTP2. Don't be that one person using HTTP1.1 on HTTP2 sites
|
||||||
* at 40% (December 2019) and growing [5]. Don't be that one person using HTTP1.1 on HTTP2 sites
|
* [STATS] Over 50% of sites (April 2021) and growing [5]
|
||||||
* [1] https://http2.github.io/faq/
|
* [1] https://http2.github.io/faq/
|
||||||
* [2] https://blog.scottlogic.com/2014/11/07/http-2-a-quick-look.html
|
* [2] https://blog.scottlogic.com/2014/11/07/http-2-a-quick-look.html
|
||||||
* [3] https://http2.github.io/http2-spec/#rfc.section.10.8
|
* [3] https://http2.github.io/http2-spec/#rfc.section.10.8
|
||||||
@ -414,7 +407,7 @@ user_pref("network.http.altsvc.oe", false);
|
|||||||
* [1] https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers ***/
|
* [1] https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers ***/
|
||||||
user_pref("network.proxy.socks_remote_dns", true);
|
user_pref("network.proxy.socks_remote_dns", true);
|
||||||
/* 0708: disable FTP [FF60+] ***/
|
/* 0708: disable FTP [FF60+] ***/
|
||||||
// user_pref("network.ftp.enabled", false);
|
// user_pref("network.ftp.enabled", false); // [DEFAULT: false FF88+]
|
||||||
/* 0709: disable using UNC (Uniform Naming Convention) paths [FF61+]
|
/* 0709: disable using UNC (Uniform Naming Convention) paths [FF61+]
|
||||||
* [SETUP-CHROME] Can break extensions for profiles on network shares
|
* [SETUP-CHROME] Can break extensions for profiles on network shares
|
||||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/26424 ***/
|
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/26424 ***/
|
||||||
@ -433,8 +426,7 @@ user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF]
|
|||||||
your environment (no unwanted eyeballs), your device (restricted access), your device's
|
your environment (no unwanted eyeballs), your device (restricted access), your device's
|
||||||
unattended state (locked, encrypted, forensic hardened). Likewise, you may want to check
|
unattended state (locked, encrypted, forensic hardened). Likewise, you may want to check
|
||||||
the items cleared on shutdown in section 2800.
|
the items cleared on shutdown in section 2800.
|
||||||
[NOTE] The urlbar is also commonly referred to as the location bar and address bar
|
[1] https://xkcd.com/538/
|
||||||
#Required reading [#] https://xkcd.com/538/
|
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "0800 syntax error: the parrot's ceased to be!");
|
user_pref("_user.js.parrot", "0800 syntax error: the parrot's ceased to be!");
|
||||||
/* 0801: disable location bar using search
|
/* 0801: disable location bar using search
|
||||||
@ -455,6 +447,17 @@ user_pref("keyword.enabled", false);
|
|||||||
user_pref("browser.fixup.alternate.enabled", false);
|
user_pref("browser.fixup.alternate.enabled", false);
|
||||||
/* 0803: display all parts of the url in the location bar ***/
|
/* 0803: display all parts of the url in the location bar ***/
|
||||||
user_pref("browser.urlbar.trimURLs", false);
|
user_pref("browser.urlbar.trimURLs", false);
|
||||||
|
/* 0805: disable coloring of visited links - CSS history leak
|
||||||
|
* [SETUP-HARDEN] Bulk rapid history sniffing was mitigated in 2010 [1][2]. Slower and more expensive
|
||||||
|
* redraw timing attacks were largely mitigated in FF77+ [3]. Using RFP (4501) further hampers timing
|
||||||
|
* attacks. Don't forget clearing history on close (2803). However, social engineering [2#limits][4][5]
|
||||||
|
* and advanced targeted timing attacks could still produce usable results
|
||||||
|
* [1] https://developer.mozilla.org/docs/Web/CSS/Privacy_and_the_:visited_selector
|
||||||
|
* [2] https://dbaron.org/mozilla/visited-privacy
|
||||||
|
* [3] https://bugzilla.mozilla.org/1632765
|
||||||
|
* [4] https://earthlng.github.io/testpages/visited_links.html (see github wiki APPENDIX A on how to use)
|
||||||
|
* [5] https://lcamtuf.blogspot.com/2016/08/css-mix-blend-mode-is-bad-for-keeping.html ***/
|
||||||
|
// user_pref("layout.css.visited_links_enabled", false);
|
||||||
/* 0807: disable live search suggestions
|
/* 0807: disable live search suggestions
|
||||||
/* [NOTE] Both must be true for the location bar to work
|
/* [NOTE] Both must be true for the location bar to work
|
||||||
* [SETUP-CHROME] Change these if you trust and use a privacy respecting search engine
|
* [SETUP-CHROME] Change these if you trust and use a privacy respecting search engine
|
||||||
@ -480,12 +483,7 @@ user_pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
|
|||||||
* [SETTING] Privacy & Security>Address Bar>When using the address bar, suggest>Search engines ***/
|
* [SETTING] Privacy & Security>Address Bar>When using the address bar, suggest>Search engines ***/
|
||||||
// user_pref("browser.urlbar.suggest.engines", false);
|
// user_pref("browser.urlbar.suggest.engines", false);
|
||||||
/* 0850c: disable location bar dropdown
|
/* 0850c: disable location bar dropdown
|
||||||
* This value controls the total number of entries to appear in the 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
|
|
||||||
* be displayed (no we do not know how these are calculated or what the threshold is),
|
|
||||||
* and this does not affect the search by search engine suggestion (see 0807)
|
|
||||||
* [NOTE] This setting is only useful if you want to enable search engine keywords
|
|
||||||
* (i.e. at least one of 0850a suggestion types must be true) but you want to *limit* suggestions shown ***/
|
|
||||||
// user_pref("browser.urlbar.maxRichResults", 0);
|
// user_pref("browser.urlbar.maxRichResults", 0);
|
||||||
/* 0850d: disable location bar autofill
|
/* 0850d: disable location bar autofill
|
||||||
* [1] https://support.mozilla.org/en-US/kb/address-bar-autocomplete-firefox#w_url-autocomplete ***/
|
* [1] https://support.mozilla.org/en-US/kb/address-bar-autocomplete-firefox#w_url-autocomplete ***/
|
||||||
@ -507,7 +505,7 @@ user_pref("browser.taskbar.lists.frequent.enabled", false);
|
|||||||
user_pref("browser.taskbar.lists.recent.enabled", false);
|
user_pref("browser.taskbar.lists.recent.enabled", false);
|
||||||
user_pref("browser.taskbar.lists.tasks.enabled", false);
|
user_pref("browser.taskbar.lists.tasks.enabled", false);
|
||||||
/* 0871: disable Windows taskbar preview [WINDOWS] ***/
|
/* 0871: disable Windows taskbar preview [WINDOWS] ***/
|
||||||
user_pref("browser.taskbar.previews.enable", false);
|
// user_pref("browser.taskbar.previews.enable", false); // [DEFAULT: false]
|
||||||
|
|
||||||
/*** [SECTION 0900]: PASSWORDS ***/
|
/*** [SECTION 0900]: PASSWORDS ***/
|
||||||
user_pref("_user.js.parrot", "0900 syntax error: the parrot's expired!");
|
user_pref("_user.js.parrot", "0900 syntax error: the parrot's expired!");
|
||||||
@ -624,14 +622,16 @@ user_pref("browser.shell.shortcutFavicons", false);
|
|||||||
user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!");
|
user_pref("_user.js.parrot", "1200 syntax error: the parrot's a stiff!");
|
||||||
/** SSL (Secure Sockets Layer) / TLS (Transport Layer Security) ***/
|
/** SSL (Secure Sockets Layer) / TLS (Transport Layer Security) ***/
|
||||||
/* 1201: require safe negotiation
|
/* 1201: require safe negotiation
|
||||||
* Blocks connections to servers that don't support RFC 5746 [2] as they're potentially
|
* Blocks connections (SSL_ERROR_UNSAFE_NEGOTIATION) to servers that don't support RFC 5746 [2]
|
||||||
* vulnerable to a MiTM attack [3]. A server *without* RFC 5746 can be safe from the attack
|
* as they're potentially vulnerable to a MiTM attack [3]. A server without RFC 5746 can be
|
||||||
* if it disables renegotiations but the problem is that the browser can't know that.
|
* safe from the attack if it disables renegotiations but the problem is that the browser can't
|
||||||
* Setting this pref to true is the only way for the browser to ensure there will be
|
* know that. Setting this pref to true is the only way for the browser to ensure there will be
|
||||||
* no unsafe renegotiations on the channel between the browser and the server.
|
* no unsafe renegotiations on the channel between the browser and the server.
|
||||||
|
* [STATS] SSL Labs (Dec 2020) reports 99.0% of sites have secure renegotiation [4]
|
||||||
* [1] https://wiki.mozilla.org/Security:Renegotiation
|
* [1] https://wiki.mozilla.org/Security:Renegotiation
|
||||||
* [2] https://tools.ietf.org/html/rfc5746
|
* [2] https://tools.ietf.org/html/rfc5746
|
||||||
* [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 ***/
|
* [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555
|
||||||
|
* [4] https://www.ssllabs.com/ssl-pulse/ ***/
|
||||||
user_pref("security.ssl.require_safe_negotiation", true);
|
user_pref("security.ssl.require_safe_negotiation", true);
|
||||||
/* 1202: control TLS versions with min and max
|
/* 1202: control TLS versions with min and max
|
||||||
* 1=TLS 1.0, 2=TLS 1.1, 3=TLS 1.2, 4=TLS 1.3
|
* 1=TLS 1.0, 2=TLS 1.1, 3=TLS 1.2, 4=TLS 1.3
|
||||||
@ -639,32 +639,27 @@ user_pref("security.ssl.require_safe_negotiation", true);
|
|||||||
* [1] https://www.ssllabs.com/ssl-pulse/ ***/
|
* [1] https://www.ssllabs.com/ssl-pulse/ ***/
|
||||||
// user_pref("security.tls.version.min", 3); // [DEFAULT: 3]
|
// user_pref("security.tls.version.min", 3); // [DEFAULT: 3]
|
||||||
// user_pref("security.tls.version.max", 4);
|
// user_pref("security.tls.version.max", 4);
|
||||||
/* 1203: enforce TLS 1.0 and 1.1 downgrades as session only */
|
/* 1203: enforce TLS 1.0 and 1.1 downgrades as session only ***/
|
||||||
user_pref("security.tls.version.enable-deprecated", false);
|
user_pref("security.tls.version.enable-deprecated", false);
|
||||||
/* 1204: disable SSL session tracking [FF36+]
|
/* 1204: disable SSL session tracking [FF36+]
|
||||||
* SSL Session IDs are unique, last up to 24hrs in Firefox, and can be used for tracking
|
* SSL Session IDs are unique and last up to 24hrs in Firefox (or longer with prolongation attacks)
|
||||||
* [SETUP-PERF] Relax this if you have FPI enabled (see 4000) *AND* you understand the
|
* [NOTE] These are not used in PB mode. In normal windows they are isolated when using FPI (4001)
|
||||||
* consequences. FPI isolates these, but it was designed with the Tor protocol in mind,
|
* and/or containers. In FF85+ they are isolated by default (privacy.partition.network_state)
|
||||||
* and the Tor Browser has extra protection, including enhanced sanitizing per Identity.
|
* [WARNING] There are perf and passive fingerprinting costs, for little to no gain. Preventing
|
||||||
|
* tracking via this method does not address IPs, nor handle any sanitizing of current identifiers
|
||||||
* [1] https://tools.ietf.org/html/rfc5077
|
* [1] https://tools.ietf.org/html/rfc5077
|
||||||
* [2] https://bugzilla.mozilla.org/967977
|
* [2] https://bugzilla.mozilla.org/967977
|
||||||
* [3] https://arxiv.org/abs/1810.07304 ***/
|
* [3] https://arxiv.org/abs/1810.07304 ***/
|
||||||
user_pref("security.ssl.disable_session_identifiers", true); // [HIDDEN PREF]
|
// user_pref("security.ssl.disable_session_identifiers", true); // [HIDDEN PREF]
|
||||||
/* 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", "");
|
|
||||||
/* 1206: 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
|
* [1] https://github.com/tlswg/tls13-spec/issues/1001
|
||||||
* [2] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/
|
* [2] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/
|
||||||
user_pref("security.tls.enable_0rtt_data", false);
|
user_pref("security.tls.enable_0rtt_data", false);
|
||||||
|
|
||||||
/** OCSP (Online Certificate Status Protocol)
|
/** OCSP (Online Certificate Status Protocol)
|
||||||
#Required reading [#] https://scotthelme.co.uk/revocation-is-broken/ ***/
|
[1] https://scotthelme.co.uk/revocation-is-broken/
|
||||||
/* 1210: enable OCSP Stapling
|
[2] https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/
|
||||||
* [1] https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/ ***/
|
***/
|
||||||
user_pref("security.ssl.enable_ocsp_stapling", true);
|
|
||||||
/* 1211: control when to use OCSP fetching (to confirm current validity of certificates)
|
/* 1211: control when to use OCSP fetching (to confirm current validity of certificates)
|
||||||
* 0=disabled, 1=enabled (default), 2=enabled for EV certificates only
|
* 0=disabled, 1=enabled (default), 2=enabled for EV certificates only
|
||||||
* OCSP (non-stapled) leaks information about the sites you visit to the CA (cert authority)
|
* OCSP (non-stapled) leaks information about the sites you visit to the CA (cert authority)
|
||||||
@ -722,12 +717,9 @@ user_pref("security.pki.crlite_mode", 2);
|
|||||||
user_pref("security.mixed_content.block_active_content", true); // [DEFAULT: true]
|
user_pref("security.mixed_content.block_active_content", true); // [DEFAULT: true]
|
||||||
/* 1241: disable insecure passive content (such as images) on https pages [SETUP-WEB] ***/
|
/* 1241: disable insecure passive content (such as images) on https pages [SETUP-WEB] ***/
|
||||||
user_pref("security.mixed_content.block_display_content", true);
|
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+]
|
/* 1244: enable HTTPS-Only mode [FF76+]
|
||||||
* When "https_only_mode" (all windows) is true, "https_only_mode_pbm" (private windows only) is ignored
|
* When "https_only_mode" (all windows) is true, "https_only_mode_pbm" (private windows only) is ignored
|
||||||
* [SETTING] to add site exceptions: Page Info>HTTPS-Only mode>On/Off/Off temporarily
|
* [SETTING] to add site exceptions: Padlock>HTTPS-Only mode>On/Off/Off temporarily
|
||||||
* [SETTING] Privacy & Security>HTTPS-Only Mode
|
* [SETTING] Privacy & Security>HTTPS-Only Mode
|
||||||
* [TEST] http://example.com [upgrade]
|
* [TEST] http://example.com [upgrade]
|
||||||
* [TEST] http://neverssl.org/ [no upgrade]
|
* [TEST] http://neverssl.org/ [no upgrade]
|
||||||
@ -742,6 +734,10 @@ user_pref("dom.security.https_only_mode", true); // [FF76+]
|
|||||||
* This is done to avoid waiting for a timeout which takes 90 seconds
|
* This is done to avoid waiting for a timeout which takes 90 seconds
|
||||||
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1642387,1660945 ***/
|
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1642387,1660945 ***/
|
||||||
user_pref("dom.security.https_only_mode_send_http_background_request", false);
|
user_pref("dom.security.https_only_mode_send_http_background_request", false);
|
||||||
|
/* 1247: treat .onion as a secure context [FF60+] [TOR]
|
||||||
|
* [NOTE] Firefox cannot access .onion sites by default: it is strongly recommended you just use Tor Browser
|
||||||
|
* [1] https://bugzilla.mozilla.org/1382359 ***/
|
||||||
|
// user_pref("dom.securecontext.whitelist_onions", true);
|
||||||
|
|
||||||
/** CIPHERS [WARNING: do not meddle with your cipher suite: see the section 1200 intro]
|
/** 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])
|
* These are all the ciphers still using SHA-1 and CBC which are weaker than the available alternatives. (see "Cipher Suites" in [1])
|
||||||
@ -766,10 +762,8 @@ user_pref("dom.security.https_only_mode_send_http_background_request", false);
|
|||||||
/** UI (User Interface) ***/
|
/** UI (User Interface) ***/
|
||||||
/* 1270: display warning on the padlock for "broken security" (if 1201 is false)
|
/* 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]
|
* Bug: warning padlock not indicated for subresources on a secure page! [2]
|
||||||
* [STATS] SSL Labs (Dec 2020) reports 99.0% of sites have secure renegotiation [3]
|
|
||||||
* [1] https://wiki.mozilla.org/Security:Renegotiation
|
* [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);
|
user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
|
||||||
/* 1271: control "Add Security Exception" dialog on SSL warnings
|
/* 1271: control "Add Security Exception" dialog on SSL warnings
|
||||||
* 0=do neither 1=pre-populate url 2=pre-populate url + pre-fetch cert (default)
|
* 0=do neither 1=pre-populate url 2=pre-populate url + pre-fetch cert (default)
|
||||||
@ -820,7 +814,7 @@ user_pref("gfx.font_rendering.graphite.enabled", false);
|
|||||||
scheme+host+port+path: https://example.com:8888/foo/bar.html
|
scheme+host+port+path: https://example.com:8888/foo/bar.html
|
||||||
scheme+host+port: https://example.com:8888
|
scheme+host+port: https://example.com:8888
|
||||||
---
|
---
|
||||||
#Required reading [#] https://feeding.cloud.geek.nz/posts/tweaking-referrer-for-privacy-in-firefox/
|
[1] https://feeding.cloud.geek.nz/posts/tweaking-referrer-for-privacy-in-firefox/
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "1600 syntax error: the parrot rests in peace!");
|
user_pref("_user.js.parrot", "1600 syntax error: the parrot rests in peace!");
|
||||||
/* 1601: ALL: control when images/links send a referer
|
/* 1601: ALL: control when images/links send a referer
|
||||||
@ -831,7 +825,7 @@ user_pref("_user.js.parrot", "1600 syntax error: the parrot rests in peace!");
|
|||||||
// user_pref("network.http.referer.trimmingPolicy", 0);
|
// user_pref("network.http.referer.trimmingPolicy", 0);
|
||||||
/* 1603: CROSS ORIGIN: control when to send a referer
|
/* 1603: CROSS ORIGIN: control when to send a referer
|
||||||
* 0=always (default), 1=only if base domains match, 2=only if hosts match
|
* 0=always (default), 1=only if base domains match, 2=only if hosts match
|
||||||
* [SETUP-WEB] Known to cause issues with older modems/routers and some sites e.g vimeo, icloud ***/
|
* [SETUP-WEB] Known to cause issues with older modems/routers and some sites e.g vimeo, icloud, instagram ***/
|
||||||
user_pref("network.http.referer.XOriginPolicy", 2);
|
user_pref("network.http.referer.XOriginPolicy", 2);
|
||||||
/* 1604: CROSS ORIGIN: control the amount of information to send [FF52+]
|
/* 1604: CROSS ORIGIN: control the amount of information to send [FF52+]
|
||||||
* 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port ***/
|
* 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port ***/
|
||||||
@ -845,14 +839,14 @@ user_pref("network.http.referer.XOriginTrimmingPolicy", 2);
|
|||||||
* [NOTE] This is only a default, it can be overridden by a site-controlled Referrer Policy
|
* [NOTE] This is only a default, it can be overridden by a site-controlled Referrer Policy
|
||||||
* [1] https://www.w3.org/TR/referrer-policy/
|
* [1] https://www.w3.org/TR/referrer-policy/
|
||||||
* [2] https://developer.mozilla.org/docs/Web/HTTP/Headers/Referrer-Policy
|
* [2] https://developer.mozilla.org/docs/Web/HTTP/Headers/Referrer-Policy
|
||||||
* [3] https://blog.mozilla.org/security/2018/01/31/preventing-data-leaks-by-stripping-path-information-in-http-referrers/ ***/
|
* [3] https://blog.mozilla.org/security/2018/01/31/preventing-data-leaks-by-stripping-path-information-in-http-referrers/
|
||||||
// user_pref("network.http.referer.defaultPolicy", 3); // [DEFAULT: 3]
|
* [4] https://blog.mozilla.org/security/2021/03/22/firefox-87-trims-http-referrers-by-default-to-protect-user-privacy/ ***/
|
||||||
|
// user_pref("network.http.referer.defaultPolicy", 2); // [DEFAULT: 2 FF87+]
|
||||||
// user_pref("network.http.referer.defaultPolicy.pbmode", 2); // [DEFAULT: 2]
|
// user_pref("network.http.referer.defaultPolicy.pbmode", 2); // [DEFAULT: 2]
|
||||||
/* 1607: TOR: hide (not spoof) referrer when leaving a .onion domain [FF54+]
|
/* 1607: hide (not spoof) referrer when leaving a .onion domain [FF54+] [TOR]
|
||||||
* [NOTE] Firefox cannot access .onion sites by default. We recommend you use
|
* [NOTE] Firefox cannot access .onion sites by default: it is strongly recommended you just use Tor Browser
|
||||||
* the Tor Browser which is specifically designed for hidden services
|
|
||||||
* [1] https://bugzilla.mozilla.org/1305144 ***/
|
* [1] https://bugzilla.mozilla.org/1305144 ***/
|
||||||
user_pref("network.http.referer.hideOnionSource", true);
|
// user_pref("network.http.referer.hideOnionSource", true);
|
||||||
/* 1610: ALL: enable the DNT (Do Not Track) HTTP header
|
/* 1610: ALL: enable the DNT (Do Not Track) HTTP header
|
||||||
* [NOTE] DNT is enforced with Enhanced Tracking Protection regardless of this pref
|
* [NOTE] DNT is enforced with Enhanced Tracking Protection regardless of this pref
|
||||||
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Send websites a "Do Not Track" signal... ***/
|
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Send websites a "Do Not Track" signal... ***/
|
||||||
@ -880,21 +874,16 @@ user_pref("privacy.userContext.enabled", true);
|
|||||||
|
|
||||||
/*** [SECTION 1800]: PLUGINS ***/
|
/*** [SECTION 1800]: PLUGINS ***/
|
||||||
user_pref("_user.js.parrot", "1800 syntax error: the parrot's pushing up daisies!");
|
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 ***/
|
|
||||||
user_pref("plugin.state.flash", 0);
|
|
||||||
/* 1820: disable GMP (Gecko Media Plugins)
|
/* 1820: disable GMP (Gecko Media Plugins)
|
||||||
* [1] https://wiki.mozilla.org/GeckoMediaPlugins ***/
|
* [1] https://wiki.mozilla.org/GeckoMediaPlugins ***/
|
||||||
// user_pref("media.gmp-provider.enabled", false);
|
// user_pref("media.gmp-provider.enabled", false);
|
||||||
/* 1825: disable widevine CDM (Content Decryption Module)
|
/* 1825: disable widevine CDM (Content Decryption Module)
|
||||||
* [SETUP-WEB] if you *need* CDM, e.g. Netflix, Amazon Prime, Hulu, whatever ***/
|
* [NOTE] This is covered by the EME master switch (1830) ***/
|
||||||
user_pref("media.gmp-widevinecdm.visible", false);
|
// user_pref("media.gmp-widevinecdm.enabled", false);
|
||||||
user_pref("media.gmp-widevinecdm.enabled", false);
|
|
||||||
/* 1830: disable all DRM content (EME: Encryption Media Extension)
|
/* 1830: disable all DRM content (EME: Encryption Media Extension)
|
||||||
* [SETUP-WEB] if you *need* EME, e.g. Netflix, Amazon Prime, Hulu, whatever
|
* [SETUP-WEB] e.g. Netflix, Amazon Prime, Hulu, HBO, Disney+, Showtime, Starz, DirectTV
|
||||||
* [SETTING] General>DRM Content>Play DRM-controlled content
|
* [SETTING] General>DRM Content>Play DRM-controlled content
|
||||||
|
* [TEST] https://bitmovin.com/demos/drm
|
||||||
* [1] https://www.eff.org/deeplinks/2017/10/drms-dead-canary-how-we-just-lost-web-what-we-learned-it-and-what-we-need-do-next ***/
|
* [1] https://www.eff.org/deeplinks/2017/10/drms-dead-canary-how-we-just-lost-web-what-we-learned-it-and-what-we-need-do-next ***/
|
||||||
user_pref("media.eme.enabled", false);
|
user_pref("media.eme.enabled", false);
|
||||||
|
|
||||||
@ -922,15 +911,14 @@ user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); // [FF70
|
|||||||
user_pref("webgl.disabled", true);
|
user_pref("webgl.disabled", true);
|
||||||
user_pref("webgl.enable-webgl2", false);
|
user_pref("webgl.enable-webgl2", false);
|
||||||
/* 2012: limit WebGL ***/
|
/* 2012: limit WebGL ***/
|
||||||
user_pref("webgl.min_capability_mode", true);
|
user_pref("webgl.disable-fail-if-major-performance-caveat", true); // [DEFAULT: true FF86+]
|
||||||
user_pref("webgl.disable-fail-if-major-performance-caveat", true);
|
|
||||||
/* 2022: disable screensharing ***/
|
/* 2022: disable screensharing ***/
|
||||||
user_pref("media.getusermedia.screensharing.enabled", false);
|
user_pref("media.getusermedia.screensharing.enabled", false);
|
||||||
user_pref("media.getusermedia.browser.enabled", false);
|
user_pref("media.getusermedia.browser.enabled", false);
|
||||||
user_pref("media.getusermedia.audiocapture.enabled", false);
|
user_pref("media.getusermedia.audiocapture.enabled", false);
|
||||||
/* 2024: set a default permission for Camera/Microphone [FF58+]
|
/* 2024: set a default permission for Camera/Microphone [FF58+]
|
||||||
* 0=always ask (default), 1=allow, 2=block
|
* 0=always ask (default), 1=allow, 2=block
|
||||||
* [SETTING] to add site exceptions: Page Info>Permissions>Use the Camera/Microphone
|
* [SETTING] to add site exceptions: Ctrl+I>Permissions>Use the Camera/Microphone
|
||||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Camera/Microphone>Settings ***/
|
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Camera/Microphone>Settings ***/
|
||||||
// user_pref("permissions.default.camera", 2);
|
// user_pref("permissions.default.camera", 2);
|
||||||
// user_pref("permissions.default.microphone", 2);
|
// user_pref("permissions.default.microphone", 2);
|
||||||
@ -966,8 +954,8 @@ user_pref("browser.link.open_newwindow.restriction", 0);
|
|||||||
* [SETTING] Privacy & Security>Permissions>Block pop-up windows ***/
|
* [SETTING] Privacy & Security>Permissions>Block pop-up windows ***/
|
||||||
user_pref("dom.disable_open_during_load", true);
|
user_pref("dom.disable_open_during_load", true);
|
||||||
/* 2212: limit events that can cause a popup [SETUP-WEB]
|
/* 2212: limit events that can cause a popup [SETUP-WEB]
|
||||||
* default is "change click dblclick auxclick mouseup pointerup notificationclick reset submit touchend contextmenu" ***/
|
* default FF86+: "change click dblclick auxclick mousedown mouseup pointerdown pointerup notificationclick reset submit touchend contextmenu ***/
|
||||||
user_pref("dom.popup_allowed_events", "click dblclick");
|
user_pref("dom.popup_allowed_events", "click dblclick mousedown pointerdown");
|
||||||
|
|
||||||
/*** [SECTION 2300]: WEB WORKERS
|
/*** [SECTION 2300]: WEB WORKERS
|
||||||
A worker is a JS "background task" running in a global context, i.e. it is different from
|
A worker is a JS "background task" running in a global context, i.e. it is different from
|
||||||
@ -1012,7 +1000,7 @@ user_pref("dom.push.enabled", false);
|
|||||||
/* 2306: set a default permission for Notifications (both 2304 and 2305) [FF58+]
|
/* 2306: set a default permission for Notifications (both 2304 and 2305) [FF58+]
|
||||||
* 0=always ask (default), 1=allow, 2=block
|
* 0=always ask (default), 1=allow, 2=block
|
||||||
* [NOTE] Best left at default "always ask", fingerprintable via Permissions API
|
* [NOTE] Best left at default "always ask", fingerprintable via Permissions API
|
||||||
* [SETTING] to add site exceptions: Page Info>Permissions>Receive Notifications
|
* [SETTING] to add site exceptions: Ctrl+I>Permissions>Receive Notifications
|
||||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Notifications>Settings ***/
|
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Notifications>Settings ***/
|
||||||
// user_pref("permissions.default.desktop-notification", 2);
|
// user_pref("permissions.default.desktop-notification", 2);
|
||||||
|
|
||||||
@ -1024,9 +1012,9 @@ user_pref("_user.js.parrot", "2400 syntax error: the parrot's kicked the bucket!
|
|||||||
/* 2402: disable website access to clipboard events/content [SETUP-HARDEN]
|
/* 2402: disable website access to clipboard events/content [SETUP-HARDEN]
|
||||||
* [NOTE] This will break some sites' functionality e.g. Outlook, Twitter, Facebook, Wordpress
|
* [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
|
* 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
|
* [WARNING] In FF88 or lower, with clipboardevents enabled, if both 'middlemouse.paste' and
|
||||||
* is default false) then enabling this pref can leak clipboard content [1]
|
* 'general.autoScroll' are true (at least one is default false) then the clipboard can leak [1]
|
||||||
* [1] https://bugzilla.mozilla.org/1528289 */
|
* [1] https://bugzilla.mozilla.org/1528289 ***/
|
||||||
// user_pref("dom.event.clipboardevents.enabled", false);
|
// user_pref("dom.event.clipboardevents.enabled", false);
|
||||||
/* 2404: disable clipboard commands (cut/copy) from "non-privileged" content [FF41+]
|
/* 2404: disable clipboard commands (cut/copy) from "non-privileged" content [FF41+]
|
||||||
* this disables document.execCommand("cut"/"copy") to protect your clipboard
|
* this disables document.execCommand("cut"/"copy") to protect your clipboard
|
||||||
@ -1103,9 +1091,9 @@ user_pref("dom.webaudio.enabled", false);
|
|||||||
// user_pref("dom.vr.enabled", false);
|
// user_pref("dom.vr.enabled", false);
|
||||||
/* 2521: set a default permission for Virtual Reality (see 2520) [FF73+]
|
/* 2521: set a default permission for Virtual Reality (see 2520) [FF73+]
|
||||||
* 0=always ask (default), 1=allow, 2=block
|
* 0=always ask (default), 1=allow, 2=block
|
||||||
* [SETTING] to add site exceptions: Page Info>Permissions>Access Virtual Reality Devices
|
* [SETTING] to add site exceptions: Ctrl+I>Permissions>Access Virtual Reality Devices
|
||||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Virtual Reality>Settings ***/
|
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Virtual Reality>Settings ***/
|
||||||
// user_pref("permissions.default.xr", 0);
|
// user_pref("permissions.default.xr", 2);
|
||||||
|
|
||||||
/*** [SECTION 2600]: MISCELLANEOUS ***/
|
/*** [SECTION 2600]: MISCELLANEOUS ***/
|
||||||
user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!");
|
user_pref("_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!");
|
||||||
@ -1119,8 +1107,7 @@ user_pref("beacon.enabled", false);
|
|||||||
/* 2603: remove temp files opened with an external application
|
/* 2603: remove temp files opened with an external application
|
||||||
* [1] https://bugzilla.mozilla.org/302433 ***/
|
* [1] https://bugzilla.mozilla.org/302433 ***/
|
||||||
user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||||
/* 2604: disable page thumbnail collection
|
/* 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]
|
user_pref("browser.pagethumbnails.capturing_disabled", true); // [HIDDEN PREF]
|
||||||
/* 2606: disable UITour backend so there is no chance that a remote page can use it ***/
|
/* 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.enabled", false);
|
||||||
@ -1143,13 +1130,9 @@ user_pref("devtools.debugger.remote-enabled", false); // [DEFAULT: false]
|
|||||||
/* 2611: disable middle mouse click opening links from clipboard
|
/* 2611: disable middle mouse click opening links from clipboard
|
||||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/10089 ***/
|
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/10089 ***/
|
||||||
user_pref("middlemouse.contentLoadURL", false);
|
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)
|
|
||||||
* To control HTML Meta tag and JS redirects, use an extension. Default is 20 ***/
|
|
||||||
user_pref("network.http.redirection-limit", 10);
|
|
||||||
/* 2615: disable websites overriding Firefox's keyboard shortcuts [FF58+]
|
/* 2615: disable websites overriding Firefox's keyboard shortcuts [FF58+]
|
||||||
* 0 (default) or 1=allow, 2=block
|
* 0 (default) or 1=allow, 2=block
|
||||||
* [SETTING] to add site exceptions: Page Info>Permissions>Override Keyboard Shortcuts ***/
|
* [SETTING] to add site exceptions: Ctrl+I>Permissions>Override Keyboard Shortcuts ***/
|
||||||
// user_pref("permissions.default.shortcuts", 2);
|
// user_pref("permissions.default.shortcuts", 2);
|
||||||
/* 2616: remove special permissions for certain mozilla domains [FF35+]
|
/* 2616: remove special permissions for certain mozilla domains [FF35+]
|
||||||
* [1] resource://app/defaults/permissions ***/
|
* [1] resource://app/defaults/permissions ***/
|
||||||
@ -1165,17 +1148,18 @@ user_pref("webchannel.allowObject.urlWhitelist", "");
|
|||||||
* [3] CVE-2017-5383: https://www.mozilla.org/security/advisories/mfsa2017-02/
|
* [3] CVE-2017-5383: https://www.mozilla.org/security/advisories/mfsa2017-02/
|
||||||
* [4] https://www.xudongz.com/blog/2017/idn-phishing/ ***/
|
* [4] https://www.xudongz.com/blog/2017/idn-phishing/ ***/
|
||||||
user_pref("network.IDN_show_punycode", true);
|
user_pref("network.IDN_show_punycode", true);
|
||||||
/* 2620: enforce Firefox's built-in PDF reader [SETUP-CHROME]
|
/* 2620: enforce PDFJS, disable PDFJS scripting [SETUP-CHROME]
|
||||||
* This setting controls if the option "Display in Firefox" is available in the setting below
|
* This setting controls if the option "Display in Firefox" is available in the setting below
|
||||||
* and by effect controls whether PDFs are handled in-browser or externally ("Ask" or "Open With")
|
* and by effect controls whether PDFs are handled in-browser or externally ("Ask" or "Open With")
|
||||||
* PROS: pdfjs is lightweight, open source, and as secure/vetted as any pdf reader out there (more than most)
|
* PROS: pdfjs is lightweight, open source, and as secure/vetted as any pdf reader out there (more than most)
|
||||||
* Exploits are rare (1 serious case in 4 yrs), treated seriously and patched quickly.
|
* Exploits are rare (one serious case in seven years), treated seriously and patched quickly.
|
||||||
* It doesn't break "state separation" of browser content (by not sharing with OS, independent apps).
|
* It doesn't break "state separation" of browser content (by not sharing with OS, independent apps).
|
||||||
* It maintains disk avoidance and application data isolation. It's convenient. You can still save to disk.
|
* It maintains disk avoidance and application data isolation. It's convenient. You can still save to disk.
|
||||||
* CONS: You may prefer a different pdf reader for security reasons
|
* CONS: You may prefer a different pdf reader for security reasons
|
||||||
* CAVEAT: JS can still force a pdf to open in-browser by bundling its own code (rare)
|
* CAVEAT: JS can still force a pdf to open in-browser by bundling its own code (rare)
|
||||||
* [SETTING] General>Applications>Portable Document Format (PDF) ***/
|
* [SETTING] General>Applications>Portable Document Format (PDF) ***/
|
||||||
user_pref("pdfjs.disabled", false); // [DEFAULT: false]
|
user_pref("pdfjs.disabled", false); // [DEFAULT: false]
|
||||||
|
user_pref("pdfjs.enableScripting", false); // [FF86+]
|
||||||
/* 2621: disable links launching Windows Store on Windows 8/8.1/10 [WINDOWS] ***/
|
/* 2621: disable links launching Windows Store on Windows 8/8.1/10 [WINDOWS] ***/
|
||||||
user_pref("network.protocol-handler.external.ms-windows-store", false);
|
user_pref("network.protocol-handler.external.ms-windows-store", false);
|
||||||
/* 2622: enforce no system colors; they can be fingerprinted
|
/* 2622: enforce no system colors; they can be fingerprinted
|
||||||
@ -1185,12 +1169,22 @@ user_pref("browser.display.use_system_colors", false); // [DEFAULT: false]
|
|||||||
* Currently applies to cross-origin geolocation, camera, mic and screen-sharing
|
* Currently applies to cross-origin geolocation, camera, mic and screen-sharing
|
||||||
* permissions, and fullscreen requests. Disabling delegation means any prompts
|
* permissions, and fullscreen requests. Disabling delegation means any prompts
|
||||||
* for these will show/use their correct 3rd party origin
|
* for these will show/use their correct 3rd party origin
|
||||||
* [1] https://groups.google.com/forum/#!topic/mozilla.dev.platform/BdFOMAuCGW8/discussion */
|
* [1] https://groups.google.com/forum/#!topic/mozilla.dev.platform/BdFOMAuCGW8/discussion ***/
|
||||||
user_pref("permissions.delegation.enabled", false);
|
user_pref("permissions.delegation.enabled", false);
|
||||||
/* 2624: enable "window.name" protection [FF82+]
|
/* 2624: enable "window.name" protection [FF82+]
|
||||||
* If a new page from another domain is loaded into a tab, then window.name is set to an empty string. The original
|
* If a new page from another domain is loaded into a tab, then window.name is set to an empty string. The original
|
||||||
* string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks ***/
|
* string is restored if the tab reverts back to the original page. This change prevents some cross-site attacks
|
||||||
user_pref("privacy.window.name.update.enabled", true);
|
* [TEST] https://arkenfox.github.io/TZP/tests/windownamea.html ***/
|
||||||
|
user_pref("privacy.window.name.update.enabled", true); // [DEFAULT: true FF86+]
|
||||||
|
/* 2625: disable bypassing 3rd party extension install prompts [FF82+]
|
||||||
|
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1659530,1681331 ***/
|
||||||
|
user_pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||||
|
/* 2626: enforce non-native widget theme
|
||||||
|
* Security: removes/reduces system API calls, e.g. win32k API [1]
|
||||||
|
* Fingerprinting: provides a uniform look and feel across platforms [2]
|
||||||
|
* [1] https://bugzilla.mozilla.org/1381938
|
||||||
|
* [2] https://bugzilla.mozilla.org/1411425 ***/
|
||||||
|
user_pref("widget.non-native-theme.enabled", true); // [DEFAULT: true FF89+]
|
||||||
|
|
||||||
/** DOWNLOADS ***/
|
/** DOWNLOADS ***/
|
||||||
/* 2650: discourage downloading to desktop
|
/* 2650: discourage downloading to desktop
|
||||||
@ -1203,8 +1197,6 @@ user_pref("privacy.window.name.update.enabled", true);
|
|||||||
user_pref("browser.download.useDownloadDir", false);
|
user_pref("browser.download.useDownloadDir", false);
|
||||||
/* 2652: disable adding downloads to the system's "recent documents" list ***/
|
/* 2652: disable adding downloads to the system's "recent documents" list ***/
|
||||||
user_pref("browser.download.manager.addToRecentDocs", false);
|
user_pref("browser.download.manager.addToRecentDocs", false);
|
||||||
/* 2653: disable hiding mime types (Options>General>Applications) not associated with a plugin ***/
|
|
||||||
user_pref("browser.download.hide_plugins_without_extensions", false);
|
|
||||||
/* 2654: disable "open with" in download dialog [FF50+] [SETUP-HARDEN]
|
/* 2654: disable "open with" in download dialog [FF50+] [SETUP-HARDEN]
|
||||||
* This is very useful to enable when the browser is sandboxed (e.g. via AppArmor)
|
* This is very useful to enable when the browser is sandboxed (e.g. via AppArmor)
|
||||||
* in such a way that it is forbidden to run external applications.
|
* in such a way that it is forbidden to run external applications.
|
||||||
@ -1248,17 +1240,23 @@ user_pref("security.dialog_enable_delay", 700);
|
|||||||
accessible to websites except shared/service workers where the cookie setting *must* be "Allow"
|
accessible to websites except shared/service workers where the cookie setting *must* be "Allow"
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!");
|
user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!");
|
||||||
/* 2701: disable 3rd-party cookies and site-data [SETUP-WEB]
|
/* 2701: disable or isolate 3rd-party cookies and site-data [SETUP-WEB]
|
||||||
* 0=Accept cookies and site data, 1=(Block) All third-party cookies, 2=(Block) All cookies,
|
* 0 = Accept cookies and site data
|
||||||
* 3=(Block) Cookies from unvisited websites, 4=(Block) Cross-site and social media trackers (default)
|
* 1 = (Block) All third-party cookies
|
||||||
* [NOTE] You can set exceptions under site permissions or use an extension
|
* 2 = (Block) All cookies
|
||||||
|
* 3 = (Block) Cookies from unvisited websites
|
||||||
|
* 4 = (Block) Cross-site tracking cookies (default)
|
||||||
|
* 5 = (Isolate All) Cross-site cookies (TCP: Total Cookie Protection / dFPI: dynamic FPI) [1] (FF86+)
|
||||||
|
* Option 5 with FPI enabled (4001) is ignored and not shown, and option 4 used instead
|
||||||
|
* [NOTE] You can set cookie exceptions under site permissions or use an extension
|
||||||
* [NOTE] Enforcing category to custom ensures ETP related prefs are always honored
|
* [NOTE] Enforcing category to custom ensures ETP related prefs are always honored
|
||||||
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Cookies ***/
|
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Cookies
|
||||||
|
* [1] https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/ ***/
|
||||||
user_pref("network.cookie.cookieBehavior", 1);
|
user_pref("network.cookie.cookieBehavior", 1);
|
||||||
user_pref("browser.contentblocking.category", "custom");
|
user_pref("browser.contentblocking.category", "custom");
|
||||||
/* 2702: set third-party cookies (if enabled, see 2701) to session-only
|
/* 2702: set third-party cookies (if enabled, see 2701) to session-only
|
||||||
[NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and
|
* [NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and
|
||||||
.nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones
|
* .nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones
|
||||||
* [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ ***/
|
* [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ ***/
|
||||||
user_pref("network.cookie.thirdparty.sessionOnly", true);
|
user_pref("network.cookie.thirdparty.sessionOnly", true);
|
||||||
user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+]
|
user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+]
|
||||||
@ -1267,7 +1265,16 @@ user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+]
|
|||||||
* [NOTE] The setting below is disabled (but not changed) if you block all cookies (2701 = 2)
|
* [NOTE] The setting below is disabled (but not changed) if you block all cookies (2701 = 2)
|
||||||
* [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed ***/
|
* [SETTING] Privacy & Security>Cookies and Site Data>Delete cookies and site data when Firefox is closed ***/
|
||||||
// user_pref("network.cookie.lifetimePolicy", 2);
|
// user_pref("network.cookie.lifetimePolicy", 2);
|
||||||
/* 2710: disable DOM (Document Object Model) Storage
|
/* 2710: enable Enhanced Tracking Protection (ETP) in all windows
|
||||||
|
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Tracking content
|
||||||
|
* [SETTING] to add site exceptions: Urlbar>ETP Shield
|
||||||
|
* [SETTING] to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions ***/
|
||||||
|
user_pref("privacy.trackingprotection.enabled", true);
|
||||||
|
/* 2711: enable various ETP lists ***/
|
||||||
|
user_pref("privacy.trackingprotection.socialtracking.enabled", true);
|
||||||
|
// user_pref("privacy.trackingprotection.cryptomining.enabled", true); // [DEFAULT: true]
|
||||||
|
// user_pref("privacy.trackingprotection.fingerprinting.enabled", true); // [DEFAULT: true]
|
||||||
|
/* 2720: disable DOM (Document Object Model) Storage
|
||||||
* [WARNING] This will break a LOT of sites' functionality AND extensions!
|
* [WARNING] This will break a LOT of sites' functionality AND extensions!
|
||||||
* You are better off using an extension for more granular control ***/
|
* You are better off using an extension for more granular control ***/
|
||||||
// user_pref("dom.storage.enabled", false);
|
// user_pref("dom.storage.enabled", false);
|
||||||
@ -1295,8 +1302,8 @@ user_pref("dom.storage.next_gen", true);
|
|||||||
|
|
||||||
/*** [SECTION 2800]: SHUTDOWN
|
/*** [SECTION 2800]: SHUTDOWN
|
||||||
You should set the values to what suits you best.
|
You should set the values to what suits you best.
|
||||||
- "Offline Website Data" includes appCache (2730), localStorage (2710),
|
- "Offline Website Data" includes appCache (2730), localStorage (2720),
|
||||||
service worker cache (2740), and QuotaManager (IndexedDB (2720), asm-cache)
|
service worker cache (2740), and QuotaManager (IndexedDB, asm-cache)
|
||||||
- In both 2803 + 2804, the 'download' and 'history' prefs are combined in the
|
- In both 2803 + 2804, the 'download' and 'history' prefs are combined in the
|
||||||
Firefox interface as "Browsing & Download History" and their values will be synced
|
Firefox interface as "Browsing & Download History" and their values will be synced
|
||||||
***/
|
***/
|
||||||
@ -1406,7 +1413,7 @@ user_pref("privacy.firstparty.isolate", true);
|
|||||||
FF56+
|
FF56+
|
||||||
1369303 - spoof/disable performance API (see 4602, 4603)
|
1369303 - spoof/disable performance API (see 4602, 4603)
|
||||||
1333651 - spoof User Agent & Navigator API (see section 4700)
|
1333651 - spoof User Agent & Navigator API (see section 4700)
|
||||||
JS: FF78+ the version is spoofed as 78, and the OS as Windows 10, OS 10.15, Android 9, or Linux
|
JS: FF78+ the version is spoofed as ESR, and the OS as Windows 10, OS 10.15, Android 9 (FF91+ as 10), or Linux
|
||||||
HTTP Headers: spoofed as Windows or Android
|
HTTP Headers: spoofed as Windows or Android
|
||||||
1369319 - disable device sensor API (see 4604)
|
1369319 - disable device sensor API (see 4604)
|
||||||
1369357 - disable site specific zoom (see 4605)
|
1369357 - disable site specific zoom (see 4605)
|
||||||
@ -1419,7 +1426,7 @@ user_pref("privacy.firstparty.isolate", true);
|
|||||||
1217290 & 1409677 - enable fingerprinting resistance for WebGL (see 2010-12)
|
1217290 & 1409677 - enable fingerprinting resistance for WebGL (see 2010-12)
|
||||||
1382545 - reduce fingerprinting in Animation API
|
1382545 - reduce fingerprinting in Animation API
|
||||||
1354633 - limit MediaError.message to a whitelist
|
1354633 - limit MediaError.message to a whitelist
|
||||||
1382533 - enable fingerprinting resistance for Presentation API
|
1382533 & 1697680 - enable fingerprinting resistance for Presentation API (FF57-87)
|
||||||
This blocks exposure of local IP Addresses via mDNS (Multicast DNS)
|
This blocks exposure of local IP Addresses via mDNS (Multicast DNS)
|
||||||
FF58+
|
FF58+
|
||||||
967895 - spoof canvas and enable site permission prompt before allowing canvas data extraction
|
967895 - spoof canvas and enable site permission prompt before allowing canvas data extraction
|
||||||
@ -1447,7 +1454,7 @@ user_pref("privacy.firstparty.isolate", true);
|
|||||||
1607316 - spoof pointer as coarse and hover as none (ANDROID) (FF74+)
|
1607316 - spoof pointer as coarse and hover as none (ANDROID) (FF74+)
|
||||||
FF78+
|
FF78+
|
||||||
1621433 - randomize canvas (previously FF58+ returned an all-white canvas) (FF78+)
|
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+)
|
1653987 - limit font visibility to bundled and "Base Fonts" (see 4618) (Windows, Mac, some Linux) (FF80+)
|
||||||
1461454 - spoof smooth=true and powerEfficient=false for supported media in MediaCapabilities (FF82+)
|
1461454 - spoof smooth=true and powerEfficient=false for supported media in MediaCapabilities (FF82+)
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
|
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
|
||||||
@ -1492,20 +1499,18 @@ user_pref("ui.prefersReducedMotion", 1); // [HIDDEN PREF]
|
|||||||
user_pref("_user.js.parrot", "4600 syntax error: the parrot's crossed the Jordan");
|
user_pref("_user.js.parrot", "4600 syntax error: the parrot's crossed the Jordan");
|
||||||
/* [SETUP-non-RFP] Non-RFP users replace the * with a slash on this line to enable these
|
/* [SETUP-non-RFP] Non-RFP users replace the * with a slash on this line to enable these
|
||||||
// FF55+
|
// FF55+
|
||||||
// 4601: [2514] spoof (or limit?) number of CPU cores [FF48+]
|
// 4601: [2514] spoof number of CPU cores [FF48+]
|
||||||
// [NOTE] *may* affect core chrome/Firefox performance, will affect content.
|
|
||||||
// [1] https://bugzilla.mozilla.org/1008453
|
// [1] https://bugzilla.mozilla.org/1008453
|
||||||
// [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21675
|
// [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21675
|
||||||
// [3] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/22127
|
// [3] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/22127
|
||||||
// [4] https://html.spec.whatwg.org/multipage/workers.html#navigator.hardwareconcurrency
|
// [4] https://html.spec.whatwg.org/multipage/workers.html#navigator.hardwareconcurrency
|
||||||
// user_pref("dom.maxHardwareConcurrency", 2);
|
user_pref("dom.maxHardwareConcurrency", 2);
|
||||||
// * * * /
|
|
||||||
// FF56+
|
// FF56+
|
||||||
// 4602: [2411] disable resource/navigation timing
|
// 4602: [2411] disable resource/navigation timing
|
||||||
user_pref("dom.enable_resource_timing", false);
|
user_pref("dom.enable_resource_timing", false);
|
||||||
// 4603: [2412] disable timing attacks
|
// 4603: [2412] disable timing attacks
|
||||||
// [1] https://wiki.mozilla.org/Security/Reviews/Firefox/NavigationTimingAPI
|
// [1] https://wiki.mozilla.org/Security/Reviews/Firefox/NavigationTimingAPI
|
||||||
user_pref("dom.enable_performance", false);
|
// user_pref("dom.enable_performance", false);
|
||||||
// 4604: [2512] disable device sensor API
|
// 4604: [2512] disable device sensor API
|
||||||
// Optional protection depending on your device
|
// Optional protection depending on your device
|
||||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/15758
|
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/15758
|
||||||
@ -1532,7 +1537,6 @@ user_pref("dom.netinfo.enabled", false); // [DEFAULT: true on Android]
|
|||||||
// [2] https://developer.mozilla.org/docs/Web/API/SpeechSynthesis
|
// [2] https://developer.mozilla.org/docs/Web/API/SpeechSynthesis
|
||||||
// [3] https://wiki.mozilla.org/HTML5_Speech_API
|
// [3] https://wiki.mozilla.org/HTML5_Speech_API
|
||||||
user_pref("media.webspeech.synth.enabled", false);
|
user_pref("media.webspeech.synth.enabled", false);
|
||||||
// * * * /
|
|
||||||
// FF57+
|
// FF57+
|
||||||
// 4610: [2506] disable video statistics - JS performance fingerprinting [FF25+]
|
// 4610: [2506] disable video statistics - JS performance fingerprinting [FF25+]
|
||||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/15757
|
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/15757
|
||||||
@ -1545,28 +1549,25 @@ user_pref("media.video_stats.enabled", false);
|
|||||||
// [1] https://developer.mozilla.org/docs/Web/API/Touch_events
|
// [1] https://developer.mozilla.org/docs/Web/API/Touch_events
|
||||||
// [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/10286
|
// [2] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/10286
|
||||||
// user_pref("dom.w3c_touch_events.enabled", 0);
|
// user_pref("dom.w3c_touch_events.enabled", 0);
|
||||||
// * * * /
|
|
||||||
// FF59+
|
// FF59+
|
||||||
// 4612: [2511] disable MediaDevices change detection [FF51+]
|
// 4612: [2511] disable MediaDevices change detection [FF51+]
|
||||||
// [1] https://developer.mozilla.org/docs/Web/Events/devicechange
|
// [1] https://developer.mozilla.org/docs/Web/Events/devicechange
|
||||||
// [2] https://developer.mozilla.org/docs/Web/API/MediaDevices/ondevicechange
|
// [2] https://developer.mozilla.org/docs/Web/API/MediaDevices/ondevicechange
|
||||||
user_pref("media.ondevicechange.enabled", false);
|
user_pref("media.ondevicechange.enabled", false);
|
||||||
// * * * /
|
|
||||||
// FF60+
|
// FF60+
|
||||||
// 4613: [2011] disable WebGL debug info being available to websites
|
// 4613: [2011] disable WebGL debug info being available to websites
|
||||||
// [1] https://bugzilla.mozilla.org/1171228
|
// [1] https://bugzilla.mozilla.org/1171228
|
||||||
// [2] https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info
|
// [2] https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info
|
||||||
user_pref("webgl.enable-debug-renderer-info", false);
|
user_pref("webgl.enable-debug-renderer-info", false);
|
||||||
// * * * /
|
|
||||||
// FF63+
|
// FF63+
|
||||||
// 4614: enforce prefers-reduced-motion as no-preference [FF63+] [RESTART]
|
// 4614: enforce prefers-reduced-motion as no-preference [FF63+] [RESTART]
|
||||||
// 0=no-preference, 1=reduce
|
// 0=no-preference, 1=reduce
|
||||||
user_pref("ui.prefersReducedMotion", 0); // [HIDDEN PREF]
|
user_pref("ui.prefersReducedMotion", 0); // [HIDDEN PREF]
|
||||||
// FF64+
|
// FF64+
|
||||||
// 4615: [2516] disable PointerEvents
|
// 4615: [2516] disable PointerEvents [FF86 or lower]
|
||||||
// [1] https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
|
// [1] https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
|
||||||
|
// [-] https://bugzilla.mozilla.org/1688105
|
||||||
user_pref("dom.w3c_pointer_events.enabled", false);
|
user_pref("dom.w3c_pointer_events.enabled", false);
|
||||||
// * * * /
|
|
||||||
// FF67+
|
// FF67+
|
||||||
// 4616: [2618] disable exposure of system colors to CSS or canvas [FF44+]
|
// 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
|
// [NOTE] See second listed bug: may cause black on black for elements with undefined colors
|
||||||
@ -1577,14 +1578,13 @@ user_pref("ui.use_standins_for_native_colors", true);
|
|||||||
// 0=light, 1=dark : This overrides your OS value
|
// 0=light, 1=dark : This overrides your OS value
|
||||||
user_pref("ui.systemUsesDarkTheme", 0); // [HIDDEN PREF]
|
user_pref("ui.systemUsesDarkTheme", 0); // [HIDDEN PREF]
|
||||||
// FF80+
|
// FF80+
|
||||||
// 4618: limit font visbility (non-ANDROID) [FF79+]
|
// 4618: limit font visibility (non-ANDROID) [FF79+]
|
||||||
// Uses hardcoded lists with two parts: kBaseFonts + kLangPackFonts [1]
|
// Uses hardcoded lists with two parts: kBaseFonts + kLangPackFonts [1]
|
||||||
// 1=only base system fonts, 2=also fonts from optional language packs, 3=also user-installed fonts
|
// 1=only base system fonts, 2=also fonts from optional language packs, 3=also user-installed fonts
|
||||||
// [NOTE] Bundled fonts are auto-allowed
|
// [NOTE] Bundled fonts are auto-allowed
|
||||||
// [1] https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc
|
// [1] https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc
|
||||||
user_pref("layout.css.font-visibility.level", 1);
|
user_pref("layout.css.font-visibility.level", 1);
|
||||||
// ***/
|
// ***/
|
||||||
// ***/
|
|
||||||
|
|
||||||
/*** [SECTION 4700]: RFP ALTERNATIVES (USER AGENT SPOOFING)
|
/*** [SECTION 4700]: RFP ALTERNATIVES (USER AGENT SPOOFING)
|
||||||
These prefs are insufficient and leak. Use RFP and **nothing else**
|
These prefs are insufficient and leak. Use RFP and **nothing else**
|
||||||
@ -1604,10 +1604,11 @@ user_pref("_user.js.parrot", "4700 syntax error: the parrot's taken 'is last bow
|
|||||||
// user_pref("general.useragent.override", ""); // [HIDDEN PREF]
|
// user_pref("general.useragent.override", ""); // [HIDDEN PREF]
|
||||||
|
|
||||||
/*** [SECTION 5000]: PERSONAL
|
/*** [SECTION 5000]: PERSONAL
|
||||||
Non-project related but useful. If any of these interest you, add them to your overrides ***/
|
Non-project related but useful. If any of these interest you, add them to your overrides
|
||||||
|
To save some overrides, we've made a few active as they seem to be universally used ***/
|
||||||
user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
||||||
/* WELCOME & WHAT's NEW NOTICES ***/
|
/* WELCOME & WHAT's NEW NOTICES ***/
|
||||||
// user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switch
|
user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switch
|
||||||
// user_pref("startup.homepage_welcome_url", "");
|
// user_pref("startup.homepage_welcome_url", "");
|
||||||
// user_pref("startup.homepage_welcome_url.additional", "");
|
// user_pref("startup.homepage_welcome_url.additional", "");
|
||||||
// user_pref("startup.homepage_override_url", ""); // What's New page after updates
|
// user_pref("startup.homepage_override_url", ""); // What's New page after updates
|
||||||
@ -1626,6 +1627,7 @@ user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
|||||||
// user_pref("layout.spellcheckDefault", 2); // 0=none, 1-multi-line, 2=multi-line & single-line
|
// user_pref("layout.spellcheckDefault", 2); // 0=none, 1-multi-line, 2=multi-line & single-line
|
||||||
/* UX BEHAVIOR ***/
|
/* UX BEHAVIOR ***/
|
||||||
// user_pref("browser.backspace_action", 2); // 0=previous page, 1=scroll up, 2=do nothing
|
// user_pref("browser.backspace_action", 2); // 0=previous page, 1=scroll up, 2=do nothing
|
||||||
|
// user_pref("browser.quitShortcut.disabled", true); // disable Ctrl-Q quit shortcut [LINUX] [MAC] [FF87+]
|
||||||
// user_pref("browser.tabs.closeWindowWithLastTab", false);
|
// user_pref("browser.tabs.closeWindowWithLastTab", false);
|
||||||
// user_pref("browser.tabs.loadBookmarksInTabs", true); // open bookmarks in a new tab [FF57+]
|
// user_pref("browser.tabs.loadBookmarksInTabs", true); // open bookmarks in a new tab [FF57+]
|
||||||
// user_pref("browser.urlbar.decodeURLsOnCopy", true); // see bugzilla 1320061 [FF53+]
|
// user_pref("browser.urlbar.decodeURLsOnCopy", true); // see bugzilla 1320061 [FF53+]
|
||||||
@ -1633,15 +1635,15 @@ user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
|||||||
// user_pref("ui.key.menuAccessKey", 0); // disable alt key toggling the menu bar [RESTART]
|
// user_pref("ui.key.menuAccessKey", 0); // disable alt key toggling the menu bar [RESTART]
|
||||||
// user_pref("view_source.tab", false); // view "page/selection source" in a new window [FF68+, FF59 and under]
|
// user_pref("view_source.tab", false); // view "page/selection source" in a new window [FF68+, FF59 and under]
|
||||||
/* UX FEATURES: disable and hide the icons and menus ***/
|
/* UX FEATURES: disable and hide the icons and menus ***/
|
||||||
// user_pref("browser.messaging-system.whatsNewPanel.enabled", false); // What's New [FF69+]
|
user_pref("browser.messaging-system.whatsNewPanel.enabled", false); // What's New toolbar icon [FF69+]
|
||||||
// user_pref("extensions.pocket.enabled", false); // Pocket Account [FF46+]
|
// user_pref("extensions.pocket.enabled", false); // Pocket Account [FF46+]
|
||||||
// user_pref("identity.fxaccounts.enabled", false); // Firefox Accounts & Sync [FF60+] [RESTART]
|
// user_pref("identity.fxaccounts.enabled", false); // Firefox Accounts & Sync [FF60+] [RESTART]
|
||||||
// user_pref("reader.parse-on-load.enabled", false); // Reader View
|
// user_pref("reader.parse-on-load.enabled", false); // Reader View
|
||||||
/* OTHER ***/
|
/* OTHER ***/
|
||||||
// user_pref("browser.bookmarks.max_backups", 2);
|
// user_pref("browser.bookmarks.max_backups", 2);
|
||||||
// user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); // disable CFR [FF67+]
|
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); // disable CFR [FF67+]
|
||||||
// [SETTING] General>Browsing>Recommend extensions as you browse
|
// [SETTING] General>Browsing>Recommend extensions as you browse
|
||||||
// user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); // disable CFR [FF67+]
|
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); // disable CFR [FF67+]
|
||||||
// [SETTING] General>Browsing>Recommend features as you browse
|
// [SETTING] General>Browsing>Recommend features as you browse
|
||||||
// user_pref("network.manage-offline-status", false); // see bugzilla 620472
|
// user_pref("network.manage-offline-status", false); // see bugzilla 620472
|
||||||
// user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR)
|
// user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR)
|
||||||
@ -1662,14 +1664,43 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's deprecated!");
|
|||||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/20025
|
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/20025
|
||||||
// [-] https://bugzilla.mozilla.org/1603712
|
// [-] https://bugzilla.mozilla.org/1603712
|
||||||
user_pref("intl.charset.fallback.override", "windows-1252");
|
user_pref("intl.charset.fallback.override", "windows-1252");
|
||||||
// * * * /
|
|
||||||
// FF82
|
// FF82
|
||||||
// 0206: disable geographically specific results/search engines e.g. "browser.search.*.US"
|
// 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
|
// i.e. ignore all of Mozilla's various search engines in multiple locales
|
||||||
// [-] https://bugzilla.mozilla.org/1619926
|
// [-] https://bugzilla.mozilla.org/1619926
|
||||||
user_pref("browser.search.geoSpecificDefaults", false);
|
user_pref("browser.search.geoSpecificDefaults", false);
|
||||||
user_pref("browser.search.geoSpecificDefaults.url", "");
|
user_pref("browser.search.geoSpecificDefaults.url", "");
|
||||||
// * * * /
|
// FF86
|
||||||
|
// 1205: disable SSL Error Reporting
|
||||||
|
// [1] https://firefox-source-docs.mozilla.org/browser/base/sslerrorreport/preferences.html
|
||||||
|
// [-] https://bugzilla.mozilla.org/1681839
|
||||||
|
user_pref("security.ssl.errorReporting.automatic", false);
|
||||||
|
user_pref("security.ssl.errorReporting.enabled", false);
|
||||||
|
user_pref("security.ssl.errorReporting.url", "");
|
||||||
|
// 2653: disable hiding mime types (Options>General>Applications) not associated with a plugin
|
||||||
|
// [-] https://bugzilla.mozilla.org/1581678
|
||||||
|
user_pref("browser.download.hide_plugins_without_extensions", false);
|
||||||
|
// FF87
|
||||||
|
// 0105d: disable Activity Stream recent Highlights in the Library [FF57+]
|
||||||
|
// [-] https://bugzilla.mozilla.org/1689405
|
||||||
|
// user_pref("browser.library.activity-stream.enabled", false);
|
||||||
|
// FF89
|
||||||
|
// 0309: disable sending Flash crash reports
|
||||||
|
// [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed]
|
||||||
|
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
|
||||||
|
// 0310: disable sending the URL of the website where a plugin crashed
|
||||||
|
// [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed]
|
||||||
|
user_pref("dom.ipc.plugins.reportCrashURL", false);
|
||||||
|
// 1243: block unencrypted requests from Flash on encrypted pages to mitigate MitM attacks [FF59+]
|
||||||
|
// [1] https://bugzilla.mozilla.org/1190623
|
||||||
|
// [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed]
|
||||||
|
user_pref("security.mixed_content.block_object_subrequest", true);
|
||||||
|
// 1803: disable Flash plugin
|
||||||
|
// 0=deactivated, 1=ask, 2=enabled
|
||||||
|
// ESR52.x is the last branch to *fully* support NPAPI, FF52+ stable only supports Flash
|
||||||
|
// [NOTE] You can still override individual sites via site permissions
|
||||||
|
// [-] https://bugzilla.mozilla.org/1682030 [underlying NPAPI code removed]
|
||||||
|
user_pref("plugin.state.flash", 0); // [DEFAULT: 1]
|
||||||
// ***/
|
// ***/
|
||||||
|
|
||||||
/* END: internal custom pref to test for syntax errors ***/
|
/* END: internal custom pref to test for syntax errors ***/
|
||||||
|
BIN
wikipiki/parseError.png
Normal file
BIN
wikipiki/parseError.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
Reference in New Issue
Block a user