mirror of
https://github.com/arkenfox/user.js.git
synced 2025-09-01 17:38:30 +02:00
Compare commits
293 Commits
v57.0-alph
...
59.0
Author | SHA1 | Date | |
---|---|---|---|
c62bff5c70 | |||
3bae3ed5ba | |||
aa91ea1680 | |||
d244198438 | |||
871e7ed87b | |||
48901d156a | |||
8b4e6c95aa | |||
fd1aa74ff3 | |||
b3e92ab7cc | |||
30fbaba4df | |||
72e1858926 | |||
3ad6ed465e | |||
3fcad90996 | |||
383b8ca943 | |||
6a98aa7ba0 | |||
2037449fbd | |||
e18bd0f32c | |||
715fff06cf | |||
3675a68009 | |||
062dd6c023 | |||
bc17b4e450 | |||
682e12fe57 | |||
6cb27ca78c | |||
c38ae56232 | |||
04f1449003 | |||
53a69ff5bc | |||
e8c02278eb | |||
457611f079 | |||
09aca71822 | |||
f90193ab76 | |||
ffced9b4c0 | |||
0b3395b520 | |||
d4a20165ef | |||
089f0826cf | |||
b83d53e681 | |||
14456b5a29 | |||
517e40703f | |||
7f7282a975 | |||
6fd415eab2 | |||
d4083e6a3e | |||
3192027f52 | |||
2a402310cc | |||
1469e13df8 | |||
92585ecd93 | |||
205d64ab29 | |||
3812aed9e9 | |||
a83f5a0f5f | |||
19c40eeb18 | |||
61d2b46a02 | |||
b93c7e026c | |||
ec687cad75 | |||
6b691ae7e3 | |||
40da3653d3 | |||
77a5894fa0 | |||
11bcf46063 | |||
2dd2f5febe | |||
2de13258ff | |||
40391a26a2 | |||
50186412e4 | |||
9892c3cbb7 | |||
887e93a4f2 | |||
7f1a82365c | |||
8996071cd0 | |||
cc166b8091 | |||
0260176fef | |||
09e2b181e4 | |||
4dafbb89df | |||
5e08ad8c60 | |||
6366ab8afc | |||
2980073bca | |||
e8b9f72885 | |||
b502317caf | |||
5385b8c4ab | |||
17fe261170 | |||
3d5276484a | |||
542b814814 | |||
0473c73860 | |||
a6fd4d1db1 | |||
95251e98da | |||
08a5410b88 | |||
93a8f89191 | |||
4fdf322193 | |||
ca11a88189 | |||
a290b3ad3d | |||
d924c01518 | |||
1738f9efb1 | |||
3ef5ba3ac7 | |||
2969ab5b13 | |||
3405bae6d8 | |||
a4eaf9494e | |||
ea6e9be787 | |||
0ebe5d0fa8 | |||
ff77f7260c | |||
93c3457d18 | |||
bc371c8c9d | |||
622b70aa37 | |||
c83670f708 | |||
c399bb1d2d | |||
0a11a87fd0 | |||
91521dbc84 | |||
14c1620994 | |||
0da73d606b | |||
6a0f162d64 | |||
038201fb07 | |||
91c8da5f12 | |||
22198d420a | |||
6becf50fe6 | |||
4fb3040042 | |||
5005376742 | |||
48f95f2ac7 | |||
e5c14eb700 | |||
7a3810f6ca | |||
c8d7694fd3 | |||
343f77c5e9 | |||
a0ec17955d | |||
e195aceb54 | |||
6882a64bf2 | |||
806d6edc6d | |||
d1ab8fd10c | |||
db97478cd1 | |||
48ec3da18d | |||
8c35bf5d11 | |||
a3bffb83bd | |||
b30b988137 | |||
f820ecbacb | |||
3acef78f59 | |||
ac16b9c77b | |||
1069915372 | |||
978e51b515 | |||
c5374b60d8 | |||
2a2b80902a | |||
d82791a933 | |||
d89e9834ff | |||
04c7ed94da | |||
c82d6f70fe | |||
dd29583735 | |||
e3ad7055dd | |||
c1c368bce9 | |||
73f03c449f | |||
31ec621d3f | |||
8f02a5bc40 | |||
73811e49be | |||
d7ab2f83e4 | |||
c0f9e6ab2b | |||
7cd2c650cb | |||
a1f10513ea | |||
74f18db85a | |||
2ad3fbdbd3 | |||
68a44bcbb4 | |||
1f15e287fb | |||
65b64f44b6 | |||
643206a3da | |||
05ac6dd0ec | |||
daff5f6fa6 | |||
018fb2a321 | |||
4f22afac7f | |||
94bbb6bab4 | |||
b9266bba1d | |||
68efac4cc8 | |||
db5706d949 | |||
3ffdd67904 | |||
83de87b18d | |||
99016960fa | |||
52efb2af7a | |||
dbe0056c95 | |||
987c996cce | |||
a1cae1ae74 | |||
0938d7bab2 | |||
490d81657f | |||
4170529e39 | |||
ffae671b27 | |||
48861e57e1 | |||
b74b79f11c | |||
13534e33bc | |||
148daa94cf | |||
88b08d4ac5 | |||
ea76ea91af | |||
8af0d4fa7a | |||
877d6a5af2 | |||
e0cd64391c | |||
464ffcd7e6 | |||
16e8d6ca7a | |||
21b21d2adb | |||
6973bb459c | |||
1571e067e7 | |||
1789fd902b | |||
8f4ab83301 | |||
eeef37154d | |||
be563241d6 | |||
002780df8c | |||
901670fffc | |||
3a403cd120 | |||
25321e7262 | |||
ca947c6ae4 | |||
c9f62822a6 | |||
240bcbfbee | |||
1262edee61 | |||
2f5ae9b294 | |||
fbd9f344af | |||
323da46204 | |||
28f06b41e3 | |||
77ca6af2d9 | |||
e663b8a968 | |||
f8ec9cebdd | |||
24df3274f1 | |||
f5a4ec0cbd | |||
abbbf8ef0e | |||
b9c8329778 | |||
8f68ee3e9e | |||
4d2c26790f | |||
ab492c58c3 | |||
4fc7490405 | |||
11b0b779b8 | |||
4ae5967e09 | |||
ebd233bf6e | |||
f2ed64c576 | |||
f09c860d96 | |||
753c4695a6 | |||
7655648174 | |||
f8472fe501 | |||
d82475a7c3 | |||
008257283b | |||
d9e935de3c | |||
e73eeefa64 | |||
744944a9ab | |||
5631fadd4a | |||
ea54827582 | |||
28ba2a705a | |||
a9def5992f | |||
9aa9752dc4 | |||
eb2a9b2493 | |||
60cfacadb3 | |||
85e633dc60 | |||
61aeaa4714 | |||
b802ecb18f | |||
9b5d4521d1 | |||
8f34f8e0ff | |||
f683383ba3 | |||
83aa56e353 | |||
467b3d8602 | |||
183a62448f | |||
ac751a74f2 | |||
457ef9ec2f | |||
a6c93b3982 | |||
ccaf06973b | |||
ce3c077d06 | |||
edec5cc366 | |||
8a99bb350c | |||
fc47792df2 | |||
e5d00be8f0 | |||
ac7ad78d1d | |||
cf6f614f5b | |||
00e17281dc | |||
9a4982ec0e | |||
0a97660506 | |||
3737b65f53 | |||
635cacfe54 | |||
a126a32109 | |||
c9e7f1ccfa | |||
ff9370b714 | |||
b1fd2ba48b | |||
bdf69cd198 | |||
22695f464b | |||
44e129ea3d | |||
6ff3d1eb36 | |||
a389572243 | |||
51d98fac09 | |||
d71321027b | |||
ed4c9202b9 | |||
5b931b06e8 | |||
d3eda589bb | |||
0be33e2408 | |||
eba3470a81 | |||
1c997693ff | |||
76b24fa6aa | |||
3b95e04b56 | |||
3ec7dae496 | |||
a269e53f88 | |||
1789fea4f1 | |||
679ca59233 | |||
82d20c328d | |||
41a55ad5f2 | |||
2c1e4ae542 | |||
910d4e2e59 | |||
2bf9e6a773 | |||
d279839ba6 | |||
98bb8ad203 | |||
a281090cdc | |||
44316934f3 | |||
18048832da | |||
497f6ed58c | |||
63b924f101 | |||
e1e40847e0 |
16
.gitattributes
vendored
16
.gitattributes
vendored
@ -1,8 +1,14 @@
|
||||
* text=auto
|
||||
## * text=auto
|
||||
|
||||
*.js text
|
||||
*.md text
|
||||
*.yml text
|
||||
*.txt text
|
||||
*.js text=auto
|
||||
*.md text=auto
|
||||
*.yml text=auto
|
||||
*.txt text=auto
|
||||
*.sh text=auto
|
||||
*.bat eol=crlf
|
||||
|
||||
*.png binary
|
||||
|
||||
.gitattributes export-ignore
|
||||
*.yml export-ignore
|
||||
wikipiki export-ignore
|
||||
|
30
README.md
30
README.md
@ -2,36 +2,20 @@
|
||||
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.
|
||||
|
||||
###  ghacks user.js
|
||||
The [ghacks user.js](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/user.js) is a template, which, as provided, aims ( with [extensions](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Extensions) <sup>1</sup> ) to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
|
||||
The `ghacks user.js` is a **template**, which, as provided, 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).
|
||||
|
||||
We aim to INFORM and give you CHOICES. No one size fits all, so customize it! And not all sites have the same requirements, so use [profiles](https://github.com/ghacksuserjs/ghacks-user.js/wiki/2.3-Concurrent-Profiles) with custom versions. We won't set you wrong.
|
||||
Everyone, experts included, should at least read the [implementation](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation) wiki page, as it contains important information regarding a few `ghacks user.js` settings.
|
||||
|
||||
INFORMATION IS POWER. So you can make informed decisions to better protect yourself online, we aim to be:
|
||||
|
||||
* Accessible (provide information and simpler, less-technical descriptions if possible)
|
||||
* Accountable (provide reputable references/sources, [test sites](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-C:-Test-Sites), dispel bad advice)
|
||||
* Change trackable (yay! we're on github now, with commits)
|
||||
* Compatible (including a [deprecated section](https://github.com/ghacksuserjs/ghacks-user.js/issues/123), [releases](https://github.com/ghacksuserjs/ghacks-user.js/releases))
|
||||
* Comprehensive (including enforcing defaults and future-proofing)
|
||||
* Current and up-to-date with stable (including [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/search?q=label%3Achangelog&type=Issues&utf8=%E2%9C%93))
|
||||
* Detailed (preference versioning, hidden preference information, explanations, and more)
|
||||
* Easy to use and discuss (sections, sub-sections, numbering)
|
||||
* Helpful (including a [wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki) with features such as [extensions](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Extensions), [user scripts](https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-User-Scripts), [references](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-D:-References) and more)
|
||||
* Innovative (formatting, special tags, and future plans such as branches)
|
||||
|
||||
###  usage
|
||||
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 default settings we use. The rest of the [wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki) is helpful as well.
|
||||
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)
|
||||
|
||||
###  acknowledgments
|
||||
Literally thousands of sources, references and suggestions. That said...
|
||||
|
||||
* Martin Brinkmann at [ghacks](https://www.ghacks.net/) <sup>2</sup>
|
||||
* 100% genuine super-nice all-around good guy
|
||||
* Martin Brinkmann at [ghacks](https://www.ghacks.net/) <sup>1</sup>
|
||||
* The ghacks community and commentators
|
||||
* Special mentions to [earthlng](https://github.com/earthlng), Tom Hawack, Just me, Conker, Rockin’ Jerry, Ainatar, Parker Lewis
|
||||
* [12bytes](http://12bytes.org/articles/tech/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs)
|
||||
* [12bytes](http://12bytes.org/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs)
|
||||
* The 12bytes article now uses this user.js and supplements it with an additonal JS hosted right [here](https://github.com/atomGit/Firefox-user.js) at github
|
||||
|
||||
<sup>1</sup>  Important: We HIGHLY recommend using uBlock Origin, uMatrix and a cookie extension. Section 0400, if modified, allows Tracking Protection and Safe Browsing to be disabled. Do this at your own risk. See the [implementation](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation) wiki page for more.
|
||||
<sup>1</sup> The ghacks user.js was an independent project by [Thorin-Oakenpants](https://github.com/Thorin-Oakenpants) started in early 2015 and was [first published](https://www.ghacks.net/2015/08/18/a-comprehensive-list-of-firefox-privacy-and-security-settings/) at ghacks in August 2015. With Martin Brinkmann's blessing, it will keep the ghacks name.
|
||||
|
||||
<sup>2</sup> The ghacks user.js was an independent project by [Thorin-Oakenpants](https://github.com/Thorin-Oakenpants) started in early 2015 and was [first published](https://www.ghacks.net/2015/08/18/a-comprehensive-list-of-firefox-privacy-and-security-settings/) at ghacks in August 2015. It was kept up-to-date and expanded by the original author with three major updates and articles. With Martin Brinkmann's blessing, it will keep the ghacks name.
|
||||
###  [](https://opensource.org/licenses/MIT)
|
||||
|
113
prefsCleaner.bat
Normal file
113
prefsCleaner.bat
Normal file
@ -0,0 +1,113 @@
|
||||
@ECHO OFF
|
||||
TITLE prefs.js cleaner
|
||||
|
||||
REM ### prefs.js cleaner for Windows
|
||||
REM ## author: @claustromaniac
|
||||
REM ## version: 1.2
|
||||
|
||||
SETLOCAL EnableDelayedExpansion
|
||||
:begin
|
||||
ECHO:
|
||||
ECHO:
|
||||
ECHO ########################################
|
||||
ECHO #### prefs.js cleaner for Windows ####
|
||||
ECHO #### by claustromaniac ####
|
||||
ECHO #### v1.2 ####
|
||||
ECHO ########################################
|
||||
ECHO:
|
||||
CALL :message "This script should be run from your Firefox profile directory."
|
||||
ECHO It will remove any entries from prefs.js that also exist in user.js.
|
||||
CALL :message "This will allow inactive preferences to be reset to their default values."
|
||||
ECHO This Firefox profile shouldn't be in use during the process.
|
||||
CALL :message ""
|
||||
TIMEOUT 1 /nobreak >nul
|
||||
CHOICE /C SHE /N /M "Start [S] Help [H] Exit [E]"
|
||||
CLS
|
||||
IF ERRORLEVEL 3 (EXIT /B)
|
||||
IF ERRORLEVEL 2 (GOTO :showhelp)
|
||||
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)
|
||||
CALL :FFcheck
|
||||
CALL :message "Backing up prefs.js..."
|
||||
COPY /B /V /Y prefs.js "prefs-backup-!date:/=-!_!time::=.!.js"
|
||||
CALL :message "Cleaning prefs.js..."
|
||||
CALL :cleanup
|
||||
CLS
|
||||
CALL :message "All done^!"
|
||||
TIMEOUT 5 >nul
|
||||
EXIT /B
|
||||
|
||||
REM ########## Abort Function ###########
|
||||
:abort
|
||||
CALL :message %1
|
||||
TIMEOUT %~2 >nul
|
||||
EXIT
|
||||
REM ########## Message Function #########
|
||||
:message
|
||||
SETLOCAL DisableDelayedExpansion
|
||||
ECHO:
|
||||
ECHO: %~1
|
||||
ECHO:
|
||||
ENDLOCAL
|
||||
GOTO :EOF
|
||||
REM ####### Firefox Check Function ######
|
||||
:FFcheck
|
||||
TASKLIST /FI "IMAGENAME eq firefox.exe" 2>NUL | FIND /I /N "firefox.exe">NUL
|
||||
IF NOT ERRORLEVEL 1 (
|
||||
CLS
|
||||
CALL :message "Firefox is still running."
|
||||
ECHO If you're not currently using this profile you can continue, otherwise
|
||||
CALL :message "close Firefox first^!"
|
||||
ECHO:
|
||||
PAUSE
|
||||
CLS
|
||||
CALL :message "Resuming..."
|
||||
TIMEOUT 5 /nobreak >nul
|
||||
)
|
||||
GOTO :EOF
|
||||
REM ######### Cleanup Function ##########
|
||||
:cleanup
|
||||
SETLOCAL DisableDelayedExpansion
|
||||
(
|
||||
FOR /F "tokens=1,* delims=:" %%G IN ('FINDSTR /N "^" prefs.js') DO (
|
||||
SET "_line=%%H"
|
||||
SETLOCAL EnableDelayedExpansion
|
||||
IF /I "user_pref"=="!_line:~0,9!" (
|
||||
FOR /F tokens^=2^ delims^=^" %%I IN ("!_line:.=\.!") DO (
|
||||
FINDSTR /R /C:"user_pref[ ]*\([ ]*[\"']%%I[\"'][ ]*," user.js >nul
|
||||
IF ERRORLEVEL 1 (ECHO:!_line!)
|
||||
)
|
||||
) ELSE (
|
||||
ECHO:!_line!
|
||||
)
|
||||
ENDLOCAL
|
||||
)
|
||||
)>tempcleanedprefs
|
||||
ENDLOCAL
|
||||
MOVE /Y tempcleanedprefs prefs.js
|
||||
GOTO :EOF
|
||||
REM ############### Help ##################
|
||||
:showhelp
|
||||
MODE 80,34
|
||||
CLS
|
||||
CALL :message "This script creates a backup of your prefs.js file before doing anything."
|
||||
ECHO It should be safe, but you can follow these steps if something goes wrong:
|
||||
ECHO:
|
||||
CALL :message " 1. Make sure Firefox is closed."
|
||||
ECHO 2. Delete prefs.js in your profile folder.
|
||||
CALL :message " 3. Delete Invalidprefs.js if you have one in the same folder."
|
||||
ECHO 4. Rename or copy your latest backup to prefs.js.
|
||||
CALL :message " 5. Run Firefox and see if you notice anything wrong with it."
|
||||
ECHO 6. If you do notice something wrong, especially with your extensions,
|
||||
CALL :message " and/or with the UI, go to about:support, and restart Firefox with"
|
||||
ECHO add-ons disabled. Then, restart it again normally, and see if the
|
||||
CALL :message " problems were solved."
|
||||
ECHO:
|
||||
CALL :message "If you are able to identify the cause of your issues, please bring it up"
|
||||
ECHO on ghacks-user.js GitHub repository.
|
||||
ECHO:
|
||||
ECHO:
|
||||
PAUSE
|
||||
CLS
|
||||
GOTO :begin
|
||||
REM #####################################
|
61
scratchpad-scripts/ghacks-clear-57-[changes-only].js
Normal file
61
scratchpad-scripts/ghacks-clear-57-[changes-only].js
Normal file
@ -0,0 +1,61 @@
|
||||
/***
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* --- 57-alpha --- */
|
||||
/* commented out */
|
||||
'browser.storageManager.enabled',
|
||||
'dom.storageManager.enabled',
|
||||
/* removed from the user.js */
|
||||
'browser.search.geoip.timeout',
|
||||
'geo.wifi.xhr.timeout',
|
||||
'gfx.layerscope.enabled',
|
||||
'media.webspeech.recognition.enable',
|
||||
/* moved to RFP ALTERNATIVES */
|
||||
'dom.w3c_touch_events.enabled',
|
||||
'media.video_stats.enabled',
|
||||
/* moved to DEPRECATED/REMOVED */
|
||||
'browser.bookmarks.showRecentlyBookmarked',
|
||||
'browser.casting.enabled',
|
||||
'devtools.webide.autoinstallFxdtAdapters',
|
||||
'media.eme.chromium-api.enabled',
|
||||
'social.directories',
|
||||
'social.enabled',
|
||||
'social.remote-install.enabled',
|
||||
'social.share.activationPanelEnabled',
|
||||
'social.shareDirectory',
|
||||
'social.toast-notifications.enabled',
|
||||
'social.whitelist',
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
let c = 0;
|
||||
for (let i = 0, len = ops.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
||||
Services.prefs.clearUserPref(ops[i]);
|
||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
||||
console.log("reset", ops[i]);
|
||||
c++;
|
||||
} else { console.log("failed to reset", ops[i]); }
|
||||
}
|
||||
}
|
||||
|
||||
focus();
|
||||
|
||||
let d = (c==1) ? " pref" : " prefs";
|
||||
if (c > 0) {
|
||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
||||
} else { alert("nothing to reset"); }
|
||||
|
||||
})();
|
@ -0,0 +1,60 @@
|
||||
/***
|
||||
|
||||
This will reset the preferences that are under sections 4600 & 4700 in the ghacks user.js
|
||||
up to and including release 57-alpha. These are the prefs that are no longer necessary,
|
||||
or they conlfict with, privacy.resistFingerprinting if you have that enabled.
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* section 4600 */
|
||||
'dom.maxHardwareConcurrency',
|
||||
'dom.enable_resource_timing',
|
||||
'dom.enable_performance',
|
||||
'device.sensors.enabled',
|
||||
'browser.zoom.siteSpecific',
|
||||
'dom.gamepad.enabled',
|
||||
'dom.netinfo.enabled',
|
||||
'media.webspeech.synth.enabled',
|
||||
'geo.enabled',
|
||||
'media.video_stats.enabled',
|
||||
'dom.w3c_touch_events.enabled',
|
||||
/* section 4700 */
|
||||
'general.useragent.override',
|
||||
'general.buildID.override',
|
||||
'general.appname.override',
|
||||
'general.appversion.override',
|
||||
'general.platform.override',
|
||||
'general.oscpu.override',
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
let c = 0;
|
||||
for (let i = 0, len = ops.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
||||
Services.prefs.clearUserPref(ops[i]);
|
||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
||||
console.log("reset", ops[i]);
|
||||
c++;
|
||||
} else { console.log("failed to reset", ops[i]); }
|
||||
}
|
||||
}
|
||||
|
||||
focus();
|
||||
|
||||
let d = (c==1) ? " pref" : " prefs";
|
||||
if (c > 0) {
|
||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
||||
} else { alert("nothing to reset"); }
|
||||
|
||||
})();
|
167
scratchpad-scripts/ghacks-clear-all-up-to-57-[deprecated].js
Normal file
167
scratchpad-scripts/ghacks-clear-all-up-to-57-[deprecated].js
Normal file
@ -0,0 +1,167 @@
|
||||
/***
|
||||
|
||||
This will reset the preferences that have been deprecated by Mozilla
|
||||
and used in the ghacks user.js up to and including release 57-alpha
|
||||
|
||||
It is in reverse order, so feel free to remove sections that do not apply
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* deprecated */
|
||||
|
||||
/* ESR52.x users can remove sections 53-57 but it is not
|
||||
crucial as your user.js will reinstate them */
|
||||
/* 57 */
|
||||
'social.whitelist',
|
||||
'social.toast-notifications.enabled',
|
||||
'social.shareDirectory',
|
||||
'social.remote-install.enabled',
|
||||
'social.directories',
|
||||
'social.share.activationPanelEnabled',
|
||||
'social.enabled',
|
||||
'media.eme.chromium-api.enabled',
|
||||
'devtools.webide.autoinstallFxdtAdapters',
|
||||
'browser.casting.enabled',
|
||||
'browser.bookmarks.showRecentlyBookmarked',
|
||||
/* 56 */
|
||||
'extensions.screenshots.system-disabled',
|
||||
'extensions.formautofill.experimental',
|
||||
/* 55 */
|
||||
'geo.security.allowinsecure',
|
||||
'browser.selfsupport.enabled',
|
||||
'browser.selfsupport.url',
|
||||
'browser.newtabpage.directory.ping',
|
||||
'browser.formfill.saveHttpsForms',
|
||||
'browser.formautofill.enabled',
|
||||
'dom.enable_user_timing',
|
||||
'dom.keyboardevent.code.enabled',
|
||||
'browser.tabs.animate',
|
||||
'browser.fullscreen.animate',
|
||||
/* 54 */
|
||||
'browser.safebrowsing.reportMalwareMistakeURL',
|
||||
'browser.safebrowsing.reportPhishMistakeURL',
|
||||
'media.eme.apiVisible',
|
||||
'dom.archivereader.enabled',
|
||||
/* 53 */
|
||||
'security.tls.unrestricted_rc4_fallback',
|
||||
'plugin.scan.Acrobat',
|
||||
'plugin.scan.Quicktime',
|
||||
'plugin.scan.WindowsMediaPlayer',
|
||||
'media.getusermedia.screensharing.allow_on_old_platforms',
|
||||
'dom.beforeAfterKeyboardEvent.enabled',
|
||||
/* End of ESR52.x section */
|
||||
|
||||
/* 52 */
|
||||
'network.http.sendSecureXSiteReferrer',
|
||||
'media.gmp-eme-adobe.enabled',
|
||||
'media.gmp-eme-adobe.visible',
|
||||
'media.gmp-eme-adobe.autoupdate',
|
||||
'dom.telephony.enabled',
|
||||
'dom.battery.enabled',
|
||||
/* 51 */
|
||||
'media.block-play-until-visible',
|
||||
'dom.vr.oculus050.enabled',
|
||||
'network.http.spdy.enabled.v3-1',
|
||||
/* 50 */
|
||||
'browser.usedOnWindows10.introURL',
|
||||
'plugins.update.notifyUser',
|
||||
'browser.safebrowsing.enabled',
|
||||
'security.ssl3.ecdhe_ecdsa_rc4_128_sha',
|
||||
'security.ssl3.ecdhe_rsa_rc4_128_sha',
|
||||
'security.ssl3.rsa_rc4_128_md5',
|
||||
'security.ssl3.rsa_rc4_128_sha',
|
||||
'plugins.update.url',
|
||||
/* 49 */
|
||||
'loop.enabled',
|
||||
'loop.server',
|
||||
'loop.feedback.formURL',
|
||||
'loop.feedback.manualFormURL',
|
||||
'loop.facebook.appId',
|
||||
'loop.facebook.enabled',
|
||||
'loop.facebook.fallbackUrl',
|
||||
'loop.facebook.shareUrl',
|
||||
'loop.logDomains',
|
||||
'dom.disable_window_open_feature.scrollbars',
|
||||
'dom.push.udp.wakeupEnabled',
|
||||
/* 48 */
|
||||
'browser.urlbar.unifiedcomplete',
|
||||
/* 47 */
|
||||
'toolkit.telemetry.unifiedIsOptIn',
|
||||
'datareporting.healthreport.about.reportUrlUnified',
|
||||
'browser.history.allowPopState',
|
||||
'browser.history.allowPushState',
|
||||
'browser.history.allowReplaceState',
|
||||
/* 46 */
|
||||
'datareporting.healthreport.service.enabled',
|
||||
'datareporting.healthreport.documentServerURI',
|
||||
'datareporting.policy.dataSubmissionEnabled.v2',
|
||||
'browser.safebrowsing.appRepURL',
|
||||
'browser.polaris.enabled',
|
||||
'browser.pocket.enabled',
|
||||
'browser.pocket.api',
|
||||
'browser.pocket.site',
|
||||
'browser.pocket.oAuthConsumerKey',
|
||||
/* 45 */
|
||||
'browser.sessionstore.privacy_level_deferred',
|
||||
/* 44 */
|
||||
'browser.safebrowsing.provider.google.appRepURL',
|
||||
'security.tls.insecure_fallback_hosts.use_static_list',
|
||||
'dom.workers.sharedWorkers.enabled',
|
||||
'dom.disable_image_src_set',
|
||||
/* 43 */
|
||||
'browser.safebrowsing.gethashURL',
|
||||
'browser.safebrowsing.updateURL',
|
||||
'browser.safebrowsing.malware.reportURL',
|
||||
'browser.trackingprotection.gethashURL',
|
||||
'browser.trackingprotection.updateURL',
|
||||
'pfs.datasource.url',
|
||||
'browser.search.showOneOffButtons',
|
||||
/* 42 and earlier */
|
||||
'privacy.clearOnShutdown.passwords', // 42
|
||||
'full-screen-api.approval-required', // 42
|
||||
'browser.safebrowsing.reportErrorURL', // 41
|
||||
'browser.safebrowsing.reportGenericURL', // 41
|
||||
'browser.safebrowsing.reportMalwareErrorURL', // 41
|
||||
'browser.safebrowsing.reportMalwareURL', // 41
|
||||
'browser.safebrowsing.reportURL', // 41
|
||||
'plugins.enumerable_names', // 41
|
||||
'network.http.spdy.enabled.http2draft', // 41
|
||||
'camera.control.autofocus_moving_callback.enabled', // 37
|
||||
'privacy.donottrackheader.value', // 36
|
||||
'network.websocket.enabled', // 35
|
||||
'dom.network.enabled', // 31
|
||||
'pageThumbs.enabled', // 25
|
||||
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
let c = 0;
|
||||
for (let i = 0, len = ops.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
||||
Services.prefs.clearUserPref(ops[i]);
|
||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
||||
console.log("reset", ops[i]);
|
||||
c++;
|
||||
} else { console.log("failed to reset", ops[i]); }
|
||||
}
|
||||
}
|
||||
|
||||
focus();
|
||||
|
||||
let d = (c==1) ? " pref" : " prefs";
|
||||
if (c > 0) {
|
||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
||||
} else { alert("nothing to reset"); }
|
||||
|
||||
})();
|
63
scratchpad-scripts/ghacks-clear-all-up-to-57-[removed].js
Normal file
63
scratchpad-scripts/ghacks-clear-all-up-to-57-[removed].js
Normal file
@ -0,0 +1,63 @@
|
||||
/***
|
||||
|
||||
This will reset the preferences that have been removed completely
|
||||
from the ghacks user.js up to and including release 57-alpha
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* removed in ghacks user.js v52-57 */
|
||||
/* 52-alpha */
|
||||
'browser.search.reset.enabled',
|
||||
'browser.search.reset.whitelist',
|
||||
/* 54-alpha */
|
||||
'browser.migrate.automigrate.enabled',
|
||||
'services.sync.enabled',
|
||||
'webextensions.storage.sync.enabled',
|
||||
'webextensions.storage.sync.serverURL',
|
||||
/* 55-alpha */
|
||||
'dom.keyboardevent.dispatch_during_composition', // default is false anyway
|
||||
'dom.vr.oculus.enabled', // covered by dom.vr.enabled
|
||||
'dom.vr.openvr.enabled', // ditto
|
||||
'dom.vr.osvr.enabled', // ditto
|
||||
'extensions.pocket.api', // covered by extensions.pocket.enabled
|
||||
'extensions.pocket.oAuthConsumerKey', // ditto
|
||||
'extensions.pocket.site', // ditto
|
||||
/* 56-alpha: none */
|
||||
/* 57-alpha */
|
||||
'geo.wifi.xhr.timeout', // covered by geo.enabled
|
||||
'browser.search.geoip.timeout', // ditto
|
||||
'media.webspeech.recognition.enable', // default is false anyway
|
||||
'gfx.layerscope.enabled', // default is false anyway
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
let c = 0;
|
||||
for (let i = 0, len = ops.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
||||
Services.prefs.clearUserPref(ops[i]);
|
||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
||||
console.log("reset", ops[i]);
|
||||
c++;
|
||||
} else { console.log("failed to reset", ops[i]); }
|
||||
}
|
||||
}
|
||||
|
||||
focus();
|
||||
|
||||
let d = (c==1) ? " pref" : " prefs";
|
||||
if (c > 0) {
|
||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
||||
} else { alert("nothing to reset"); }
|
||||
|
||||
})();
|
@ -0,0 +1,409 @@
|
||||
/***
|
||||
|
||||
This will reset EVERYTHING that is ACTIVE in the ghacks user.js
|
||||
release 57-alpha master, but excludes the following:
|
||||
- prefs removed since publishing on github
|
||||
- e10s section 1100
|
||||
- privacy.resistFingerprinting alternatives sections 4600 & 4700
|
||||
- deprecated section 9999
|
||||
|
||||
It does not matter if you clear everything, as a restart will reapply your user.js
|
||||
Total 477 prefs from 57-alpha master: 118 inactive, 359 active
|
||||
These have been broken into two scripts for convenience
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* 359 ACTIVE prefs in 57-alpha master */
|
||||
'accessibility.force_disabled',
|
||||
'alerts.showFavicons',
|
||||
'app.update.auto',
|
||||
'app.update.service.enabled',
|
||||
'app.update.silent',
|
||||
'app.update.staging.enabled',
|
||||
'beacon.enabled',
|
||||
'breakpad.reportURL',
|
||||
'browser.aboutHomeSnippets.updateUrl',
|
||||
'browser.backspace_action',
|
||||
'browser.bookmarks.max_backups',
|
||||
'browser.cache.disk.capacity',
|
||||
'browser.cache.disk.enable',
|
||||
'browser.cache.disk.smart_size.enabled',
|
||||
'browser.cache.disk.smart_size.first_run',
|
||||
'browser.cache.disk_cache_ssl',
|
||||
'browser.cache.frecency_experiment',
|
||||
'browser.cache.offline.enable',
|
||||
'browser.crashReports.unsubmittedCheck.autoSubmit',
|
||||
'browser.crashReports.unsubmittedCheck.enabled',
|
||||
'browser.ctrlTab.previews',
|
||||
'browser.display.use_document_fonts',
|
||||
'browser.download.folderList',
|
||||
'browser.download.forbid_open_with',
|
||||
'browser.download.hide_plugins_without_extensions',
|
||||
'browser.download.manager.addToRecentDocs',
|
||||
'browser.download.useDownloadDir',
|
||||
'browser.eme.ui.enabled',
|
||||
'browser.fixup.alternate.enabled',
|
||||
'browser.fixup.hide_user_pass',
|
||||
'browser.formfill.enable',
|
||||
'browser.helperApps.deleteTempFileOnExit',
|
||||
'browser.laterrun.enabled',
|
||||
'browser.library.activity-stream.enabled',
|
||||
'browser.link.open_newwindow',
|
||||
'browser.link.open_newwindow.restriction',
|
||||
'browser.newtab.preload',
|
||||
'browser.newtabpage.activity-stream.enabled',
|
||||
'browser.newtabpage.directory.source',
|
||||
'browser.newtabpage.enabled',
|
||||
'browser.newtabpage.enhanced',
|
||||
'browser.newtabpage.introShown',
|
||||
'browser.offline-apps.notify',
|
||||
'browser.onboarding.enabled',
|
||||
'browser.pagethumbnails.capturing_disabled',
|
||||
'browser.ping-centre.telemetry',
|
||||
'browser.rights.3.shown',
|
||||
'browser.safebrowsing.downloads.remote.enabled',
|
||||
'browser.safebrowsing.downloads.remote.url',
|
||||
'browser.safebrowsing.provider.google.reportMalwareMistakeURL',
|
||||
'browser.safebrowsing.provider.google.reportPhishMistakeURL',
|
||||
'browser.safebrowsing.provider.google.reportURL',
|
||||
'browser.safebrowsing.provider.google4.reportMalwareMistakeURL',
|
||||
'browser.safebrowsing.provider.google4.reportPhishMistakeURL',
|
||||
'browser.safebrowsing.provider.google4.reportURL',
|
||||
'browser.safebrowsing.reportPhishURL',
|
||||
'browser.search.countryCode',
|
||||
'browser.search.geoip.url',
|
||||
'browser.search.geoSpecificDefaults',
|
||||
'browser.search.geoSpecificDefaults.url',
|
||||
'browser.search.region',
|
||||
'browser.search.suggest.enabled',
|
||||
'browser.search.update',
|
||||
'browser.send_pings',
|
||||
'browser.send_pings.require_same_host',
|
||||
'browser.sessionhistory.max_entries',
|
||||
'browser.sessionstore.interval',
|
||||
'browser.sessionstore.max_tabs_undo',
|
||||
'browser.sessionstore.max_windows_undo',
|
||||
'browser.sessionstore.privacy_level',
|
||||
'browser.sessionstore.resume_from_crash',
|
||||
'browser.shell.checkDefaultBrowser',
|
||||
'browser.shell.shortcutFavicons',
|
||||
'browser.slowStartup.maxSamples',
|
||||
'browser.slowStartup.notificationDisabled',
|
||||
'browser.slowStartup.samples',
|
||||
'browser.ssl_override_behavior',
|
||||
'browser.startup.homepage_override.mstone',
|
||||
'browser.tabs.closeWindowWithLastTab',
|
||||
'browser.tabs.crashReporting.sendReport',
|
||||
'browser.tabs.insertRelatedAfterCurrent',
|
||||
'browser.tabs.loadDivertedInBackground',
|
||||
'browser.tabs.loadInBackground',
|
||||
'browser.tabs.selectOwnerOnClose',
|
||||
'browser.tabs.warnOnClose',
|
||||
'browser.tabs.warnOnCloseOtherTabs',
|
||||
'browser.tabs.warnOnOpen',
|
||||
'browser.taskbar.lists.enabled',
|
||||
'browser.taskbar.lists.frequent.enabled',
|
||||
'browser.taskbar.lists.recent.enabled',
|
||||
'browser.taskbar.lists.tasks.enabled',
|
||||
'browser.taskbar.previews.enable',
|
||||
'browser.uitour.enabled',
|
||||
'browser.uitour.url',
|
||||
'browser.urlbar.autoFill',
|
||||
'browser.urlbar.autoFill.typed',
|
||||
'browser.urlbar.clickSelectsAll',
|
||||
'browser.urlbar.decodeURLsOnCopy',
|
||||
'browser.urlbar.doubleClickSelectsAll',
|
||||
'browser.urlbar.filter.javascript',
|
||||
'browser.urlbar.maxHistoricalSearchSuggestions',
|
||||
'browser.urlbar.oneOffSearches',
|
||||
'browser.urlbar.speculativeConnect.enabled',
|
||||
// 'browser.urlbar.suggest.bookmark', // this may not get reset by your user.js - see issue #308
|
||||
// 'browser.urlbar.suggest.history', // ditto
|
||||
// 'browser.urlbar.suggest.openpage', // ditto
|
||||
'browser.urlbar.suggest.searches',
|
||||
'browser.urlbar.trimURLs',
|
||||
'browser.urlbar.usepreloadedtopurls.enabled',
|
||||
'browser.urlbar.userMadeSearchSuggestionsChoice',
|
||||
'browser.xul.error_pages.expert_bad_cert',
|
||||
'camera.control.face_detection.enabled',
|
||||
'canvas.capturestream.enabled',
|
||||
'captivedetect.canonicalURL',
|
||||
'datareporting.healthreport.about.reportUrl',
|
||||
'datareporting.healthreport.uploadEnabled',
|
||||
'datareporting.policy.dataSubmissionEnabled',
|
||||
'device.storage.enabled',
|
||||
'devtools.chrome.enabled',
|
||||
'devtools.debugger.remote-enabled',
|
||||
'devtools.webide.autoinstallADBHelper',
|
||||
'devtools.webide.enabled',
|
||||
'dom.allow_cut_copy',
|
||||
'dom.allow_scripts_to_close_windows',
|
||||
'dom.caches.enabled',
|
||||
'dom.disable_beforeunload',
|
||||
'dom.disable_window_flip',
|
||||
'dom.disable_window_move_resize',
|
||||
'dom.disable_window_open_feature.close',
|
||||
'dom.disable_window_open_feature.location',
|
||||
'dom.disable_window_open_feature.menubar',
|
||||
'dom.disable_window_open_feature.minimizable',
|
||||
'dom.disable_window_open_feature.personalbar',
|
||||
'dom.disable_window_open_feature.resizable',
|
||||
'dom.disable_window_open_feature.status',
|
||||
'dom.disable_window_open_feature.titlebar',
|
||||
'dom.disable_window_open_feature.toolbar',
|
||||
'dom.disable_window_status_change',
|
||||
'dom.event.clipboardevents.enabled',
|
||||
'dom.flyweb.enabled',
|
||||
'dom.idle-observers-api.enabled',
|
||||
'dom.imagecapture.enabled',
|
||||
'dom.IntersectionObserver.enabled',
|
||||
'dom.ipc.plugins.flash.subprocess.crashreporter.enabled',
|
||||
'dom.ipc.plugins.reportCrashURL',
|
||||
'dom.popup_allowed_events',
|
||||
'dom.popup_maximum',
|
||||
'dom.push.connection.enabled',
|
||||
'dom.push.enabled',
|
||||
'dom.push.serverURL',
|
||||
'dom.push.userAgentID',
|
||||
'dom.serviceWorkers.enabled',
|
||||
'dom.vibrator.enabled',
|
||||
'dom.webaudio.enabled',
|
||||
'dom.webnotifications.enabled',
|
||||
'dom.webnotifications.serviceworker.enabled',
|
||||
'dom.workers.enabled',
|
||||
'experiments.activeExperiment',
|
||||
'experiments.enabled',
|
||||
'experiments.manifest.uri',
|
||||
'experiments.supported',
|
||||
'extensions.autoDisableScopes',
|
||||
'extensions.blocklist.enabled',
|
||||
'extensions.blocklist.url',
|
||||
'extensions.enabledScopes',
|
||||
'extensions.formautofill.addresses.enabled',
|
||||
'extensions.formautofill.available',
|
||||
'extensions.formautofill.creditCards.enabled',
|
||||
'extensions.formautofill.heuristics.enabled',
|
||||
'extensions.getAddons.cache.enabled',
|
||||
'extensions.getAddons.showPane',
|
||||
'extensions.pocket.enabled',
|
||||
'extensions.shield-recipe-client.api_url',
|
||||
'extensions.shield-recipe-client.enabled',
|
||||
'extensions.update.autoUpdateDefault',
|
||||
'extensions.webcompat-reporter.enabled',
|
||||
'extensions.webextensions.keepStorageOnUninstall',
|
||||
'extensions.webextensions.keepUuidOnUninstall',
|
||||
'extensions.webservice.discoverURL',
|
||||
'font.blacklist.underline_offset',
|
||||
'full-screen-api.enabled',
|
||||
'general.useragent.compatMode.firefox',
|
||||
'general.useragent.locale',
|
||||
'general.warnOnAboutConfig',
|
||||
'geo.wifi.uri',
|
||||
'gfx.downloadable_fonts.enabled',
|
||||
'gfx.downloadable_fonts.woff2.enabled',
|
||||
'gfx.font_rendering.graphite.enabled',
|
||||
'gfx.font_rendering.opentype_svg.enabled',
|
||||
'gfx.offscreencanvas.enabled',
|
||||
'intl.accept_languages',
|
||||
'intl.locale.matchOS',
|
||||
'intl.regional_prefs.use_os_locales',
|
||||
'javascript.options.asmjs',
|
||||
'javascript.options.wasm',
|
||||
'javascript.use_us_english_locale',
|
||||
'keyword.enabled',
|
||||
'layers.acceleration.disabled',
|
||||
'layout.css.font-loading-api.enabled',
|
||||
'layout.css.visited_links_enabled',
|
||||
'layout.spellcheckDefault',
|
||||
'lightweightThemes.update.enabled',
|
||||
'mathml.disabled',
|
||||
'media.autoplay.enabled',
|
||||
'media.block-autoplay-until-in-foreground',
|
||||
'media.eme.enabled',
|
||||
'media.getusermedia.audiocapture.enabled',
|
||||
'media.getusermedia.browser.enabled',
|
||||
'media.getusermedia.screensharing.allowed_domains',
|
||||
'media.getusermedia.screensharing.enabled',
|
||||
'media.gmp-gmpopenh264.autoupdate',
|
||||
'media.gmp-gmpopenh264.enabled',
|
||||
'media.gmp-manager.updateEnabled',
|
||||
'media.gmp-manager.url',
|
||||
'media.gmp-manager.url.override',
|
||||
'media.gmp-provider.enabled',
|
||||
'media.gmp-widevinecdm.autoupdate',
|
||||
'media.gmp-widevinecdm.enabled',
|
||||
'media.gmp-widevinecdm.visible',
|
||||
'media.gmp.trial-create.enabled',
|
||||
'media.navigator.enabled',
|
||||
'media.navigator.video.enabled',
|
||||
'media.ondevicechange.enabled',
|
||||
'media.peerconnection.enabled',
|
||||
'media.peerconnection.ice.default_address_only',
|
||||
'media.peerconnection.ice.no_host',
|
||||
'media.peerconnection.ice.tcp',
|
||||
'media.peerconnection.identity.enabled',
|
||||
'media.peerconnection.identity.timeout',
|
||||
'media.peerconnection.turn.disable',
|
||||
'media.peerconnection.use_document_iceservers',
|
||||
'media.peerconnection.video.enabled',
|
||||
'middlemouse.contentLoadURL',
|
||||
'network.allow-experiments',
|
||||
'network.auth.subresource-img-cross-origin-http-auth-allow',
|
||||
'network.captive-portal-service.enabled',
|
||||
'network.cookie.cookieBehavior',
|
||||
'network.cookie.leave-secure-alone',
|
||||
'network.cookie.thirdparty.sessionOnly',
|
||||
'network.dns.blockDotOnion',
|
||||
'network.dns.disablePrefetch',
|
||||
'network.dns.disablePrefetchFromHTTPS',
|
||||
'network.http.altsvc.enabled',
|
||||
'network.http.altsvc.oe',
|
||||
'network.http.redirection-limit',
|
||||
'network.http.referer.hideOnionSource',
|
||||
'network.http.referer.spoofSource',
|
||||
'network.http.referer.trimmingPolicy',
|
||||
'network.http.referer.userControlPolicy',
|
||||
'network.http.referer.XOriginPolicy',
|
||||
'network.http.referer.XOriginTrimmingPolicy',
|
||||
'network.http.sendRefererHeader',
|
||||
'network.http.spdy.enabled',
|
||||
'network.http.spdy.enabled.deps',
|
||||
'network.http.spdy.enabled.http2',
|
||||
'network.http.speculative-parallel-limit',
|
||||
'network.IDN_show_punycode',
|
||||
'network.jar.block-remote-files',
|
||||
'network.jar.open-unsafe-types',
|
||||
'network.manage-offline-status',
|
||||
'network.predictor.enable-prefetch',
|
||||
'network.predictor.enabled',
|
||||
'network.prefetch-next',
|
||||
'network.protocol-handler.external.ms-windows-store',
|
||||
'network.proxy.autoconfig_url.include_path',
|
||||
'network.proxy.socks_remote_dns',
|
||||
'network.stricttransportsecurity.preloadlist',
|
||||
'offline-apps.allow_by_default',
|
||||
'pdfjs.disabled',
|
||||
'pdfjs.enableWebGL',
|
||||
'permissions.manager.defaultsUrl',
|
||||
'plugin.default.state',
|
||||
'plugin.defaultXpi.state',
|
||||
'plugin.scan.plid.all',
|
||||
'plugin.sessionPermissionNow.intervalInMinutes',
|
||||
'plugins.click_to_play',
|
||||
'privacy.clearOnShutdown.cache',
|
||||
'privacy.clearOnShutdown.cookies',
|
||||
'privacy.clearOnShutdown.downloads',
|
||||
'privacy.clearOnShutdown.formdata',
|
||||
'privacy.clearOnShutdown.history',
|
||||
'privacy.clearOnShutdown.offlineApps',
|
||||
'privacy.clearOnShutdown.sessions',
|
||||
'privacy.clearOnShutdown.siteSettings',
|
||||
'privacy.cpd.cache',
|
||||
'privacy.cpd.cookies',
|
||||
'privacy.cpd.formdata',
|
||||
'privacy.cpd.history',
|
||||
'privacy.cpd.offlineApps',
|
||||
'privacy.cpd.passwords',
|
||||
'privacy.cpd.sessions',
|
||||
'privacy.cpd.siteSettings',
|
||||
'privacy.donottrackheader.enabled',
|
||||
'privacy.firstparty.isolate',
|
||||
'privacy.firstparty.isolate.restrict_opener_access',
|
||||
'privacy.resistFingerprinting',
|
||||
'privacy.sanitize.sanitizeOnShutdown',
|
||||
'privacy.sanitize.timeSpan',
|
||||
'privacy.trackingprotection.ui.enabled',
|
||||
'security.ask_for_password',
|
||||
'security.block_script_with_wrong_mime',
|
||||
'security.cert_pinning.enforcement_level',
|
||||
'security.csp.enable',
|
||||
'security.csp.experimentalEnabled',
|
||||
'security.data_uri.block_toplevel_data_uri_navigations',
|
||||
'security.dialog_enable_delay',
|
||||
'security.family_safety.mode',
|
||||
'security.fileuri.strict_origin_policy',
|
||||
'security.insecure_field_warning.contextual.enabled',
|
||||
'security.insecure_password.ui.enabled',
|
||||
'security.mixed_content.block_active_content',
|
||||
'security.mixed_content.send_hsts_priming',
|
||||
'security.mixed_content.use_hsts',
|
||||
'security.OCSP.enabled',
|
||||
'security.OCSP.require',
|
||||
'security.password_lifetime',
|
||||
'security.pki.sha1_enforcement_level',
|
||||
'security.sri.enable',
|
||||
'security.ssl.disable_session_identifiers',
|
||||
'security.ssl.enable_ocsp_stapling',
|
||||
'security.ssl.errorReporting.automatic',
|
||||
'security.ssl.errorReporting.enabled',
|
||||
'security.ssl.errorReporting.url',
|
||||
'security.ssl.treat_unsafe_negotiation_as_broken',
|
||||
'security.tls.enable_0rtt_data',
|
||||
'security.tls.version.fallback-limit',
|
||||
'security.tls.version.max',
|
||||
'security.tls.version.min',
|
||||
'security.xpconnect.plugin.unrestricted',
|
||||
'services.blocklist.signing.enforced',
|
||||
'services.blocklist.update_enabled',
|
||||
'signon.autofillForms',
|
||||
'signon.autofillForms.http',
|
||||
'signon.formlessCapture.enabled',
|
||||
'signon.storeWhenAutocompleteOff',
|
||||
'startup.homepage_override_url',
|
||||
'startup.homepage_welcome_url',
|
||||
'startup.homepage_welcome_url.additional',
|
||||
'toolkit.telemetry.archive.enabled',
|
||||
'toolkit.telemetry.bhrPing.enabled',
|
||||
'toolkit.telemetry.cachedClientID',
|
||||
'toolkit.telemetry.enabled',
|
||||
'toolkit.telemetry.firstShutdownPing.enabled',
|
||||
'toolkit.telemetry.newProfilePing.enabled',
|
||||
'toolkit.telemetry.server',
|
||||
'toolkit.telemetry.shutdownPingSender.enabled',
|
||||
'toolkit.telemetry.unified',
|
||||
'toolkit.telemetry.updatePing.enabled',
|
||||
'ui.submenuDelay',
|
||||
'ui.use_standins_for_native_colors',
|
||||
'view_source.tab',
|
||||
'webchannel.allowObject.urlWhitelist',
|
||||
'webgl.disable-extensions',
|
||||
'webgl.disable-fail-if-major-performance-caveat',
|
||||
'webgl.disabled',
|
||||
'webgl.dxgl.enabled',
|
||||
'webgl.enable-debug-renderer-info',
|
||||
'webgl.enable-webgl2',
|
||||
'webgl.min_capability_mode',
|
||||
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
let c = 0;
|
||||
for (let i = 0, len = ops.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
||||
Services.prefs.clearUserPref(ops[i]);
|
||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
||||
console.log("reset", ops[i]);
|
||||
c++;
|
||||
} else { console.log("failed to reset", ops[i]); }
|
||||
}
|
||||
}
|
||||
|
||||
focus();
|
||||
|
||||
let d = (c==1) ? " pref" : " prefs";
|
||||
if (c > 0) {
|
||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
||||
} else { alert("nothing to reset"); }
|
||||
|
||||
})();
|
@ -0,0 +1,167 @@
|
||||
/***
|
||||
|
||||
This will reset EVERYTHING that is INACTIVE in the ghacks user.js
|
||||
release 57-alpha master, but excludes the following:
|
||||
- prefs removed since publishing on github
|
||||
- e10s section 1100
|
||||
- privacy.resistFingerprinting alternatives sections 4600 & 4700
|
||||
- deprecated section 9999
|
||||
|
||||
It does not matter if you clear everything, as a restart will reapply your user.js
|
||||
Total 477 prefs from 57-alpha master: 118 inactive, 359 active
|
||||
These have been broken into two scripts for convenience
|
||||
|
||||
For instructions see:
|
||||
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||
|
||||
***/
|
||||
|
||||
(function() {
|
||||
let ops = [
|
||||
/* 118 INACTIVE prefs in 57-alpha master */
|
||||
'accessibility.typeaheadfind',
|
||||
'app.update.enabled',
|
||||
'browser.cache.memory.capacity',
|
||||
'browser.cache.memory.enable',
|
||||
'browser.chrome.favicons',
|
||||
'browser.chrome.site_icons',
|
||||
'browser.download.autohideButton',
|
||||
'browser.privatebrowsing.autostart',
|
||||
'browser.safebrowsing.allowOverride',
|
||||
'browser.safebrowsing.blockedURIs.enabled',
|
||||
'browser.safebrowsing.downloads.enabled',
|
||||
'browser.safebrowsing.downloads.remote.block_dangerous',
|
||||
'browser.safebrowsing.downloads.remote.block_dangerous_host',
|
||||
'browser.safebrowsing.downloads.remote.block_potentially_unwanted',
|
||||
'browser.safebrowsing.downloads.remote.block_uncommon',
|
||||
'browser.safebrowsing.malware.enabled',
|
||||
'browser.safebrowsing.phishing.enabled',
|
||||
'browser.safebrowsing.provider.google.gethashURL',
|
||||
'browser.safebrowsing.provider.google.updateURL',
|
||||
'browser.safebrowsing.provider.google4.gethashURL',
|
||||
'browser.safebrowsing.provider.google4.updateURL',
|
||||
'browser.safebrowsing.provider.mozilla.gethashURL',
|
||||
'browser.safebrowsing.provider.mozilla.updateURL',
|
||||
'browser.sessionhistory.max_total_viewers',
|
||||
'browser.startup.page',
|
||||
'browser.stopReloadAnimation.enabled',
|
||||
'browser.storageManager.enabled',
|
||||
'browser.tabs.loadBookmarksInTabs',
|
||||
'browser.urlbar.autocomplete.enabled',
|
||||
'browser.urlbar.maxRichResults',
|
||||
'clipboard.autocopy',
|
||||
'dom.event.contextmenu.enabled',
|
||||
'dom.indexedDB.enabled',
|
||||
'dom.presentation.controller.enabled',
|
||||
'dom.presentation.discoverable',
|
||||
'dom.presentation.discovery.enabled',
|
||||
'dom.presentation.enabled',
|
||||
'dom.presentation.receiver.enabled',
|
||||
'dom.presentation.session_transport.data_channel.enable',
|
||||
'dom.storage.enabled',
|
||||
'dom.storageManager.enabled',
|
||||
'dom.vr.enabled',
|
||||
'extensions.screenshots.disabled',
|
||||
'extensions.systemAddon.update.url',
|
||||
'extensions.update.enabled',
|
||||
'font.name.monospace.x-unicode',
|
||||
'font.name.monospace.x-western',
|
||||
'font.name.sans-serif.x-unicode',
|
||||
'font.name.sans-serif.x-western',
|
||||
'font.name.serif.x-unicode',
|
||||
'font.name.serif.x-western',
|
||||
'font.system.whitelist',
|
||||
'full-screen-api.warning.delay',
|
||||
'full-screen-api.warning.timeout',
|
||||
'general.autoScroll',
|
||||
'geo.wifi.logging.enabled',
|
||||
'gfx.direct2d.disabled',
|
||||
'javascript.options.baselinejit',
|
||||
'javascript.options.ion',
|
||||
'media.flac.enabled',
|
||||
'media.mediasource.enabled',
|
||||
'media.mediasource.mp4.enabled',
|
||||
'media.mediasource.webm.audio.enabled',
|
||||
'media.mediasource.webm.enabled',
|
||||
'media.mp4.enabled',
|
||||
'media.ogg.enabled',
|
||||
'media.ogg.flac.enabled',
|
||||
'media.opus.enabled',
|
||||
'media.raw.enabled',
|
||||
'media.wave.enabled',
|
||||
'media.webm.enabled',
|
||||
'media.wmf.amd.vp9.enabled',
|
||||
'media.wmf.enabled',
|
||||
'media.wmf.vp9.enabled',
|
||||
'network.cookie.lifetime.days',
|
||||
'network.cookie.lifetimePolicy',
|
||||
'network.dns.disableIPv6',
|
||||
'network.dnsCacheEntries',
|
||||
'network.dnsCacheExpiration',
|
||||
'network.http.fast-fallback-to-IPv4',
|
||||
'offline-apps.quota.warn',
|
||||
'permissions.memory_only',
|
||||
'places.history.enabled',
|
||||
'plugin.state.flash',
|
||||
'privacy.clearOnShutdown.openWindows',
|
||||
'privacy.cpd.downloads',
|
||||
'privacy.cpd.openWindows',
|
||||
'privacy.resistFingerprinting.block_mozAddonManager',
|
||||
'privacy.trackingprotection.annotate_channels',
|
||||
'privacy.trackingprotection.enabled',
|
||||
'privacy.trackingprotection.lower_network_priority',
|
||||
'privacy.trackingprotection.pbmode.enabled',
|
||||
'privacy.usercontext.about_newtab_segregation.enabled',
|
||||
'privacy.userContext.enabled',
|
||||
'privacy.userContext.longPressBehavior',
|
||||
'privacy.userContext.ui.enabled',
|
||||
'privacy.window.maxInnerHeight',
|
||||
'privacy.window.maxInnerWidth',
|
||||
'reader.parse-on-load.enabled',
|
||||
'security.mixed_content.block_display_content',
|
||||
'security.nocertdb',
|
||||
'security.ssl.require_safe_negotiation',
|
||||
'security.ssl3.dhe_rsa_aes_128_sha',
|
||||
'security.ssl3.dhe_rsa_aes_256_sha',
|
||||
'security.ssl3.ecdhe_ecdsa_aes_128_sha',
|
||||
'security.ssl3.ecdhe_rsa_aes_128_sha',
|
||||
'security.ssl3.rsa_aes_128_sha',
|
||||
'security.ssl3.rsa_aes_256_sha',
|
||||
'security.ssl3.rsa_des_ede3_sha',
|
||||
'services.blocklist.addons.collection',
|
||||
'services.blocklist.gfx.collection',
|
||||
'services.blocklist.onecrl.collection',
|
||||
'services.blocklist.plugins.collection',
|
||||
'signon.rememberSignons',
|
||||
'svg.disabled',
|
||||
'toolkit.cosmeticAnimations.enabled',
|
||||
'urlclassifier.trackingTable',
|
||||
'xpinstall.signatures.required',
|
||||
/* reset parrot: check your open about:config after running the script */
|
||||
'_user.js.parrot'
|
||||
]
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
let c = 0;
|
||||
for (let i = 0, len = ops.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
||||
Services.prefs.clearUserPref(ops[i]);
|
||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
||||
console.log("reset", ops[i]);
|
||||
c++;
|
||||
} else { console.log("failed to reset", ops[i]); }
|
||||
}
|
||||
}
|
||||
|
||||
focus();
|
||||
|
||||
let d = (c==1) ? " pref" : " prefs";
|
||||
if (c > 0) {
|
||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
||||
} else { alert("nothing to reset"); }
|
||||
|
||||
})();
|
@ -1 +0,0 @@
|
||||
// boo!
|
216
scratchpad-scripts/troubleshooter.js
Normal file
216
scratchpad-scripts/troubleshooter.js
Normal file
@ -0,0 +1,216 @@
|
||||
|
||||
/*** ghacks-user.js troubleshooter.js v1.5 ***/
|
||||
|
||||
(function() {
|
||||
|
||||
if("undefined" === typeof(Services)) {
|
||||
alert("about:config needs to be the active tab!");
|
||||
return;
|
||||
}
|
||||
|
||||
function getMyList(arr) {
|
||||
let aRet = [];
|
||||
let dummy = 0;
|
||||
for (let i = 0, len = arr.length; i < len; i++) {
|
||||
if (Services.prefs.prefHasUserValue(arr[i])) {
|
||||
dummy = Services.prefs.getPrefType(arr[i]);
|
||||
switch (dummy) {
|
||||
case 32: // string (see https://dxr.mozilla.org/mozilla-central/source/modules/libpref/nsIPrefBranch.idl#31)
|
||||
dummy = Services.prefs.getCharPref(arr[i]);
|
||||
aRet.push({'name':arr[i],'value': dummy,'type':32});
|
||||
break;
|
||||
case 64: // int
|
||||
dummy = Services.prefs.getIntPref(arr[i]);
|
||||
aRet.push({'name':arr[i],'value': dummy,'type':64});
|
||||
break;
|
||||
case 128: // boolean
|
||||
dummy = Services.prefs.getBoolPref(arr[i]);
|
||||
aRet.push({'name':arr[i],'value': dummy,'type':128});
|
||||
break;
|
||||
default:
|
||||
console.log("error detecting pref-type for '"+arr[i]+"' !");
|
||||
}
|
||||
}
|
||||
}
|
||||
return aRet;
|
||||
}
|
||||
|
||||
function reapply(arr) {
|
||||
for (let i = 0, len = arr.length; i < len; i++) {
|
||||
switch (arr[i].type) {
|
||||
case 32: // string
|
||||
Services.prefs.setCharPref(arr[i].name, arr[i].value);
|
||||
break;
|
||||
case 64: // int
|
||||
Services.prefs.setIntPref(arr[i].name, arr[i].value);
|
||||
break;
|
||||
case 128: // boolean
|
||||
Services.prefs.setBoolPref(arr[i].name, arr[i].value);
|
||||
break;
|
||||
default:
|
||||
console.log("error re-appyling value for '"+arr[i].name+"' !"); // should never happen
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function myreset(arr) {
|
||||
for (let i = 0, len = arr.length; i < len; i++) {
|
||||
Services.prefs.clearUserPref(arr[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
let ops = [
|
||||
|
||||
/* known culprits */
|
||||
'network.cookie.cookieBehavior',
|
||||
'network.http.referer.XOriginPolicy',
|
||||
'privacy.firstparty.isolate',
|
||||
'privacy.resistFingerprinting',
|
||||
'security.mixed_content.block_display_content',
|
||||
'svg.disabled',
|
||||
|
||||
/* Storage + Cache */
|
||||
'browser.cache.offline.enable',
|
||||
'dom.indexedDB.enabled',
|
||||
'dom.storage.enabled',
|
||||
'browser.storageManager.enabled',
|
||||
'dom.storageManager.enabled',
|
||||
|
||||
/* Workers, Web + Push Notifications */
|
||||
'dom.caches.enabled',
|
||||
'dom.push.connection.enabled',
|
||||
'dom.push.enabled',
|
||||
'dom.push.serverURL',
|
||||
'dom.serviceWorkers.enabled',
|
||||
'dom.workers.enabled',
|
||||
'dom.webnotifications.enabled',
|
||||
'dom.webnotifications.serviceworker.enabled',
|
||||
|
||||
/* Fonts */
|
||||
'browser.display.use_document_fonts',
|
||||
'font.blacklist.underline_offset',
|
||||
'gfx.downloadable_fonts.woff2.enabled',
|
||||
'gfx.font_rendering.graphite.enabled',
|
||||
'gfx.font_rendering.opentype_svg.enabled',
|
||||
'layout.css.font-loading-api.enabled',
|
||||
|
||||
/* Misc */
|
||||
'browser.link.open_newwindow.restriction',
|
||||
'canvas.capturestream.enabled',
|
||||
'dom.event.clipboardevents.enabled',
|
||||
'dom.event.contextmenu.enabled',
|
||||
'dom.IntersectionObserver.enabled',
|
||||
'dom.popup_allowed_events',
|
||||
'full-screen-api.enabled',
|
||||
'geo.wifi.uri',
|
||||
'intl.accept_languages',
|
||||
'javascript.options.asmjs',
|
||||
'javascript.options.wasm',
|
||||
'permissions.default.shortcuts',
|
||||
'security.csp.experimentalEnabled',
|
||||
|
||||
/* Hardware */
|
||||
'dom.vr.enabled',
|
||||
'media.ondevicechange.enabled',
|
||||
|
||||
/* Audio + Video */
|
||||
'dom.webaudio.enabled',
|
||||
'media.autoplay.enabled',
|
||||
|
||||
/* Forms */
|
||||
'browser.formfill.enable',
|
||||
'signon.autofillForms',
|
||||
'signon.formlessCapture.enabled',
|
||||
|
||||
/* HTTPS */
|
||||
'security.cert_pinning.enforcement_level',
|
||||
'security.family_safety.mode',
|
||||
'security.mixed_content.use_hsts',
|
||||
'security.OCSP.require',
|
||||
'security.pki.sha1_enforcement_level',
|
||||
'security.ssl.require_safe_negotiation',
|
||||
'security.ssl.treat_unsafe_negotiation_as_broken',
|
||||
'security.ssl3.dhe_rsa_aes_128_sha',
|
||||
'security.ssl3.dhe_rsa_aes_256_sha',
|
||||
'security.ssl3.ecdhe_ecdsa_aes_128_sha',
|
||||
'security.ssl3.ecdhe_rsa_aes_128_sha',
|
||||
'security.ssl3.rsa_aes_128_sha',
|
||||
'security.ssl3.rsa_aes_256_sha',
|
||||
'security.ssl3.rsa_des_ede3_sha',
|
||||
'security.tls.enable_0rtt_data',
|
||||
'security.tls.version.max',
|
||||
'security.tls.version.min',
|
||||
|
||||
/* Plugins + Flash */
|
||||
'plugin.default.state',
|
||||
'plugin.defaultXpi.state',
|
||||
'plugin.sessionPermissionNow.intervalInMinutes',
|
||||
'plugin.state.flash',
|
||||
|
||||
/* unlikely to cause problems */
|
||||
'browser.tabs.remote.allowLinkedWebInFileUriProcess',
|
||||
'dom.popup_maximum',
|
||||
'layout.css.visited_links_enabled',
|
||||
'mathml.disabled',
|
||||
'network.auth.subresource-img-cross-origin-http-auth-allow',
|
||||
'network.http.redirection-limit',
|
||||
'network.protocol-handler.external.ms-windows-store',
|
||||
'privacy.trackingprotection.enabled',
|
||||
'security.data_uri.block_toplevel_data_uri_navigations',
|
||||
|
||||
'last.one.without.comma'
|
||||
]
|
||||
|
||||
|
||||
// reset prefs that set the same value as FFs default value
|
||||
let aTEMP = getMyList(ops);
|
||||
myreset(aTEMP);
|
||||
reapply(aTEMP);
|
||||
|
||||
const aBACKUP = getMyList(ops);
|
||||
//console.log(aBACKUP.length, "user-set prefs from our list detected and their values stored.");
|
||||
|
||||
let myArr = aBACKUP;
|
||||
let found = false;
|
||||
let aDbg = [];
|
||||
focus();
|
||||
myreset(aBACKUP); // reset all detected prefs
|
||||
if (confirm("all detected prefs reset.\n\n!! KEEP THIS PROMPT OPEN AND TEST THE SITE IN ANOTHER TAB !!\n\nIF the problem still exists, this script can't help you - click cancel to re-apply your values and exit.\n\nClick OK if your problem is fixed.")) {
|
||||
aDbg = myArr;
|
||||
reapply(aBACKUP);
|
||||
myreset(myArr.slice(0, parseInt(myArr.length/2)));
|
||||
while (myArr.length >= 2) {
|
||||
alert("NOW TEST AGAIN !");
|
||||
if (confirm("if the problem still exists click OK, otherwise click cancel.")) {
|
||||
myArr = myArr.slice(parseInt(myArr.length/2));
|
||||
if (myArr.length == 1) {
|
||||
alert("The problem is caused by more than 1 pref !\n\nNarrowed it down to "+ aDbg.length.toString() +" prefs, check the console ...");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
myArr = myArr.slice(0, parseInt(myArr.length/2));
|
||||
aDbg = myArr;
|
||||
if (myArr.length == 1) { found = true; break; }
|
||||
}
|
||||
reapply(aBACKUP);
|
||||
myreset(myArr.slice(0, parseInt(myArr.length/2))); // reset half of the remaining prefs
|
||||
}
|
||||
reapply(aBACKUP);
|
||||
}
|
||||
else {
|
||||
reapply(aBACKUP);
|
||||
return;
|
||||
}
|
||||
|
||||
if (found) {
|
||||
alert("narrowed it down to:\n\n"+myArr[0].name+"\n");
|
||||
myreset(myArr); // reset the culprit
|
||||
}
|
||||
else {
|
||||
console.log("the problem is caused by a combination of the following prefs:");
|
||||
for (let i = 0, len = aDbg.length; i < len; i++) {
|
||||
console.log(aDbg[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
})();
|
324
updater.bat
324
updater.bat
@ -1,107 +1,257 @@
|
||||
@ECHO OFF
|
||||
@ECHO OFF & SETLOCAL EnableDelayedExpansion
|
||||
TITLE ghacks user.js updater
|
||||
|
||||
REM ### ghacks-user.js updater for Windows
|
||||
REM ## ghacks-user.js updater for Windows
|
||||
REM ## author: @claustromaniac
|
||||
REM ## version: 2.1
|
||||
REM ## version: 4.4
|
||||
REM ## instructions: https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts
|
||||
|
||||
SETLOCAL EnableDelayedExpansion
|
||||
SET "_ua="
|
||||
SET "_log="
|
||||
SET _myname=%~n0
|
||||
SET _myparams=%*
|
||||
:parse
|
||||
IF "%~1"=="" GOTO endparse
|
||||
IF "%~1"=="-unattended" SET "_ua=true"
|
||||
IF "%~1"=="-log" SET "_log=true"
|
||||
IF "%~1"=="" (GOTO endparse)
|
||||
IF /I "%~1"=="-unattended" (SET _ua=1)
|
||||
IF /I "%~1"=="-log" (SET _log=1)
|
||||
IF /I "%~1"=="-logp" (SET _log=1 & SET _logp=1)
|
||||
IF /I "%~1"=="-multioverrides" (SET _multi=1)
|
||||
IF /I "%~1"=="-merge" (SET _merge=1)
|
||||
IF /I "%~1"=="-updatebatch" (SET _updateb=1)
|
||||
IF /I "%~1"=="-singlebackup" (SET _singlebackup=1)
|
||||
SHIFT
|
||||
GOTO parse
|
||||
:endparse
|
||||
SET "_name="
|
||||
SET "_date="
|
||||
SET "_version="
|
||||
SET /A "_line=0"
|
||||
ECHO.
|
||||
IF EXIST user.js (
|
||||
FOR /F "delims=" %%i IN (user.js) DO (
|
||||
IF !_line! EQU 1 SET "_name=%%i"
|
||||
IF !_line! EQU 2 SET "_date=%%i"
|
||||
IF !_line! EQU 3 SET "_version=%%i"
|
||||
SET /A "_line+=1"
|
||||
IF !_line! GEQ 4 GOTO break
|
||||
IF DEFINED _updateb (
|
||||
REM The normal flow here goes from phase 1 to phase 2 and then phase 3.
|
||||
IF NOT "!_myname:~0,9!"=="[updated]" (
|
||||
IF EXIST "[updated]!_myname!.bat" (
|
||||
REM ## Phase 3 ##: The new script, with the original name, will:
|
||||
REM * Delete the [updated]*.bat script
|
||||
REM * Begin the normal routine
|
||||
REN "[updated]!_myname!.bat" "[updated]!_myname!.bat.old"
|
||||
DEL /F "[updated]!_myname!.bat.old"
|
||||
CALL :message "Script updated^!"
|
||||
TIMEOUT 3 >nul
|
||||
GOTO begin
|
||||
)
|
||||
:break
|
||||
IF !_line! GEQ 4 (
|
||||
IF "ghacks"=="!_name:~8,6!" (
|
||||
FOR /F "delims=:" %%G IN ("!_version!") DO SET "_version=%%G"
|
||||
SET "_version=!_version:~2!"
|
||||
SET "_date=!_date:~8!"
|
||||
ECHO ghacks user.js !_version!, !_date!
|
||||
) ELSE ( ECHO Current user.js version not recognised. )
|
||||
) ELSE ( ECHO Current user.js version not recognised. )
|
||||
) ELSE ( ECHO user.js not detected in the current directory. )
|
||||
ECHO.
|
||||
IF NOT "%_ua%"=="true" (
|
||||
ECHO This batch should be run from your Firefox profile directory. It will download the latest version of ghacks user.js from github and then append any of your own changes from user-overrides.js to it.
|
||||
ECHO.
|
||||
REM ECHO Visit the wiki for more detailed information.
|
||||
REM ECHO.
|
||||
CHOICE /M "Continue"
|
||||
IF ERRORLEVEL 2 GOTO end
|
||||
REM ## Phase 1 ##
|
||||
REM * Download new batch and name it [updated]*.bat
|
||||
REM * Start that script in a new CMD window
|
||||
REM * Exit
|
||||
CALL :message "Updating script..."
|
||||
REM Uncomment the next line and comment the powershell call for testing.
|
||||
REM COPY /B /V /Y "!_myname!.bat" "[updated]!_myname!.bat"
|
||||
(
|
||||
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.bat', '[updated]!_myname!.bat')"
|
||||
) >nul 2>&1
|
||||
IF EXIST "[updated]!_myname!.bat" (
|
||||
START /min CMD /C "[updated]!_myname!.bat" !_myparams!
|
||||
) ELSE (
|
||||
CALL :message "Failed. Make sure PowerShell is allowed internet access."
|
||||
TIMEOUT 120 >nul
|
||||
)
|
||||
) ELSE (
|
||||
IF "!_myname!"=="[updated]" (
|
||||
CALL :message "The [updated] label is reserved. Rename this script and try again."
|
||||
TIMEOUT 300 >nul
|
||||
) ELSE (
|
||||
REM ## Phase 2 ##: The [updated]*.bat script will:
|
||||
REM * Copy itself overwriting the original batch
|
||||
REM * Start that script in a new CMD instance
|
||||
REM * Exit
|
||||
IF EXIST "!_myname:~9!.bat" (
|
||||
REN "!_myname:~9!.bat" "!_myname:~9!.bat.old"
|
||||
DEL /F "!_myname:~9!.bat.old"
|
||||
)
|
||||
COPY /B /V /Y "!_myname!.bat" "!_myname:~9!.bat"
|
||||
START CMD /C "!_myname:~9!.bat" !_myparams!
|
||||
)
|
||||
)
|
||||
EXIT /B
|
||||
)
|
||||
:begin
|
||||
CLS
|
||||
ECHO.
|
||||
IF "%_log%"=="true" (
|
||||
ECHO:
|
||||
ECHO:
|
||||
ECHO: ########################################
|
||||
ECHO: #### user.js Updater for Windows ####
|
||||
ECHO: #### by claustromaniac ####
|
||||
ECHO: #### v4.4 ####
|
||||
ECHO: ########################################
|
||||
ECHO:
|
||||
SET /A "_line=0"
|
||||
IF NOT EXIST user.js (
|
||||
CALL :message "user.js not detected in the current directory."
|
||||
) ELSE (
|
||||
FOR /F "skip=1 tokens=1,* delims=:" %%G IN (user.js) DO (
|
||||
SET /A "_line+=1"
|
||||
IF !_line! GEQ 4 (GOTO exitloop)
|
||||
IF !_line! EQU 1 (SET _name=%%H)
|
||||
IF !_line! EQU 2 (SET _date=%%H)
|
||||
IF !_line! EQU 3 (SET _version=%%G)
|
||||
)
|
||||
:exitloop
|
||||
IF NOT "!_name!"=="" (
|
||||
IF /I NOT "!_name!"=="!_name:ghacks=!" (
|
||||
CALL :message "!_name! !_version:~2!,!_date!"
|
||||
) ELSE (CALL :message "Current user.js version not recognised.")
|
||||
) ELSE (CALL :message "Current user.js version not recognised.")
|
||||
)
|
||||
ECHO:
|
||||
IF NOT DEFINED _ua (
|
||||
CALL :message "This batch should be run from your Firefox profile directory."
|
||||
ECHO: It will download the latest version of ghacks user.js from github and then
|
||||
CALL :message "append any of your own changes from user-overrides.js to it."
|
||||
CALL :message "Visit the wiki for more detailed information."
|
||||
ECHO:
|
||||
TIMEOUT 1 /nobreak >nul
|
||||
CHOICE /C SHE /N /M "Start [S] Help [H] Exit [E]"
|
||||
CLS
|
||||
IF ERRORLEVEL 3 (EXIT /B)
|
||||
IF ERRORLEVEL 2 (GOTO :showhelp)
|
||||
)
|
||||
IF DEFINED _log (
|
||||
CALL :log >>user.js-update-log.txt 2>&1
|
||||
IF DEFINED _logp (START user.js-update-log.txt)
|
||||
EXIT /B
|
||||
:log
|
||||
ECHO ##################################################################
|
||||
ECHO.
|
||||
ECHO %date%, %time%
|
||||
ECHO.
|
||||
SET _log=2
|
||||
ECHO:##################################################################
|
||||
ECHO: %date%, %time%
|
||||
)
|
||||
IF EXIST user.js (
|
||||
IF EXIST user.js.bak REN user.js.bak user.js.old.bak
|
||||
REN user.js user.js.bak
|
||||
ECHO Current user.js file backed up.
|
||||
ECHO.
|
||||
)
|
||||
ECHO Retrieving latest user.js file from ghacks github repository...
|
||||
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://github.com/ghacksuserjs/ghacks-user.js/raw/master/user.js', 'user.js')" >nul
|
||||
ECHO.
|
||||
IF EXIST user.js (
|
||||
IF EXIST "user-overrides.js" (
|
||||
ECHO Appending user-overrides.js...
|
||||
ECHO.
|
||||
COPY /B /V /Y user.js+"user-overrides.js" "tempuserjs"
|
||||
DEL /F user.js
|
||||
REN tempuserjs user.js
|
||||
ECHO.
|
||||
)
|
||||
ECHO Handling backups...
|
||||
SET "changed="
|
||||
IF EXIST user.js.bak ( FC user.js.bak user.js >nul && SET "changed=false" || SET "changed=true" )
|
||||
ECHO.
|
||||
ECHO.
|
||||
IF "!changed!"=="true" (
|
||||
IF EXIST user.js.old.bak DEL /F user.js.old.bak
|
||||
ECHO Update complete.
|
||||
IF EXIST user.js.new (DEL /F "user.js.new")
|
||||
CALL :message "Retrieving latest user.js file from github repository..."
|
||||
(
|
||||
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js', 'user.js.new')"
|
||||
) >nul 2>&1
|
||||
IF EXIST user.js.new (
|
||||
IF DEFINED _multi (
|
||||
FORFILES /P user.js-overrides /M *.js >nul 2>&1
|
||||
IF NOT ERRORLEVEL 1 (
|
||||
IF DEFINED _merge (
|
||||
CALL :message "Merging..."
|
||||
COPY /B /V /Y user.js-overrides\*.js user-overrides-merged.js
|
||||
CALL :merge user-overrides-merged.js
|
||||
COPY /B /V /Y user.js.new+user-overrides-merged.js user.js.new
|
||||
CALL :merge user.js.new
|
||||
) ELSE (
|
||||
IF "!changed!"=="false" (
|
||||
DEL /F user.js.bak
|
||||
IF EXIST user.js.old.bak REN user.js.old.bak user.js.bak
|
||||
ECHO Update completed without changes.
|
||||
) ELSE ECHO Update complete.
|
||||
CALL :message "Appending..."
|
||||
COPY /B /V /Y user.js.new+"user.js-overrides\*.js" user.js.new
|
||||
)
|
||||
) ELSE (CALL :message "No override files found.")
|
||||
) ELSE (
|
||||
IF EXIST "user-overrides.js" (
|
||||
COPY /B /V /Y user.js.new+"user-overrides.js" "user.js.new"
|
||||
IF DEFINED _merge (
|
||||
CALL :message "Merging user-overrides.js..."
|
||||
CALL :merge user.js.new
|
||||
) ELSE (
|
||||
CALL :message "user-overrides.js appended."
|
||||
)
|
||||
) ELSE (CALL :message "user-overrides.js not found.")
|
||||
)
|
||||
IF EXIST user.js (
|
||||
FC user.js.new user.js >nul && SET "_changed=false" || SET "_changed=true"
|
||||
)
|
||||
IF "!_changed!"=="true" (
|
||||
CALL :message "Backing up..."
|
||||
IF DEFINED _singlebackup (
|
||||
MOVE /Y user.js user.js.bak >nul
|
||||
) ELSE (
|
||||
MOVE /Y user.js "user-backup-!date:/=-!_!time::=.!.js" >nul
|
||||
)
|
||||
REN user.js.new user.js
|
||||
CALL :message "Update complete."
|
||||
) ELSE (
|
||||
IF "!_changed!"=="false" (
|
||||
DEL /F user.js.new >nul
|
||||
CALL :message "Update completed without changes."
|
||||
) ELSE (
|
||||
REN user.js.new user.js
|
||||
CALL :message "Update complete."
|
||||
)
|
||||
)
|
||||
ECHO.
|
||||
) ELSE (
|
||||
IF EXIST user.js.bak REN user.js.bak user.js
|
||||
IF EXIST user.js.old.bak REN user.js.old.bak user.js.bak
|
||||
ECHO.
|
||||
ECHO Update failed. Make sure PowerShell is allowed internet access.
|
||||
ECHO.
|
||||
ECHO No changes were made.
|
||||
ECHO.
|
||||
CALL :message "Update failed. Make sure PowerShell is allowed internet access."
|
||||
ECHO: No changes were made.
|
||||
)
|
||||
IF NOT "%_log%"=="true" (
|
||||
IF NOT "%_ua%"=="true" PAUSE
|
||||
IF NOT DEFINED _log (
|
||||
IF NOT DEFINED _ua (PAUSE)
|
||||
)
|
||||
:end
|
||||
EXIT /B
|
||||
|
||||
REM ########### Message Function ###########
|
||||
:message
|
||||
SETLOCAL DisableDelayedExpansion
|
||||
IF NOT "2"=="%_log%" (ECHO:)
|
||||
ECHO: %~1
|
||||
IF NOT "2"=="%_log%" (ECHO:)
|
||||
ENDLOCAL
|
||||
GOTO :EOF
|
||||
REM ############ Merge function ############
|
||||
:merge
|
||||
SETLOCAL DisableDelayedExpansion
|
||||
(
|
||||
FOR /F tokens^=2^,^*^ delims^=^'^" %%G IN ('FINDSTR /B /R /C:"user_pref.*\)[ ]*;" "%~1"') DO (IF NOT "%%H"=="" (SET "%%G=%%H"))
|
||||
FOR /F "tokens=1,* delims=:" %%I IN ('FINDSTR /N "^" "%~1"') DO (
|
||||
SET "_temp=%%J"
|
||||
SETLOCAL EnableDelayedExpansion
|
||||
IF NOT "!_temp:~0,9!"=="user_pref" (
|
||||
ENDLOCAL & ECHO:%%J
|
||||
) ELSE (
|
||||
IF "!_temp:;=!"=="!_temp!" (
|
||||
ENDLOCAL & ECHO:%%J
|
||||
) ELSE (
|
||||
ENDLOCAL
|
||||
FOR /F tokens^=2^ delims^=^'^" %%K IN ("%%J") DO (
|
||||
IF NOT "_user.js.parrot"=="%%K" (
|
||||
IF DEFINED %%K (
|
||||
SETLOCAL EnableDelayedExpansion
|
||||
FOR /F "delims=" %%L IN ("!%%K!") DO (
|
||||
ENDLOCAL & ECHO:user_pref("%%K"%%L
|
||||
SET "%%K="
|
||||
)
|
||||
)
|
||||
) ELSE (ECHO:%%J)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)>updatertempfile
|
||||
MOVE /Y updatertempfile "%~1" >nul
|
||||
ENDLOCAL
|
||||
GOTO :EOF
|
||||
REM ############### Help ##################
|
||||
:showhelp
|
||||
MODE 80,46
|
||||
CLS
|
||||
CALL :message "Available arguments (case-insensitive):"
|
||||
CALL :message " -log"
|
||||
ECHO: Write the console output to a logfile (user.js-update-log.txt)
|
||||
CALL :message " -logP"
|
||||
ECHO: Like -log, but also open the logfile after updating.
|
||||
CALL :message " -merge"
|
||||
ECHO: Merge overrides instead of appending them. Single-line comments and
|
||||
ECHO: _user.js.parrot lines are appended normally. Overrides for inactive
|
||||
ECHO: user.js prefs will be appended. When -Merge and -MultiOverrides are used
|
||||
ECHO: together, a user-overrides-merged.js file is also generated in the root
|
||||
ECHO: directory for quick reference. It contains only the merged data from
|
||||
ECHO: override files and can be safely discarded after updating, or used as the
|
||||
ECHO: new user-overrides.js. When there are conflicting records for the same
|
||||
ECHO: pref, the value of the last one declared will be used. Visit the wiki
|
||||
ECHO: for usage examples and more detailed information.
|
||||
CALL :message " -multiOverrides"
|
||||
ECHO: Use any and all .js files in a user.js-overrides sub-folder as overrides
|
||||
ECHO: instead of the default user-overrides.js file. Files are appended in
|
||||
ECHO: alphabetical order.
|
||||
CALL :message " -unattended"
|
||||
ECHO: Run without user input.
|
||||
CALL :message " -singleBackup"
|
||||
ECHO: Use a single backup file and overwrite it on new updates, instead of
|
||||
ECHO: cumulative backups. This was the default behaviour before v4.3.
|
||||
CALL :message " -updatebatch"
|
||||
ECHO: Update the script itself on execution, before the normal routine.
|
||||
CALL :message ""
|
||||
PAUSE
|
||||
MODE 80,25
|
||||
GOTO :begin
|
||||
REM #####################################
|
||||
|
11
updater.sh
11
updater.sh
@ -2,7 +2,7 @@
|
||||
|
||||
### ghacks-user.js updater for Mac/Linux
|
||||
## author: @overdodactyl
|
||||
## version: 1.1
|
||||
## version: 1.2
|
||||
|
||||
ghacksjs="https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js"
|
||||
|
||||
@ -10,11 +10,14 @@ echo -e "\nThis script should be run from your Firefox profile directory.\n"
|
||||
|
||||
currdir=$(pwd)
|
||||
|
||||
## get the full path of this script (greadlink for Mac, readlink for Linux)
|
||||
scriptfullpath=$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")
|
||||
## get the full path of this script (readlink for Linux, greadlink for Mac with coreutils installed)
|
||||
sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
||||
|
||||
## fallback for Macs without coreutils
|
||||
if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi
|
||||
|
||||
## change directory to the Firefox profile directory
|
||||
cd "$(dirname "${scriptfullpath}")"
|
||||
cd "$(dirname "${sfp}")"
|
||||
|
||||
echo -e "Updating the user.js for Firefox profile:\n$(pwd)\n"
|
||||
|
||||
|
Reference in New Issue
Block a user