mirror of
https://github.com/arkenfox/user.js.git
synced 2025-09-01 17:38:30 +02:00
Compare commits
35 Commits
v80.0-beta
...
v81.0-beta
Author | SHA1 | Date | |
---|---|---|---|
c367beabe3 | |||
e1d336a178 | |||
ee3e5f0186 | |||
42b7650d42 | |||
f61d4a0d38 | |||
7fe9784bf8 | |||
ed05c64482 | |||
16c3658040 | |||
515d6ff874 | |||
fc65052286 | |||
6a107d4d2f | |||
eff4b74130 | |||
2532ddcc18 | |||
44e22835c1 | |||
1f545312fd | |||
637e5964db | |||
26bca612d7 | |||
6fdda5fb62 | |||
ed5b158777 | |||
4c4270f1d7 | |||
af51631597 | |||
ae0c980d25 | |||
3e4c56cf27 | |||
18112f9ae8 | |||
c8eee094e0 | |||
78a7c194eb | |||
f606c8b866 | |||
9c98972d14 | |||
75a03df0f7 | |||
76019e6fbe | |||
3c2bd930c3 | |||
ed993d5502 | |||
22d2d702be | |||
8dacf6e91f | |||
fbe1d48fe2 |
@ -8,16 +8,16 @@ assignees: ''
|
|||||||
---
|
---
|
||||||
|
|
||||||
Before you proceed...
|
Before you proceed...
|
||||||
- Issues will be closed as invalid if you do not [troubleshoot](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.4-Troubleshooting), including
|
- Issues will be closed as invalid if you do not [troubleshoot](https://github.com/arkenfox/user.js/wiki/1.4-Troubleshooting), including
|
||||||
- confirming the problem is caused by the `user.js`
|
- confirming the problem is caused by the `user.js`
|
||||||
- searching the `[Setup` tags in the `user.js`
|
- searching the `[Setup` tags in the `user.js`
|
||||||
- Search the GitHub repository. The information you need is most likely here already.
|
- Search the GitHub repository. The information you need is most likely here already.
|
||||||
- Note: We do not support forks
|
- Note: We do not support forks
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
- Extension breakage due to prefs [issue 391](https://github.com/ghacksuserjs/ghacks-user.js/issues/391)
|
- Extension breakage due to prefs [issue 391](https://github.com/arkenfox/user.js/issues/391)
|
||||||
- Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/ghacksuserjs/ghacks-user.js/issues/350)
|
- Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/arkenfox/user.js/issues/350)
|
||||||
- The extension CSP header modification game [issue 664](https://github.com/ghacksuserjs/ghacks-user.js/issues/664)
|
- The extension CSP header modification game [issue 664](https://github.com/arkenfox/user.js/issues/664)
|
||||||
|
|
||||||
If you still need help, help us help you by providing relevant information:
|
If you still need help, help us help you by providing relevant information:
|
||||||
- browser version
|
- browser version
|
||||||
|
2
.github/ISSUE_TEMPLATE/user-js.md
vendored
2
.github/ISSUE_TEMPLATE/user-js.md
vendored
@ -9,7 +9,7 @@ assignees: ''
|
|||||||
|
|
||||||
We value feedback in general, but we value feedback from informed users more. There is no need for you to be an expert to participate (most of us aren't), but we hope that you at least understand our decisions before questioning them. We discuss all changes openly, and we do not make changes lightly. So, if you don't understand why we decided to add/remove/change a certain pref, search the repo. The answer is most certainly here.
|
We value feedback in general, but we value feedback from informed users more. There is no need for you to be an expert to participate (most of us aren't), but we hope that you at least understand our decisions before questioning them. We discuss all changes openly, and we do not make changes lightly. So, if you don't understand why we decided to add/remove/change a certain pref, search the repo. The answer is most certainly here.
|
||||||
|
|
||||||
If some change we made took you by surprise (in the wrong way), remember that keeping track of changes is your responsibility. Watch the repo, read the [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/issues?utf8=✓&q=is%3Aissue+label%3Achangelog), compare [releases](https://github.com/ghacksuserjs/ghacks-user.js/releases) as you update your copy of user.js, or use any other method you prefer.
|
If some change we made took you by surprise (in the wrong way), remember that keeping track of changes is your responsibility. Watch the repo, read the [changelogs](https://github.com/arkenfox/user.js/issues?utf8=✓&q=is%3Aissue+label%3Achangelog), compare [releases](https://github.com/arkenfox/user.js/releases) as you update your copy of user.js, or use any other method you prefer.
|
||||||
|
|
||||||
Clear all of this when you're ready to type.
|
Clear all of this when you're ready to type.
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2017 ghacksuserjs
|
Copyright (c) 2020 arkenfox
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
31
README.md
31
README.md
@ -1,23 +1,28 @@
|
|||||||
### ![][b] user.js
|
### 🟪 user.js
|
||||||
A `user.js` is a configuration file that can control hundreds of Firefox settings. For a more technical breakdown and explanation, you can read more on the [overview](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.1-Overview) wiki page.
|
A `user.js` is a configuration file that can control hundreds of Firefox settings. For a more technical breakdown and explanation, you can read more on the [overview](https://github.com/arkenfox/user.js/wiki/1.1-Overview) wiki page.
|
||||||
|
|
||||||
### ![][b] This user.js
|
### 🟩 the arkenfox user.js
|
||||||
This `user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
|
|
||||||
|
|
||||||
Everyone, experts included, should at least read the [implementation](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation) wiki page, as it contains important information regarding a few `user.js` settings.
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
The `arkenfox user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
|
||||||
|
|
||||||
|
Everyone, experts included, should at least read the [implementation](https://github.com/arkenfox/user.js/wiki/1.3-Implementation) wiki page, as it contains important information regarding a few `user.js` settings.
|
||||||
|
|
||||||
Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://www.torproject.org/about/torusers.html.en) calls for it, or for accessing hidden services.
|
Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://www.torproject.org/about/torusers.html.en) calls for it, or for accessing hidden services.
|
||||||
|
|
||||||
Also be aware that this `user.js` is made specifically for desktop Firefox. Using it as-is in other Gecko-based browsers can be counterproductive, especially in the Tor Browser.
|
Also be aware that the `arkenfox user.js` is made specifically for desktop Firefox. Using it as-is in other Gecko-based browsers can be counterproductive, especially in the Tor Browser.
|
||||||
|
|
||||||
Sitemap: [Releases](https://github.com/ghacksuserjs/ghacks-user.js/releases), [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Achangelog), [Wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki), [stickies](https://github.com/ghacksuserjs/ghacks-user.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22sticky+topic%22). [diffs](https://github.com/ghacksuserjs/ghacks-user.js/issues?q=is%3Aissue+label%3Adiffs)
|
### 🟧 sitemap
|
||||||
|
|
||||||
### ![][b] acknowledgments
|
- [Releases](https://github.com/arkenfox/user.js/releases)
|
||||||
|
- [changelogs](https://github.com/arkenfox/user.js/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Achangelog)
|
||||||
|
- [Wiki](https://github.com/arkenfox/user.js/wiki)
|
||||||
|
- [stickies](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22sticky+topic%22)
|
||||||
|
- [diffs](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+label%3Adiffs)
|
||||||
|
|
||||||
|
### 🟥 acknowledgments
|
||||||
Literally thousands of sources, references and suggestions. Special mention to:
|
Literally thousands of sources, references and suggestions. Special mention to:
|
||||||
|
|
||||||
* [12bytes](https://12bytes.org/articles/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs)
|
* This [12bytes article](https://12bytes.org/articles/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs) which uses the `arkenfox user.js` and supplements it with an additional JS hosted at [Codeberg](https://codeberg.org/12bytes.org/Firefox-user.js-supplement)
|
||||||
* The 12bytes article now uses this user.js and supplements it with an additional JS hosted at [Codeberg](https://codeberg.org/12bytes.org/Firefox-user.js-supplement)
|
|
||||||
|
|
||||||
### ![][b] [](https://opensource.org/licenses/MIT)
|
|
||||||
|
|
||||||
[b]: /wikipiki/bullet01.png
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
theme: jekyll-theme-midnight
|
theme: jekyll-theme-midnight
|
||||||
title: ghacks-user.js
|
title: user.js
|
||||||
description: An ongoing comprehensive user.js template for configuring and hardening Firefox privacy, security and anti-fingerprinting
|
description: An ongoing comprehensive user.js template for configuring and hardening Firefox privacy, security and anti-fingerprinting
|
||||||
|
@ -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.2
|
REM ## version: 2.3
|
||||||
|
|
||||||
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.2 ####
|
ECHO #### v2.3 ####
|
||||||
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."
|
||||||
@ -101,7 +101,7 @@ ECHO add-ons disabled. Then, restart it again normally, and see if the
|
|||||||
CALL :message " problems were solved."
|
CALL :message " problems were solved."
|
||||||
ECHO:
|
ECHO:
|
||||||
CALL :message "If you are able to identify the cause of your issues, please bring it up"
|
CALL :message "If you are able to identify the cause of your issues, please bring it up"
|
||||||
ECHO on ghacks-user.js GitHub repository.
|
ECHO on arkenfox user.js GitHub repository.
|
||||||
ECHO:
|
ECHO:
|
||||||
ECHO:
|
ECHO:
|
||||||
PAUSE
|
PAUSE
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## prefs.js cleaner for Linux/Mac
|
## prefs.js cleaner for Linux/Mac
|
||||||
## author: @claustromaniac
|
## author: @claustromaniac
|
||||||
## version: 1.2
|
## version: 1.3
|
||||||
|
|
||||||
## 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
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ echo -e "\n\n"
|
|||||||
echo " ╔══════════════════════════╗"
|
echo " ╔══════════════════════════╗"
|
||||||
echo " ║ prefs.js cleaner ║"
|
echo " ║ prefs.js cleaner ║"
|
||||||
echo " ║ by claustromaniac ║"
|
echo " ║ by claustromaniac ║"
|
||||||
echo " ║ v1.2 ║"
|
echo " ║ v1.3 ║"
|
||||||
echo " ╚══════════════════════════╝"
|
echo " ╚══════════════════════════╝"
|
||||||
echo -e "\nThis script should be run from your Firefox profile directory.\n"
|
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 "It will remove any entries from prefs.js that also exist in user.js."
|
||||||
@ -90,7 +90,7 @@ select option in Start Help Exit; do
|
|||||||
echo "4. Rename or copy your latest backup to prefs.js."
|
echo "4. Rename or copy your latest backup to prefs.js."
|
||||||
echo "5. Run Firefox and see if you notice anything wrong with it."
|
echo "5. Run Firefox and see if you notice anything wrong with it."
|
||||||
echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved."
|
echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved."
|
||||||
echo -e "If you are able to identify the cause of your issues, please bring it up on ghacks-user.js GitHub repository.\n"
|
echo -e "If you are able to identify the cause of your issues, please bring it up on the arkenfox user.js GitHub repository.\n"
|
||||||
;;
|
;;
|
||||||
Exit)
|
Exit)
|
||||||
fQuit 0
|
fQuit 0
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
Version: up to and including FF/ESR78
|
Version: up to and including FF/ESR78
|
||||||
|
|
||||||
This will reset the preferences that are under sections 4600 & 4700 in the
|
This will reset the preferences that are under sections 4600 & 4700 in the
|
||||||
ghacks user.js. These are the prefs that are no longer necessary, or they
|
arkenfox user.js. These are the prefs that are no longer necessary, or they
|
||||||
conflict with, privacy.resistFingerprinting if you have that enabled.
|
conflict with, privacy.resistFingerprinting if you have that enabled.
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
***/
|
***/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
@ -2,12 +2,12 @@
|
|||||||
Version: up to and including FF/ESR78
|
Version: up to and including FF/ESR78
|
||||||
|
|
||||||
This will reset the preferences that have been deprecated by Mozilla
|
This will reset the preferences that have been deprecated by Mozilla
|
||||||
and used in the ghacks user.js
|
and used in the arkenfox user.js
|
||||||
|
|
||||||
It is in reverse order, so feel free to remove sections that do not apply
|
It is in reverse order, so feel free to remove sections that do not apply
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
***/
|
***/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
@ -1,15 +1,15 @@
|
|||||||
/***
|
/***
|
||||||
This will reset the preferences that have been removed completely from the ghacks user.js.
|
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
||||||
|
|
||||||
Last updated: 28-July-2020
|
Last updated: 14-Sept-2020
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
***/
|
***/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
let ops = [
|
let ops = [
|
||||||
/* removed in ghacks user.js v52-57 */
|
/* removed in arkenfox user.js v52-57 */
|
||||||
/* 52-alpha */
|
/* 52-alpha */
|
||||||
'browser.search.reset.enabled',
|
'browser.search.reset.enabled',
|
||||||
'browser.search.reset.whitelist',
|
'browser.search.reset.whitelist',
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
/*** ghacks-user.js troubleshooter.js v1.6.1 ***/
|
/*** arkenfox user.js troubleshooter.js v1.6.1 ***/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
|
33
updater.bat
33
updater.bat
@ -1,12 +1,12 @@
|
|||||||
@ECHO OFF & SETLOCAL EnableDelayedExpansion
|
@ECHO OFF & SETLOCAL EnableDelayedExpansion
|
||||||
TITLE ghacks user.js updater
|
TITLE arkenfox user.js updater
|
||||||
|
|
||||||
REM ## ghacks-user.js updater for Windows
|
REM ## arkenfox user.js updater for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 4.10
|
REM ## version: 4.12
|
||||||
REM ## instructions: https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts
|
REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
|
||||||
|
|
||||||
SET v=4.10
|
SET v=4.12
|
||||||
|
|
||||||
VERIFY ON
|
VERIFY ON
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
@ -52,7 +52,7 @@ IF DEFINED _updateb (
|
|||||||
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
|
||||||
(
|
(
|
||||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.bat', '[updated]!_myname!.bat')"
|
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/updater.bat', '[updated]!_myname!.bat')"
|
||||||
) >nul 2>&1
|
) >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!
|
||||||
@ -100,7 +100,10 @@ IF NOT EXIST user.js (
|
|||||||
)
|
)
|
||||||
:exitloop
|
:exitloop
|
||||||
IF NOT "!_name!"=="" (
|
IF NOT "!_name!"=="" (
|
||||||
IF /I NOT "!_name!"=="!_name:ghacks=!" (
|
SET "_tempvar="
|
||||||
|
IF /I NOT "!_name!"=="!_name:ghacks=!" SET _tempvar=1
|
||||||
|
IF /I NOT "!_name!"=="!_name:arkenfox=!" SET _tempvar=1
|
||||||
|
IF !_tempvar! EQU 1 (
|
||||||
CALL :message "!_name! !_version:~2!,!_date!"
|
CALL :message "!_name! !_version:~2!,!_date!"
|
||||||
) ELSE (CALL :message "Current user.js version not recognised.")
|
) ELSE (CALL :message "Current user.js version not recognised.")
|
||||||
) ELSE (CALL :message "Current user.js version not recognised.")
|
) ELSE (CALL :message "Current user.js version not recognised.")
|
||||||
@ -108,7 +111,7 @@ IF NOT EXIST user.js (
|
|||||||
ECHO:
|
ECHO:
|
||||||
IF NOT DEFINED _ua (
|
IF NOT DEFINED _ua (
|
||||||
CALL :message "This batch should be run from your Firefox profile directory."
|
CALL :message "This batch should be run from your Firefox profile directory."
|
||||||
ECHO: It will download the latest version of ghacks user.js from github and then
|
ECHO: It will download the latest version of arkenfox user.js from github and then
|
||||||
CALL :message "append any of your own changes from user-overrides.js to it."
|
CALL :message "append any of your own changes from user-overrides.js to it."
|
||||||
CALL :message "Visit the wiki for more detailed information."
|
CALL :message "Visit the wiki for more detailed information."
|
||||||
ECHO:
|
ECHO:
|
||||||
@ -130,16 +133,16 @@ 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..."
|
||||||
(
|
(
|
||||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js', 'user.js.new')"
|
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/user.js', 'user.js.new')"
|
||||||
) >nul 2>&1
|
) >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..."
|
||||||
CALL :activate user.js.new "[SETUP-non-RFP]"
|
CALL :activate user.js.new "[SETUP-non-RFP]"
|
||||||
)
|
)
|
||||||
IF DEFINED _esr (
|
IF DEFINED _esr (
|
||||||
CALL :message "Activating ESR section..."
|
CALL :message "Activating ESR section..."
|
||||||
CALL :activate user.js.new ".x still uses all the following prefs"
|
CALL :activate user.js.new ".x still uses all the following prefs"
|
||||||
)
|
)
|
||||||
IF DEFINED _multi (
|
IF DEFINED _multi (
|
||||||
FORFILES /P user.js-overrides /M *.js >nul 2>&1
|
FORFILES /P user.js-overrides /M *.js >nul 2>&1
|
||||||
@ -216,8 +219,8 @@ ENDLOCAL
|
|||||||
GOTO :EOF
|
GOTO :EOF
|
||||||
|
|
||||||
::::::::::::::: Activate Section :::::::::::::::
|
::::::::::::::: Activate Section :::::::::::::::
|
||||||
:activate
|
:activate
|
||||||
:: arg1 = file
|
:: arg1 = file
|
||||||
:: arg2 = line substring
|
:: arg2 = line substring
|
||||||
SETLOCAL DisableDelayedExpansion
|
SETLOCAL DisableDelayedExpansion
|
||||||
(
|
(
|
||||||
|
32
updater.sh
32
updater.sh
@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
## ghacks-user.js updater for macOS and Linux
|
## arkenfox user.js updater for macOS and Linux
|
||||||
|
|
||||||
## version: 2.7
|
## version: 2.8
|
||||||
## Author: Pat Johnson (@overdodactyl)
|
## Author: Pat Johnson (@overdodactyl)
|
||||||
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ elif [[ $(command -v 'wget') ]]; then
|
|||||||
DOWNLOAD_METHOD='wget --max-redirect 3 --quiet -O'
|
DOWNLOAD_METHOD='wget --max-redirect 3 --quiet -O'
|
||||||
else
|
else
|
||||||
echo -e "${RED}This script requires curl or wget.\nProcess aborted${NC}"
|
echo -e "${RED}This script requires curl or wget.\nProcess aborted${NC}"
|
||||||
exit 0
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -55,14 +55,14 @@ show_banner () {
|
|||||||
echo -e "${BBLUE}
|
echo -e "${BBLUE}
|
||||||
############################################################################
|
############################################################################
|
||||||
#### ####
|
#### ####
|
||||||
#### ghacks user.js ####
|
#### arkenfox user.js ####
|
||||||
#### Hardening the Privacy and Security Settings of Firefox ####
|
#### Hardening the Privacy and Security Settings of Firefox ####
|
||||||
#### Maintained by @Thorin-Oakenpants and @earthlng ####
|
#### Maintained by @Thorin-Oakenpants and @earthlng ####
|
||||||
#### Updater for macOS and Linux by @overdodactyl ####
|
#### Updater for macOS and Linux by @overdodactyl ####
|
||||||
#### ####
|
#### ####
|
||||||
############################################################################"
|
############################################################################"
|
||||||
echo -e "${NC}\n"
|
echo -e "${NC}\n"
|
||||||
echo -e "Documentation for this script is available here: ${CYAN}https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts${NC}\n"
|
echo -e "Documentation for this script is available here: ${CYAN}https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts${NC}\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
@ -76,7 +76,7 @@ usage() {
|
|||||||
Optional Arguments:
|
Optional Arguments:
|
||||||
-h Show this help message and exit.
|
-h Show this help message and exit.
|
||||||
-p PROFILE Path to your Firefox profile (if different than the dir of this script)
|
-p PROFILE Path to your Firefox profile (if different than the dir of this script)
|
||||||
IMPORTANT: if the path includes spaces, wrap the entire argument in quotes.
|
IMPORTANT: If the path contains spaces, wrap the entire argument in quotes.
|
||||||
-l Choose your Firefox profile from a list
|
-l Choose your Firefox profile from a list
|
||||||
-u Update updater.sh and execute silently. Do not seek confirmation.
|
-u Update updater.sh and execute silently. Do not seek confirmation.
|
||||||
-d Do not look for updates to updater.sh.
|
-d Do not look for updates to updater.sh.
|
||||||
@ -88,8 +88,8 @@ Optional Arguments:
|
|||||||
If given a directory, all files inside will be appended recursively.
|
If given a directory, all files inside will be appended recursively.
|
||||||
You can pass multiple files or directories by passing a comma separated list.
|
You can pass multiple files or directories by passing a comma separated list.
|
||||||
Note: If a directory is given, only files inside ending in the extension .js are appended
|
Note: If a directory is given, only files inside ending in the extension .js are appended
|
||||||
IMPORTANT: do not add spaces between files/paths. Ex: -o file1.js,file2.js,dir1
|
IMPORTANT: Do not add spaces between files/paths. Ex: -o file1.js,file2.js,dir1
|
||||||
IMPORTANT: if any files/paths include spaces, wrap the entire argument in quotes.
|
IMPORTANT: If any file/path contains spaces, wrap the entire argument in quotes.
|
||||||
Ex: -o \"override folder\"
|
Ex: -o \"override folder\"
|
||||||
-n Do not append any overrides, even if user-overrides.js exists.
|
-n Do not append any overrides, even if user-overrides.js exists.
|
||||||
-v Open the resulting user.js file.
|
-v Open the resulting user.js file.
|
||||||
@ -104,13 +104,13 @@ Optional Arguments:
|
|||||||
#########################
|
#########################
|
||||||
|
|
||||||
# Download files
|
# Download files
|
||||||
download_file () { # expects URL as argument ($1)
|
download_file () { # expects URL as argument ($1)
|
||||||
declare -r tf=$(mktemp)
|
declare -r tf=$(mktemp)
|
||||||
|
|
||||||
$DOWNLOAD_METHOD "${tf}" "$1" && echo "$tf" || echo '' # return the temp-filename or empty string on error
|
$DOWNLOAD_METHOD "${tf}" "$1" && echo "$tf" || echo '' # return the temp-filename or empty string on error
|
||||||
}
|
}
|
||||||
|
|
||||||
open_file () { #expects one argument: file_path
|
open_file () { # expects one argument: file_path
|
||||||
if [ "$(uname)" == 'Darwin' ]; then
|
if [ "$(uname)" == 'Darwin' ]; then
|
||||||
open "$1"
|
open "$1"
|
||||||
elif [ "$(uname -s | cut -c -5)" == "Linux" ]; then
|
elif [ "$(uname -s | cut -c -5)" == "Linux" ]; then
|
||||||
@ -195,7 +195,7 @@ update_updater () {
|
|||||||
return 0 # User signified not to check for updates
|
return 0 # User signified not to check for updates
|
||||||
fi
|
fi
|
||||||
|
|
||||||
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.sh')"
|
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh')"
|
||||||
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
|
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
|
||||||
|
|
||||||
if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then
|
if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then
|
||||||
@ -211,7 +211,7 @@ update_updater () {
|
|||||||
mv "${tmpfile}" "${SCRIPT_DIR}/updater.sh"
|
mv "${tmpfile}" "${SCRIPT_DIR}/updater.sh"
|
||||||
chmod u+x "${SCRIPT_DIR}/updater.sh"
|
chmod u+x "${SCRIPT_DIR}/updater.sh"
|
||||||
"${SCRIPT_DIR}/updater.sh" "$@" -d
|
"${SCRIPT_DIR}/updater.sh" "$@" -d
|
||||||
exit 1
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ remove_comments () { # expects 2 arguments: from-file and to-file
|
|||||||
|
|
||||||
# Applies latest version of user.js and any custom overrides
|
# Applies latest version of user.js and any custom overrides
|
||||||
update_userjs () {
|
update_userjs () {
|
||||||
declare -r newfile="$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')"
|
declare -r newfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/user.js')"
|
||||||
[ -z "${newfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && return 1 # check if download failed
|
[ -z "${newfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && return 1 # check if download failed
|
||||||
|
|
||||||
echo -e "Please observe the following information:
|
echo -e "Please observe the following information:
|
||||||
@ -370,12 +370,12 @@ if [ $# != 0 ]; then
|
|||||||
ESR=true
|
ESR=true
|
||||||
;;
|
;;
|
||||||
r)
|
r)
|
||||||
tfile="$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')"
|
tfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/user.js')"
|
||||||
[ -z "${tfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && exit 1 # check if download failed
|
[ -z "${tfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && exit 1 # check if download failed
|
||||||
mv $tfile "${tfile}.js"
|
mv $tfile "${tfile}.js"
|
||||||
echo -e "${ORANGE}Warning: user.js was saved to temporary file ${tfile}.js${NC}"
|
echo -e "${ORANGE}Warning: user.js was saved to temporary file ${tfile}.js${NC}"
|
||||||
open_file "${tfile}.js"
|
open_file "${tfile}.js"
|
||||||
exit 1
|
exit 0
|
||||||
;;
|
;;
|
||||||
\?)
|
\?)
|
||||||
echo -e "${RED}\n Error! Invalid option: -$OPTARG${NC}" >&2
|
echo -e "${RED}\n Error! Invalid option: -$OPTARG${NC}" >&2
|
||||||
@ -383,7 +383,7 @@ if [ $# != 0 ]; then
|
|||||||
;;
|
;;
|
||||||
:)
|
:)
|
||||||
echo -e "${RED}Error! Option -$OPTARG requires an argument.${NC}" >&2
|
echo -e "${RED}Error! Option -$OPTARG requires an argument.${NC}" >&2
|
||||||
exit 1
|
exit 2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
73
user.js
73
user.js
@ -1,22 +1,22 @@
|
|||||||
/******
|
/******
|
||||||
* name: ghacks user.js
|
* name: arkenfox user.js
|
||||||
* date: 28 Aug 2020
|
* date: 23 Sep 2020
|
||||||
* version 80-beta
|
* version 81-beta
|
||||||
* url: https://github.com/ghacksuserjs/ghacks-user.js
|
* url: https://github.com/arkenfox/user.js
|
||||||
* license: MIT: https://github.com/ghacksuserjs/ghacks-user.js/blob/master/LICENSE.txt
|
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
||||||
|
|
||||||
* releases: These are end-of-stable-life-cycle legacy archives.
|
* releases: These are end-of-stable-life-cycle legacy archives.
|
||||||
*Always* use the master branch user.js for a current up-to-date version
|
*Always* use the master branch user.js for a current up-to-date version
|
||||||
url: https://github.com/ghacksuserjs/ghacks-user.js/releases
|
url: https://github.com/arkenfox/user.js/releases
|
||||||
|
|
||||||
* README:
|
* README:
|
||||||
|
|
||||||
0. Consider using Tor Browser if it meets your needs or fits your threat model better
|
0. Consider using Tor Browser if it meets your needs or fits your threat model better
|
||||||
* https://www.torproject.org/about/torusers.html.en
|
* https://www.torproject.org/about/torusers.html.en
|
||||||
1. READ the full README
|
1. READ the full README
|
||||||
* https://github.com/ghacksuserjs/ghacks-user.js/blob/master/README.md
|
* https://github.com/arkenfox/user.js/blob/master/README.md
|
||||||
2. READ this
|
2. READ this
|
||||||
* https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation
|
* https://github.com/arkenfox/user.js/wiki/1.3-Implementation
|
||||||
3. If you skipped steps 1 and 2 above (shame on you), then here is the absolute minimum
|
3. If you skipped steps 1 and 2 above (shame on you), then here is the absolute minimum
|
||||||
* Real time binary checks with Google services are disabled (0412)
|
* Real time binary checks with Google services are disabled (0412)
|
||||||
* You will still get prompts to update Firefox, but auto-installing them is disabled (0302a)
|
* You will still get prompts to update Firefox, but auto-installing them is disabled (0302a)
|
||||||
@ -38,7 +38,7 @@
|
|||||||
[SETUP-HARDEN] maybe you should consider using the Tor Browser
|
[SETUP-HARDEN] maybe you should consider using the Tor Browser
|
||||||
* [WARNING] tags are extra special and used sparingly, so heed them
|
* [WARNING] tags are extra special and used sparingly, so heed them
|
||||||
4. BACKUP your profile folder before implementing (and/or test in a new/cloned profile)
|
4. BACKUP your profile folder before implementing (and/or test in a new/cloned profile)
|
||||||
5. KEEP UP TO DATE: https://github.com/ghacksuserjs/ghacks-user.js/wiki#small_orange_diamond-maintenance
|
5. KEEP UP TO DATE: https://github.com/arkenfox/user.js/wiki#small_orange_diamond-maintenance
|
||||||
|
|
||||||
* INDEX:
|
* INDEX:
|
||||||
|
|
||||||
@ -206,8 +206,7 @@ user_pref("app.update.auto", false);
|
|||||||
* when false, extension detail tabs will have no description ***/
|
* when false, extension detail tabs will have no description ***/
|
||||||
// user_pref("extensions.getAddons.cache.enabled", false);
|
// user_pref("extensions.getAddons.cache.enabled", 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 ***/
|
||||||
* [SETTING] General>Firefox Updates>Automatically update search engines (FF72-) ***/
|
|
||||||
user_pref("browser.search.update", false);
|
user_pref("browser.search.update", false);
|
||||||
/* 0309: disable sending Flash crash reports ***/
|
/* 0309: disable sending Flash crash reports ***/
|
||||||
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
|
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
|
||||||
@ -352,7 +351,7 @@ user_pref("browser.ping-centre.telemetry", false);
|
|||||||
/* 0517: disable Form Autofill
|
/* 0517: disable Form Autofill
|
||||||
* [NOTE] Stored data is NOT secure (uses a JSON file)
|
* [NOTE] Stored data is NOT secure (uses a JSON file)
|
||||||
* [NOTE] Heuristics controls Form Autofill on forms without @autocomplete attributes
|
* [NOTE] Heuristics controls Form Autofill on forms without @autocomplete attributes
|
||||||
* [SETTING] Privacy & Security>Forms and Autofill>Autofill addresses (FF74+)
|
* [SETTING] Privacy & Security>Forms and Autofill>Autofill addresses
|
||||||
* [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill ***/
|
* [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill ***/
|
||||||
user_pref("extensions.formautofill.addresses.enabled", false); // [FF55+]
|
user_pref("extensions.formautofill.addresses.enabled", false); // [FF55+]
|
||||||
user_pref("extensions.formautofill.available", "off"); // [FF56+]
|
user_pref("extensions.formautofill.available", "off"); // [FF56+]
|
||||||
@ -370,29 +369,29 @@ 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); // [HIDDEN PREF ESR68 or lower] [DEFAULT: true FF70+]
|
user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true FF70+]
|
||||||
/* 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+]
|
||||||
/* 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: disable "Hyperlink Auditing" (click tracking) and enforce same host in case
|
/* 0606: enforce no "Hyperlink Auditing" (click tracking)
|
||||||
* [1] https://www.bleepingcomputer.com/news/software/major-browsers-to-prevent-disabling-of-click-tracking-privacy-risk/ ***/
|
* [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);
|
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!");
|
||||||
/* 0701: disable IPv6
|
/* 0701: disable IPv6
|
||||||
* IPv6 can be abused, especially regarding MAC addresses. They also do not play nice
|
* IPv6 can be abused, especially with MAC addresses, and they do not play nice with VPNs. That's
|
||||||
* with VPNs. That's even assuming your ISP and/or router and/or website can handle it.
|
* even assuming your ISP and/or router and/or website can handle it. Sites will fall back to IPv4
|
||||||
* [STATS] Firefox telemetry (June 2020) shows only 5% of all connections are IPv6
|
* [STATS] Firefox telemetry (June 2020) shows only 5% of all connections are IPv6
|
||||||
* [NOTE] This is just an application level fallback. Disabling IPv6 is best done at an
|
* [NOTE] This is just an application level fallback. Disabling IPv6 is best done at an
|
||||||
* OS/network level, and/or configured properly in VPN setups. If you are not masking your IP,
|
* OS/network level, and/or configured properly in VPN setups. If you are not masking your IP,
|
||||||
* then this won't make much difference. If you are masking your IP, then it can only help.
|
* then this won't make much difference. If you are masking your IP, then it can only help.
|
||||||
* [TEST] https://ipleak.org/
|
* [TEST] https://ipleak.org/
|
||||||
* [1] https://github.com/ghacksuserjs/ghacks-user.js/issues/437#issuecomment-403740626
|
* [1] https://github.com/arkenfox/user.js/issues/437#issuecomment-403740626
|
||||||
* [2] https://www.internetsociety.org/tag/ipv6-security/ (see Myths 2,4,5,6) ***/
|
* [2] https://www.internetsociety.org/tag/ipv6-security/ (see Myths 2,4,5,6) ***/
|
||||||
user_pref("network.dns.disableIPv6", true);
|
user_pref("network.dns.disableIPv6", true);
|
||||||
/* 0702: disable HTTP2
|
/* 0702: disable HTTP2
|
||||||
@ -505,7 +504,7 @@ user_pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
|
|||||||
* [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 ***/
|
||||||
// user_pref("browser.urlbar.autoFill", false);
|
// user_pref("browser.urlbar.autoFill", false);
|
||||||
/* 0860: disable search and form history
|
/* 0860: disable search and form history
|
||||||
* [SETUP-WEB] Be aware thet autocomplete form data can be read by third parties, see [1] [2]
|
* [SETUP-WEB] Be aware that autocomplete form data can be read by third parties, see [1] [2]
|
||||||
* [NOTE] We also clear formdata on exit (see 2803)
|
* [NOTE] We also clear formdata on exit (see 2803)
|
||||||
* [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history
|
* [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history
|
||||||
* [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html
|
* [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html
|
||||||
@ -569,7 +568,7 @@ user_pref("network.auth.subresource-http-auth-allow", 1);
|
|||||||
[2] https://robertheaton.com/2014/01/20/cookieless-user-tracking-for-douchebags/
|
[2] https://robertheaton.com/2014/01/20/cookieless-user-tracking-for-douchebags/
|
||||||
[3] https://www.grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache
|
[3] https://www.grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache
|
||||||
[4] https://medium.com/@stoically/enhance-your-privacy-in-firefox-with-temporary-containers-33925cd6cd21
|
[4] https://medium.com/@stoically/enhance-your-privacy-in-firefox-with-temporary-containers-33925cd6cd21
|
||||||
[5] https://github.com/ghacksuserjs/ghacks-user.js/wiki/4.2.4-Header-Editor
|
[5] https://github.com/arkenfox/user.js/wiki/4.2.4-Header-Editor
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!");
|
user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!");
|
||||||
/** CACHE ***/
|
/** CACHE ***/
|
||||||
@ -581,13 +580,14 @@ user_pref("browser.cache.disk.enable", false);
|
|||||||
/* 1003: disable memory cache
|
/* 1003: disable memory cache
|
||||||
* capacity: -1=determine dynamically (default), 0=none, n=memory capacity in kibibytes ***/
|
* capacity: -1=determine dynamically (default), 0=none, n=memory capacity in kibibytes ***/
|
||||||
// user_pref("browser.cache.memory.enable", false);
|
// user_pref("browser.cache.memory.enable", false);
|
||||||
// user_pref("browser.cache.memory.capacity", 0); // [HIDDEN PREF ESR]
|
// user_pref("browser.cache.memory.capacity", 0);
|
||||||
/* 1006: disable permissions manager from writing to disk [RESTART]
|
/* 1006: disable permissions manager from writing to disk [RESTART]
|
||||||
* [NOTE] This means any permission changes are session only
|
* [NOTE] This means any permission changes are session only
|
||||||
* [1] https://bugzilla.mozilla.org/967812 ***/
|
* [1] https://bugzilla.mozilla.org/967812 ***/
|
||||||
// user_pref("permissions.memory_only", true); // [HIDDEN PREF]
|
// user_pref("permissions.memory_only", true); // [HIDDEN PREF]
|
||||||
/* 1007: disable media cache from writing to disk in Private Browsing
|
/* 1007: disable media cache from writing to disk in Private Browsing
|
||||||
* [NOTE] MSE (Media Source Extensions) are already stored in-memory in PB ***/
|
* [NOTE] MSE (Media Source Extensions) are already stored in-memory in PB
|
||||||
|
* [SETUP-WEB] ESR78: playback might break on subsequent loading (1650281) ***/
|
||||||
user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); // [FF75+]
|
user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); // [FF75+]
|
||||||
user_pref("media.memory_cache_max_size", 65536);
|
user_pref("media.memory_cache_max_size", 65536);
|
||||||
|
|
||||||
@ -726,7 +726,7 @@ user_pref("security.family_safety.mode", 0);
|
|||||||
user_pref("security.cert_pinning.enforcement_level", 2);
|
user_pref("security.cert_pinning.enforcement_level", 2);
|
||||||
|
|
||||||
/** MIXED CONTENT ***/
|
/** MIXED CONTENT ***/
|
||||||
/* 1240: disable insecure active content on https pages
|
/* 1240: enforce no insecure active content on https pages
|
||||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21323 ***/
|
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21323 ***/
|
||||||
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] ***/
|
||||||
@ -736,9 +736,11 @@ user_pref("security.mixed_content.block_display_content", true);
|
|||||||
user_pref("security.mixed_content.block_object_subrequest", true);
|
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
|
||||||
|
* [WARNING] This is experimental, see [1] and you can't set exceptions if FPI is enabled, see [2]
|
||||||
* [SETTING] to add site exceptions: Page Info>Permissions>Use insecure HTTP (FF80+)
|
* [SETTING] to add site exceptions: Page Info>Permissions>Use insecure HTTP (FF80+)
|
||||||
* [SETTING] Privacy & Security>HTTPS-Only Mode (FF80+ with browser.preferences.exposeHTTPSOnly = true)
|
* [SETTING] Privacy & Security>HTTPS-Only Mode (FF80+ with browser.preferences.exposeHTTPSOnly = true)
|
||||||
* [1] https://bugzilla.mozilla.org/1613063 ***/
|
* [1] https://bugzilla.mozilla.org/1613063 [META]
|
||||||
|
* [2] https://bugzilla.mozilla.org/1647829 ***/
|
||||||
// user_pref("dom.security.https_only_mode", true); // [FF76+]
|
// user_pref("dom.security.https_only_mode", true); // [FF76+]
|
||||||
// user_pref("dom.security.https_only_mode_pbm", true); // [FF80+]
|
// user_pref("dom.security.https_only_mode_pbm", true); // [FF80+]
|
||||||
// user_pref("dom.security.https_only_mode.upgrade_local", true); // [FF77+]
|
// user_pref("dom.security.https_only_mode.upgrade_local", true); // [FF77+]
|
||||||
@ -785,7 +787,7 @@ user_pref("browser.ssl_override_behavior", 1);
|
|||||||
* [TEST] https://expired.badssl.com/ ***/
|
* [TEST] https://expired.badssl.com/ ***/
|
||||||
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||||
/* 1273: display "insecure" icon and "Not Secure" text on HTTP sites ***/
|
/* 1273: display "insecure" icon and "Not Secure" text on HTTP sites ***/
|
||||||
user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true FF70+]
|
// user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true FF70+]
|
||||||
user_pref("security.insecure_connection_text.enabled", true); // [FF60+]
|
user_pref("security.insecure_connection_text.enabled", true); // [FF60+]
|
||||||
|
|
||||||
/*** [SECTION 1400]: FONTS ***/
|
/*** [SECTION 1400]: FONTS ***/
|
||||||
@ -813,7 +815,6 @@ user_pref("gfx.font_rendering.graphite.enabled", false);
|
|||||||
* [NOTE] in FF80 RFP restricts the whitelist to bundled and "Base Fonts"
|
* [NOTE] in FF80 RFP restricts the whitelist to bundled and "Base Fonts"
|
||||||
* ...and in FF81+ the whitelist **overrides** RFP's font visibility (see 4618)
|
* ...and in FF81+ the whitelist **overrides** RFP's font visibility (see 4618)
|
||||||
* [WARNING] Creating your own probably highly-unique whitelist will raise your entropy.
|
* [WARNING] Creating your own probably highly-unique whitelist will raise your entropy.
|
||||||
* Eventually privacy.resistFingerprinting (see 4500) will cover this
|
|
||||||
* [1] https://bugzilla.mozilla.org/1121643 ***/
|
* [1] https://bugzilla.mozilla.org/1121643 ***/
|
||||||
// user_pref("font.system.whitelist", ""); // [HIDDEN PREF]
|
// user_pref("font.system.whitelist", ""); // [HIDDEN PREF]
|
||||||
|
|
||||||
@ -963,14 +964,14 @@ user_pref("dom.disable_window_move_resize", true);
|
|||||||
/* 2203: open links targeting new windows in a new tab instead
|
/* 2203: open links targeting new windows in a new tab instead
|
||||||
* This stops malicious window sizes and some screen resolution leaks.
|
* This stops malicious window sizes and some screen resolution leaks.
|
||||||
* You can still right-click a link and open in a new window.
|
* You can still right-click a link and open in a new window.
|
||||||
* [TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#screen
|
* [TEST] https://arkenfox.github.io/TZP/tzp.html#screen
|
||||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/9881 ***/
|
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/9881 ***/
|
||||||
user_pref("browser.link.open_newwindow", 3);
|
user_pref("browser.link.open_newwindow", 3); // 1=most recent window or tab 2=new window, 3=new tab
|
||||||
user_pref("browser.link.open_newwindow.restriction", 0);
|
user_pref("browser.link.open_newwindow.restriction", 0);
|
||||||
/* 2204: disable Fullscreen API (requires user interaction) to prevent screen-resolution leaks
|
/* 2204: disable Fullscreen API (requires user interaction) to prevent screen-resolution leaks
|
||||||
* [NOTE] You can still manually toggle the browser's fullscreen state (F11),
|
* [NOTE] You can still manually toggle the browser's fullscreen state (F11),
|
||||||
* but this pref will disable embedded video/game fullscreen controls, e.g. youtube
|
* but this pref will disable embedded video/game fullscreen controls, e.g. youtube
|
||||||
* [TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#screen ***/
|
* [TEST] https://arkenfox.github.io/TZP/tzp.html#screen ***/
|
||||||
// user_pref("full-screen-api.enabled", false);
|
// user_pref("full-screen-api.enabled", false);
|
||||||
/* 2210: block popup windows
|
/* 2210: block popup windows
|
||||||
* [SETTING] Privacy & Security>Permissions>Block pop-up windows ***/
|
* [SETTING] Privacy & Security>Permissions>Block pop-up windows ***/
|
||||||
@ -1142,15 +1143,14 @@ user_pref("browser.uitour.url", "");
|
|||||||
* [SETTING] Devtools>Advanced Settings>Enable browser chrome and add-on debugging toolboxes
|
* [SETTING] Devtools>Advanced Settings>Enable browser chrome and add-on debugging toolboxes
|
||||||
* [1] https://github.com/pyllyukko/user.js/issues/179#issuecomment-246468676 ***/
|
* [1] https://github.com/pyllyukko/user.js/issues/179#issuecomment-246468676 ***/
|
||||||
user_pref("devtools.chrome.enabled", false);
|
user_pref("devtools.chrome.enabled", false);
|
||||||
/* 2608: disable remote debugging
|
/* 2608: reset remote debugging to disabled
|
||||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/16222 ***/
|
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/16222 ***/
|
||||||
user_pref("devtools.debugger.remote-enabled", false); // [DEFAULT: false]
|
user_pref("devtools.debugger.remote-enabled", false); // [DEFAULT: false]
|
||||||
/* 2609: disable MathML (Mathematical Markup Language) [FF51+] [SETUP-HARDEN]
|
/* 2609: disable MathML (Mathematical Markup Language) [FF51+] [SETUP-HARDEN]
|
||||||
* [TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#misc
|
* [TEST] https://arkenfox.github.io/TZP/tzp.html#misc
|
||||||
* [1] https://bugzilla.mozilla.org/1173199 ***/
|
* [1] https://bugzilla.mozilla.org/1173199 ***/
|
||||||
// user_pref("mathml.disabled", true);
|
// user_pref("mathml.disabled", true);
|
||||||
/* 2610: disable in-content SVG (Scalable Vector Graphics) [FF53+]
|
/* 2610: disable in-content SVG (Scalable Vector Graphics) [FF53+]
|
||||||
* [NOTE] In FF70+ and ESR68.1.0+ this no longer affects extensions (1564208)
|
|
||||||
* [WARNING] Expect breakage incl. youtube player controls. Best left for a "hardened" profile.
|
* [WARNING] Expect breakage incl. youtube player controls. Best left for a "hardened" profile.
|
||||||
* [1] https://bugzilla.mozilla.org/1216893 ***/
|
* [1] https://bugzilla.mozilla.org/1216893 ***/
|
||||||
// user_pref("svg.disabled", true);
|
// user_pref("svg.disabled", true);
|
||||||
@ -1392,7 +1392,7 @@ user_pref("privacy.firstparty.isolate", true);
|
|||||||
* [2] https://bugzilla.mozilla.org/1492607
|
* [2] https://bugzilla.mozilla.org/1492607
|
||||||
* [3] https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage ***/
|
* [3] https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage ***/
|
||||||
// user_pref("privacy.firstparty.isolate.restrict_opener_access", true); // [DEFAULT: true]
|
// user_pref("privacy.firstparty.isolate.restrict_opener_access", true); // [DEFAULT: true]
|
||||||
// user_pref("privacy.firstparty.isolate.block_post_message", true); // [HIDDEN PREF ESR]
|
// user_pref("privacy.firstparty.isolate.block_post_message", true);
|
||||||
/* 4003: enable site partitioning (FF78+)
|
/* 4003: enable site partitioning (FF78+)
|
||||||
* [1] https://bugzilla.mozilla.org/1590107 [META] */
|
* [1] https://bugzilla.mozilla.org/1590107 [META] */
|
||||||
user_pref("privacy.partition.network_state", true);
|
user_pref("privacy.partition.network_state", true);
|
||||||
@ -1408,7 +1408,7 @@ user_pref("privacy.partition.network_state", true);
|
|||||||
[NOTE] Info only: To set a size, open a XUL (chrome) page (such as about:config) which is at
|
[NOTE] Info only: To set a size, open a XUL (chrome) page (such as about:config) which is at
|
||||||
100% zoom, hit Shift+F4 to open the scratchpad, type window.resizeTo(1366,768), hit Ctrl+R to run.
|
100% zoom, hit Shift+F4 to open the scratchpad, type window.resizeTo(1366,768), hit Ctrl+R to run.
|
||||||
Test your window size, do some math, resize to allow for all the non inner window elements
|
Test your window size, do some math, resize to allow for all the non inner window elements
|
||||||
[TEST] https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html#screen
|
[TEST] https://arkenfox.github.io/TZP/tzp.html#screen
|
||||||
** 1281949 - spoof screen orientation (FF50+)
|
** 1281949 - spoof screen orientation (FF50+)
|
||||||
** 1281963 - hide the contents of navigator.plugins and navigator.mimeTypes (FF50+)
|
** 1281963 - hide the contents of navigator.plugins and navigator.mimeTypes (FF50+)
|
||||||
FF53: Fixes GetSupportedNames in nsMimeTypeArray and nsPluginArray (1324044)
|
FF53: Fixes GetSupportedNames in nsMimeTypeArray and nsPluginArray (1324044)
|
||||||
@ -1681,9 +1681,9 @@ user_pref("_user.js.parrot", "5000 syntax error: this is an ex-parrot!");
|
|||||||
// user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR)
|
// user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR)
|
||||||
|
|
||||||
/*** [SECTION 9999]: DEPRECATED / REMOVED / LEGACY / RENAMED
|
/*** [SECTION 9999]: DEPRECATED / REMOVED / LEGACY / RENAMED
|
||||||
Documentation denoted as [-]. Items deprecated in FF68 or earlier have been archived at [1],
|
Documentation denoted as [-]. Items deprecated in FF78 or earlier have been archived at [1],
|
||||||
which also provides a link-clickable, viewer-friendly version of the deprecated bugzilla tickets
|
which also provides a link-clickable, viewer-friendly version of the deprecated bugzilla tickets
|
||||||
[1] https://github.com/ghacksuserjs/ghacks-user.js/issues/123
|
[1] https://github.com/arkenfox/user.js/issues/123
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "9999 syntax error: the parrot's deprecated!");
|
user_pref("_user.js.parrot", "9999 syntax error: the parrot's deprecated!");
|
||||||
/* ESR78.x still uses all the following prefs
|
/* ESR78.x still uses all the following prefs
|
||||||
@ -1692,7 +1692,6 @@ user_pref("_user.js.parrot", "9999 syntax error: the parrot's deprecated!");
|
|||||||
// 0212: enforce fallback text encoding to match en-US
|
// 0212: enforce fallback text encoding to match en-US
|
||||||
// When the content or server doesn't declare a charset the browser will
|
// When the content or server doesn't declare a charset the browser will
|
||||||
// fallback to the "Current locale" based on your application language
|
// fallback to the "Current locale" based on your application language
|
||||||
// [SETTING] General>Language and Appearance>Fonts and Colors>Advanced>Text Encoding for Legacy Content (FF72-)
|
|
||||||
// [TEST] https://hsivonen.com/test/moz/check-charset.htm
|
// [TEST] https://hsivonen.com/test/moz/check-charset.htm
|
||||||
// [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
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.1 KiB |
Reference in New Issue
Block a user