mirror of
https://github.com/arkenfox/user.js.git
synced 2025-09-01 17:38:30 +02:00
Compare commits
133 Commits
v82.0-beta
...
90.0
Author | SHA1 | Date | |
---|---|---|---|
b8f3d93a5c | |||
f53f01823f | |||
18dbb56a3d | |||
cc8674c16d | |||
f394fd0290 | |||
f24899fcac | |||
a7ba61c0d4 | |||
babb9f3682 | |||
b22e349d44 | |||
bb48fe4ebe | |||
44a8088481 | |||
4c8c9bc01f | |||
3bb9fc713f | |||
b761a9dd32 | |||
0da2ecdb4d | |||
31e864c16c | |||
acc1376c37 | |||
939d75e5eb | |||
3b573bf9f0 | |||
a231c1e90e | |||
f229a3cb75 | |||
981462ee54 | |||
d940ffb3c6 | |||
a6d20eaf5b | |||
b93a5e334c | |||
c98606430c | |||
12c0631900 | |||
efcceaf2c3 | |||
9018577a3e | |||
6968b9a369 | |||
ada31d4f50 | |||
d973e11714 | |||
b6d7b2bff5 | |||
74f804a056 | |||
f0b5e3649d | |||
9cc132e69d | |||
9419e2faab | |||
0566ded651 | |||
ba9b3c217b | |||
79c5539edb | |||
cfd7cd01d1 | |||
da9f912862 | |||
9930cfbc07 | |||
7738e320d5 | |||
9b8735a87a | |||
6c10e03ce5 | |||
7ad3bb9e61 | |||
5dcf639d33 | |||
2da3b0192f | |||
ada8158caf | |||
2071939c5e | |||
f082278217 | |||
abe37add6e | |||
bc07ca94c0 | |||
728c962684 | |||
ca99add006 | |||
f771027138 | |||
8f1c0044b9 | |||
87cd828b5b | |||
46ccd9f654 | |||
b1927f9de1 | |||
b592e0e592 | |||
3b6cd93749 | |||
3a24c01f03 | |||
b7c80841a9 | |||
95645f59a3 | |||
9138e342fd | |||
692ed70ea9 | |||
3430507ae4 | |||
844f3ce9c8 | |||
03ffb90186 | |||
5f9bb59b95 | |||
7163efdd1e | |||
65fb24ff1b | |||
612cfbf313 | |||
4596d721e6 | |||
911206eed5 | |||
cb5cdca99d | |||
e54ae46537 | |||
7c978d4e70 | |||
d905b4387d | |||
c31c825a74 | |||
6505a9fefd | |||
de74f812ee | |||
82bb3f987d | |||
a35a616de7 | |||
ecf99bf9e7 | |||
cfaf354fe3 | |||
0b51e98d91 | |||
fa51251235 | |||
21fcd0bd35 | |||
96d558dd0c | |||
b6e8dcab81 | |||
fa78c53114 | |||
2f6b14ab6e | |||
2dd455ef83 | |||
306610da8e | |||
59ac1727f7 | |||
c974b3252d | |||
480933484f | |||
0cbd8a13a3 | |||
ae6c76fe54 | |||
1f098f2eaf | |||
11977e7017 | |||
27dd6aa62d | |||
c570e4fdbd | |||
da58f84fa6 | |||
755a45505f | |||
9d74cb9526 | |||
8c9d0bbe72 | |||
0152b38b8b | |||
e6cf90146a | |||
63d1258f2e | |||
46bab27f94 | |||
2cfbba1472 | |||
c980bda695 | |||
feaa1c3e99 | |||
aa1c2145bb | |||
335ee84540 | |||
5c37d50f4e | |||
77abf35761 | |||
fa85c9da5b | |||
cf53982086 | |||
91cbc1e09a | |||
a7e4268d8b | |||
699eacf1fd | |||
0189438e46 | |||
94712f59a3 | |||
ef93a754ce | |||
c6ddda1aa3 | |||
ccbca41e2d | |||
5b0d173078 | |||
d6186819f4 |
@ -15,6 +15,7 @@ Before you proceed...
|
|||||||
- Note: We do not support forks
|
- Note: We do not support forks
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
- Override Recipes [issue 1080](https://github.com/arkenfox/user.js/issues/1080)
|
||||||
- Extension breakage due to prefs [issue 391](https://github.com/arkenfox/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/arkenfox/user.js/issues/350)
|
- Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/arkenfox/user.js/issues/350)
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ TITLE prefs.js cleaner
|
|||||||
|
|
||||||
REM ### prefs.js cleaner for Windows
|
REM ### prefs.js cleaner for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 2.3
|
REM ## version: 2.4
|
||||||
|
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ ECHO:
|
|||||||
ECHO ########################################
|
ECHO ########################################
|
||||||
ECHO #### prefs.js cleaner for Windows ####
|
ECHO #### prefs.js cleaner for Windows ####
|
||||||
ECHO #### by claustromaniac ####
|
ECHO #### by claustromaniac ####
|
||||||
ECHO #### v2.3 ####
|
ECHO #### v2.4 ####
|
||||||
ECHO ########################################
|
ECHO ########################################
|
||||||
ECHO:
|
ECHO:
|
||||||
CALL :message "This script should be run from your Firefox profile directory."
|
CALL :message "This script should be run from your Firefox profile directory."
|
||||||
@ -28,6 +28,7 @@ IF ERRORLEVEL 3 (EXIT /B)
|
|||||||
IF ERRORLEVEL 2 (GOTO :showhelp)
|
IF ERRORLEVEL 2 (GOTO :showhelp)
|
||||||
IF NOT EXIST "user.js" (CALL :abort "user.js not found in the current directory." 30)
|
IF NOT EXIST "user.js" (CALL :abort "user.js not found in the current directory." 30)
|
||||||
IF NOT EXIST "prefs.js" (CALL :abort "prefs.js not found in the current directory." 30)
|
IF NOT EXIST "prefs.js" (CALL :abort "prefs.js not found in the current directory." 30)
|
||||||
|
CALL :strlenCheck
|
||||||
CALL :FFcheck
|
CALL :FFcheck
|
||||||
CALL :message "Backing up prefs.js..."
|
CALL :message "Backing up prefs.js..."
|
||||||
SET "_time=%time: =0%"
|
SET "_time=%time: =0%"
|
||||||
@ -50,6 +51,21 @@ ECHO:
|
|||||||
ECHO: %~1
|
ECHO: %~1
|
||||||
ECHO:
|
ECHO:
|
||||||
GOTO :EOF
|
GOTO :EOF
|
||||||
|
REM ### string length Check Function ####
|
||||||
|
:strlenCheck
|
||||||
|
SET /a cnt=0
|
||||||
|
setlocal ENABLEDELAYEDEXPANSION
|
||||||
|
FOR /F "tokens=1,* delims=:" %%G IN ('FINDSTR /N "^" prefs.js') DO (
|
||||||
|
ECHO:%%H >nul
|
||||||
|
SET /a cnt += 1
|
||||||
|
IF /I "%%G" NEQ "!cnt!" (
|
||||||
|
ECHO:
|
||||||
|
CALL :message "ERROR: line !cnt! in prefs.js is too long."
|
||||||
|
(CALL :abort "Aborting ..." 30)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
endlocal
|
||||||
|
GOTO :EOF
|
||||||
REM ####### Firefox Check Function ######
|
REM ####### Firefox Check Function ######
|
||||||
:FFcheck
|
:FFcheck
|
||||||
TASKLIST /FI "IMAGENAME eq firefox.exe" 2>NUL | FIND /I /N "firefox.exe">NUL
|
TASKLIST /FI "IMAGENAME eq firefox.exe" 2>NUL | FIND /I /N "firefox.exe">NUL
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## prefs.js cleaner for Linux/Mac
|
## prefs.js cleaner for Linux/Mac
|
||||||
## author: @claustromaniac
|
## author: @claustromaniac
|
||||||
## version: 1.3
|
## version: 1.4
|
||||||
|
|
||||||
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
||||||
|
|
||||||
@ -20,15 +20,22 @@ cd "$(dirname "${sfp}")"
|
|||||||
fQuit() {
|
fQuit() {
|
||||||
## change directory back to the original working directory
|
## change directory back to the original working directory
|
||||||
cd "${currdir}"
|
cd "${currdir}"
|
||||||
echo -e "\n$2"
|
[ $1 -eq 0 ] && echo -e "\n$2" || echo -e "\n$2" >&2
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fUsage() {
|
||||||
|
echo -e "\nUsage: $0 [-s]"
|
||||||
|
echo -e "
|
||||||
|
Optional Arguments:
|
||||||
|
-s Start immediately"
|
||||||
|
}
|
||||||
|
|
||||||
fFF_check() {
|
fFF_check() {
|
||||||
# there are many ways to see if firefox is running or not, some more reliable than others
|
# there are many ways to see if firefox is running or not, some more reliable than others
|
||||||
# this isn't elegant and might not be future-proof but should at least be compatible with any environment
|
# this isn't elegant and might not be future-proof but should at least be compatible with any environment
|
||||||
while [ -e lock ]; do
|
while [ -e lock ]; do
|
||||||
echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n"
|
echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n" >&2
|
||||||
read -p "Press any key to continue."
|
read -p "Press any key to continue."
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -54,34 +61,42 @@ fClean() {
|
|||||||
done < "$1" > prefs.js
|
done < "$1" > prefs.js
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fStart() {
|
||||||
|
if [ ! -e user.js ]; then
|
||||||
|
fQuit 1 "user.js not found in the current directory."
|
||||||
|
elif [ ! -e prefs.js ]; then
|
||||||
|
fQuit 1 "prefs.js not found in the current directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
fFF_check
|
||||||
|
bakfile="prefs.js.backup.$(date +"%Y-%m-%d_%H%M")"
|
||||||
|
mv prefs.js "${bakfile}" || fQuit 1 "Operation aborted.\nReason: Could not create backup file $bakfile"
|
||||||
|
echo -e "\nprefs.js backed up: $bakfile"
|
||||||
|
echo "Cleaning prefs.js..."
|
||||||
|
fClean "$bakfile"
|
||||||
|
fQuit 0 "All done!"
|
||||||
|
}
|
||||||
|
|
||||||
echo -e "\n\n"
|
echo -e "\n\n"
|
||||||
echo " ╔══════════════════════════╗"
|
echo " ╔══════════════════════════╗"
|
||||||
echo " ║ prefs.js cleaner ║"
|
echo " ║ prefs.js cleaner ║"
|
||||||
echo " ║ by claustromaniac ║"
|
echo " ║ by claustromaniac ║"
|
||||||
echo " ║ v1.3 ║"
|
echo " ║ v1.4 ║"
|
||||||
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."
|
||||||
echo "This will allow inactive preferences to be reset to their default values."
|
echo "This will allow inactive preferences to be reset to their default values."
|
||||||
echo -e "\nThis Firefox profile shouldn't be in use during the process.\n"
|
echo -e "\nThis Firefox profile shouldn't be in use during the process.\n"
|
||||||
|
|
||||||
|
[ "$1" == '-s' ] && fStart
|
||||||
|
|
||||||
select option in Start Help Exit; do
|
select option in Start Help Exit; do
|
||||||
case $option in
|
case $option in
|
||||||
Start)
|
Start)
|
||||||
if [ ! -e user.js ]; then
|
fStart
|
||||||
fQuit 1 "user.js not found in the current directory."
|
|
||||||
elif [ ! -e prefs.js ]; then
|
|
||||||
fQuit 1 "prefs.js not found in the current directory."
|
|
||||||
fi
|
|
||||||
|
|
||||||
fFF_check
|
|
||||||
bakfile="prefs.js.backup.$(date +"%Y-%m-%d_%H%M")"
|
|
||||||
mv prefs.js "${bakfile}" || fQuit 1 "Operation aborted.\nReason: Could not create backup file $bakfile"
|
|
||||||
echo -e "\nprefs.js backed up: $bakfile"
|
|
||||||
echo "Cleaning prefs.js..."
|
|
||||||
fClean "$bakfile"
|
|
||||||
fQuit 0 "All done!"
|
|
||||||
;;
|
;;
|
||||||
Help)
|
Help)
|
||||||
|
fUsage
|
||||||
echo -e "\nThis script creates a backup of your prefs.js file before doing anything."
|
echo -e "\nThis script creates a backup of your prefs.js file before doing anything."
|
||||||
echo -e "It should be safe, but you can follow these steps if something goes wrong:\n"
|
echo -e "It should be safe, but you can follow these steps if something goes wrong:\n"
|
||||||
echo "1. Make sure Firefox is closed."
|
echo "1. Make sure Firefox is closed."
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
/***
|
/***
|
||||||
Version: up to and including FF/ESR78
|
This will reset the preferences that are under sections 4600 & 4700 in the
|
||||||
|
arkenfox user.js. These are the prefs that are no longer necessary, or they
|
||||||
|
conflict with, privacy.resistFingerprinting if you have that enabled.
|
||||||
|
|
||||||
This will reset the preferences that are under sections 4600 & 4700 in the
|
Last updated: 08-July-2021
|
||||||
arkenfox user.js. These are the prefs that are no longer necessary, or they
|
|
||||||
conflict with, privacy.resistFingerprinting if you have that enabled.
|
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
***/
|
***/
|
||||||
|
|
||||||
(function() {
|
(() => {
|
||||||
let ops = [
|
|
||||||
|
if ('undefined' === typeof(Services)) return alert('about:config needs to be the active tab!');
|
||||||
|
|
||||||
|
const aPREFS = [
|
||||||
/* section 4600 */
|
/* section 4600 */
|
||||||
'dom.maxHardwareConcurrency',
|
'dom.maxHardwareConcurrency',
|
||||||
'dom.enable_resource_timing',
|
'dom.enable_resource_timing',
|
||||||
@ -22,44 +25,45 @@
|
|||||||
'media.webspeech.synth.enabled',
|
'media.webspeech.synth.enabled',
|
||||||
'media.video_stats.enabled',
|
'media.video_stats.enabled',
|
||||||
'dom.w3c_touch_events.enabled',
|
'dom.w3c_touch_events.enabled',
|
||||||
|
'media.navigator.enabled',
|
||||||
'media.ondevicechange.enabled',
|
'media.ondevicechange.enabled',
|
||||||
'webgl.enable-debug-renderer-info',
|
'webgl.enable-debug-renderer-info',
|
||||||
'dom.w3c_pointer_events.enabled',
|
'ui.prefersReducedMotion',
|
||||||
|
'dom.w3c_pointer_events.enabled', // deprecated FF87
|
||||||
'ui.use_standins_for_native_colors',
|
'ui.use_standins_for_native_colors',
|
||||||
'ui.systemUsesDarkTheme',
|
'ui.systemUsesDarkTheme',
|
||||||
'ui.prefersReducedMotion',
|
'dom.webaudio.enabled',
|
||||||
|
'layout.css.font-visibility.level',
|
||||||
/* section 4700 */
|
/* section 4700 */
|
||||||
'general.useragent.override',
|
|
||||||
'general.buildID.override',
|
|
||||||
'general.appname.override',
|
'general.appname.override',
|
||||||
'general.appversion.override',
|
'general.appversion.override',
|
||||||
'general.platform.override',
|
'general.buildID.override',
|
||||||
'general.oscpu.override',
|
'general.oscpu.override',
|
||||||
|
'general.platform.override',
|
||||||
|
'general.useragent.override',
|
||||||
/* reset parrot: check your open about:config after running the script */
|
/* reset parrot: check your open about:config after running the script */
|
||||||
'_user.js.parrot'
|
'_user.js.parrot'
|
||||||
]
|
];
|
||||||
|
|
||||||
|
console.clear();
|
||||||
|
|
||||||
if("undefined" === typeof(Services)) {
|
|
||||||
alert("about:config needs to be the active tab!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let c = 0;
|
let c = 0;
|
||||||
for (let i = 0, len = ops.length; i < len; i++) {
|
for (const sPname of aPREFS) {
|
||||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
if (Services.prefs.prefHasUserValue(sPname)) {
|
||||||
Services.prefs.clearUserPref(ops[i]);
|
Services.prefs.clearUserPref(sPname);
|
||||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
if (!Services.prefs.prefHasUserValue(sPname)) {
|
||||||
console.log("reset", ops[i]);
|
console.info('reset', sPname);
|
||||||
c++;
|
c++;
|
||||||
} else { console.log("failed to reset", ops[i]); }
|
} else console.warn('failed to reset', sPname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
focus();
|
focus();
|
||||||
|
|
||||||
let d = (c==1) ? " pref" : " prefs";
|
const d = (c==1) ? ' pref' : ' prefs';
|
||||||
if (c > 0) {
|
alert(c ? 'successfully reset ' + c + d + "\n\nfor details check the console" : 'nothing to reset');
|
||||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
|
||||||
} else { alert("nothing to reset"); }
|
return 'all done';
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -1,17 +1,20 @@
|
|||||||
/***
|
/***
|
||||||
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 arkenfox 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/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
***/
|
***/
|
||||||
|
|
||||||
(function() {
|
(() => {
|
||||||
let ops = [
|
|
||||||
|
if ('undefined' === typeof(Services)) return alert('about:config needs to be the active tab!');
|
||||||
|
|
||||||
|
const aPREFS = [
|
||||||
/* deprecated */
|
/* deprecated */
|
||||||
|
|
||||||
/* 78 */
|
/* 78 */
|
||||||
@ -220,29 +223,26 @@
|
|||||||
|
|
||||||
/* reset parrot: check your open about:config after running the script */
|
/* reset parrot: check your open about:config after running the script */
|
||||||
'_user.js.parrot'
|
'_user.js.parrot'
|
||||||
]
|
];
|
||||||
|
|
||||||
|
console.clear();
|
||||||
|
|
||||||
if("undefined" === typeof(Services)) {
|
|
||||||
alert("about:config needs to be the active tab!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let c = 0;
|
let c = 0;
|
||||||
for (let i = 0, len = ops.length; i < len; i++) {
|
for (const sPname of aPREFS) {
|
||||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
if (Services.prefs.prefHasUserValue(sPname)) {
|
||||||
Services.prefs.clearUserPref(ops[i]);
|
Services.prefs.clearUserPref(sPname);
|
||||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
if (!Services.prefs.prefHasUserValue(sPname)) {
|
||||||
console.log("reset", ops[i]);
|
console.info('reset', sPname);
|
||||||
c++;
|
c++;
|
||||||
} else { console.log("failed to reset", ops[i]); }
|
} else console.warn('failed to reset', sPname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
focus();
|
focus();
|
||||||
|
|
||||||
let d = (c==1) ? " pref" : " prefs";
|
const d = (c==1) ? ' pref' : ' prefs';
|
||||||
if (c > 0) {
|
alert(c ? 'successfully reset ' + c + d + "\n\nfor details check the console" : 'nothing to reset');
|
||||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
|
||||||
} else { alert("nothing to reset"); }
|
return 'all done';
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
/***
|
/***
|
||||||
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
||||||
|
|
||||||
Last updated: 02-Nov-2020
|
Last updated: 24-July-2021
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
***/
|
***/
|
||||||
|
|
||||||
(function() {
|
(() => {
|
||||||
let ops = [
|
|
||||||
/* removed in arkenfox user.js v52-57 */
|
if ('undefined' === typeof(Services)) return alert('about:config needs to be the active tab!');
|
||||||
|
|
||||||
|
const aPREFS = [
|
||||||
|
/* removed in arkenfox user.js */
|
||||||
/* 52-alpha */
|
/* 52-alpha */
|
||||||
'browser.search.reset.enabled',
|
'browser.search.reset.enabled',
|
||||||
'browser.search.reset.whitelist',
|
'browser.search.reset.whitelist',
|
||||||
@ -26,7 +29,6 @@
|
|||||||
'extensions.pocket.api', // covered by extensions.pocket.enabled
|
'extensions.pocket.api', // covered by extensions.pocket.enabled
|
||||||
'extensions.pocket.oAuthConsumerKey', // ditto
|
'extensions.pocket.oAuthConsumerKey', // ditto
|
||||||
'extensions.pocket.site', // ditto
|
'extensions.pocket.site', // ditto
|
||||||
/* 56-alpha: none */
|
|
||||||
/* 57-alpha */
|
/* 57-alpha */
|
||||||
'geo.wifi.xhr.timeout', // covered by geo.enabled
|
'geo.wifi.xhr.timeout', // covered by geo.enabled
|
||||||
'browser.search.geoip.timeout', // ditto
|
'browser.search.geoip.timeout', // ditto
|
||||||
@ -128,7 +130,6 @@
|
|||||||
'browser.cache.disk.smart_size.enabled',
|
'browser.cache.disk.smart_size.enabled',
|
||||||
'browser.cache.disk.smart_size.first_run',
|
'browser.cache.disk.smart_size.first_run',
|
||||||
'browser.cache.offline.insecure.enable',
|
'browser.cache.offline.insecure.enable',
|
||||||
'browser.safebrowsing.downloads.remote.url',
|
|
||||||
'browser.safebrowsing.provider.google.reportMalwareMistakeURL',
|
'browser.safebrowsing.provider.google.reportMalwareMistakeURL',
|
||||||
'browser.safebrowsing.provider.google.reportPhishMistakeURL',
|
'browser.safebrowsing.provider.google.reportPhishMistakeURL',
|
||||||
'browser.safebrowsing.provider.google.reportURL',
|
'browser.safebrowsing.provider.google.reportURL',
|
||||||
@ -179,7 +180,6 @@
|
|||||||
'browser.safebrowsing.provider.mozilla.updateURL',
|
'browser.safebrowsing.provider.mozilla.updateURL',
|
||||||
'browser.urlbar.userMadeSearchSuggestionsChoice',
|
'browser.urlbar.userMadeSearchSuggestionsChoice',
|
||||||
'privacy.trackingprotection.annotate_channels',
|
'privacy.trackingprotection.annotate_channels',
|
||||||
'privacy.trackingprotection.enabled',
|
|
||||||
'privacy.trackingprotection.lower_network_priority',
|
'privacy.trackingprotection.lower_network_priority',
|
||||||
'privacy.trackingprotection.pbmode.enabled',
|
'privacy.trackingprotection.pbmode.enabled',
|
||||||
'services.blocklist.addons.collection',
|
'services.blocklist.addons.collection',
|
||||||
@ -223,38 +223,46 @@
|
|||||||
'browser.search.region',
|
'browser.search.region',
|
||||||
/* 79-beta */
|
/* 79-beta */
|
||||||
'browser.urlbar.usepreloadedtopurls.enabled',
|
'browser.urlbar.usepreloadedtopurls.enabled',
|
||||||
/* 80 */
|
|
||||||
'dom.IntersectionObserver.enabled',
|
|
||||||
/* 82-beta */
|
/* 82-beta */
|
||||||
|
'dom.IntersectionObserver.enabled',
|
||||||
'extensions.screenshots.upload-disabled',
|
'extensions.screenshots.upload-disabled',
|
||||||
'privacy.partition.network_state',
|
'privacy.partition.network_state',
|
||||||
'security.ssl3.dhe_rsa_aes_128_sha',
|
'security.ssl3.dhe_rsa_aes_128_sha',
|
||||||
'security.ssl3.dhe_rsa_aes_256_sha',
|
'security.ssl3.dhe_rsa_aes_256_sha',
|
||||||
|
/* 84-beta */
|
||||||
|
'browser.newtabpage.activity-stream.asrouter.providers.snippets',
|
||||||
|
/* 85-beta */
|
||||||
|
'network.http.redirection-limit',
|
||||||
|
/* 86-beta */
|
||||||
|
'media.gmp-widevinecdm.visible',
|
||||||
|
/* 87-beta */
|
||||||
|
'browser.send_pings.require_same_host',
|
||||||
|
/* 88-beta */
|
||||||
|
'webgl.min_capability_mode',
|
||||||
|
/* 89-beta */
|
||||||
|
'security.ssl.enable_ocsp_stapling',
|
||||||
/* reset parrot: check your open about:config after running the script */
|
/* reset parrot: check your open about:config after running the script */
|
||||||
'_user.js.parrot'
|
'_user.js.parrot'
|
||||||
]
|
];
|
||||||
|
|
||||||
|
console.clear();
|
||||||
|
|
||||||
if("undefined" === typeof(Services)) {
|
|
||||||
alert("about:config needs to be the active tab!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let c = 0;
|
let c = 0;
|
||||||
for (let i = 0, len = ops.length; i < len; i++) {
|
for (const sPname of aPREFS) {
|
||||||
if (Services.prefs.prefHasUserValue(ops[i])) {
|
if (Services.prefs.prefHasUserValue(sPname)) {
|
||||||
Services.prefs.clearUserPref(ops[i]);
|
Services.prefs.clearUserPref(sPname);
|
||||||
if (!Services.prefs.prefHasUserValue(ops[i])) {
|
if (!Services.prefs.prefHasUserValue(sPname)) {
|
||||||
console.log("reset", ops[i]);
|
console.info('reset', sPname);
|
||||||
c++;
|
c++;
|
||||||
} else { console.log("failed to reset", ops[i]); }
|
} else console.warn('failed to reset', sPname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
focus();
|
focus();
|
||||||
|
|
||||||
let d = (c==1) ? " pref" : " prefs";
|
const d = (c==1) ? ' pref' : ' prefs';
|
||||||
if (c > 0) {
|
alert(c ? 'successfully reset ' + c + d + "\n\nfor details check the console" : 'nothing to reset');
|
||||||
alert("successfully reset " + c + d + "\n\nfor details check the Browser Console (Ctrl+Shift+J)");
|
|
||||||
} else { alert("nothing to reset"); }
|
return 'all done';
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
/*** arkenfox user.js troubleshooter.js v1.6.2 ***/
|
/*** arkenfox user.js troubleshooter.js v1.6.3 ***/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
@ -17,9 +17,7 @@
|
|||||||
|
|
||||||
/* Storage + Cache */
|
/* Storage + Cache */
|
||||||
'browser.cache.offline.enable',
|
'browser.cache.offline.enable',
|
||||||
'dom.indexedDB.enabled',
|
|
||||||
'dom.storage.enabled',
|
'dom.storage.enabled',
|
||||||
'browser.storageManager.enabled',
|
|
||||||
'dom.storageManager.enabled',
|
'dom.storageManager.enabled',
|
||||||
|
|
||||||
/* Workers, Web + Push Notifications */
|
/* Workers, Web + Push Notifications */
|
||||||
@ -34,7 +32,6 @@
|
|||||||
/* Fonts */
|
/* Fonts */
|
||||||
'browser.display.use_document_fonts',
|
'browser.display.use_document_fonts',
|
||||||
'font.blacklist.underline_offset',
|
'font.blacklist.underline_offset',
|
||||||
'gfx.downloadable_fonts.woff2.enabled',
|
|
||||||
'gfx.font_rendering.graphite.enabled',
|
'gfx.font_rendering.graphite.enabled',
|
||||||
'gfx.font_rendering.opentype_svg.enabled',
|
'gfx.font_rendering.opentype_svg.enabled',
|
||||||
'layout.css.font-loading-api.enabled',
|
'layout.css.font-loading-api.enabled',
|
||||||
@ -47,12 +44,10 @@
|
|||||||
'dom.IntersectionObserver.enabled',
|
'dom.IntersectionObserver.enabled',
|
||||||
'dom.popup_allowed_events',
|
'dom.popup_allowed_events',
|
||||||
'full-screen-api.enabled',
|
'full-screen-api.enabled',
|
||||||
'geo.wifi.uri',
|
|
||||||
'intl.accept_languages',
|
'intl.accept_languages',
|
||||||
'javascript.options.asmjs',
|
'javascript.options.asmjs',
|
||||||
'javascript.options.wasm',
|
'javascript.options.wasm',
|
||||||
'permissions.default.shortcuts',
|
'permissions.default.shortcuts',
|
||||||
'security.csp.experimentalEnabled',
|
|
||||||
|
|
||||||
/* Hardware */
|
/* Hardware */
|
||||||
'dom.vr.enabled',
|
'dom.vr.enabled',
|
||||||
@ -60,7 +55,6 @@
|
|||||||
|
|
||||||
/* Audio + Video */
|
/* Audio + Video */
|
||||||
'dom.webaudio.enabled',
|
'dom.webaudio.enabled',
|
||||||
'media.autoplay.enabled',
|
|
||||||
'media.autoplay.default', // FF63+
|
'media.autoplay.default', // FF63+
|
||||||
'media.autoplay.blocking_policy', // FF78+
|
'media.autoplay.blocking_policy', // FF78+
|
||||||
|
|
||||||
@ -89,13 +83,11 @@
|
|||||||
|
|
||||||
/* Plugins + Flash */
|
/* Plugins + Flash */
|
||||||
'plugin.default.state',
|
'plugin.default.state',
|
||||||
'plugin.defaultXpi.state',
|
|
||||||
'plugin.sessionPermissionNow.intervalInMinutes',
|
|
||||||
'plugin.state.flash',
|
'plugin.state.flash',
|
||||||
|
|
||||||
/* unlikely to cause problems */
|
/* unlikely to cause problems */
|
||||||
'browser.tabs.remote.allowLinkedWebInFileUriProcess',
|
|
||||||
'dom.popup_maximum',
|
'dom.popup_maximum',
|
||||||
|
'geo.provider.network.url',
|
||||||
'layout.css.visited_links_enabled',
|
'layout.css.visited_links_enabled',
|
||||||
'mathml.disabled',
|
'mathml.disabled',
|
||||||
'network.auth.subresource-http-auth-allow',
|
'network.auth.subresource-http-auth-allow',
|
||||||
@ -103,6 +95,7 @@
|
|||||||
'network.protocol-handler.external.ms-windows-store',
|
'network.protocol-handler.external.ms-windows-store',
|
||||||
'privacy.trackingprotection.enabled',
|
'privacy.trackingprotection.enabled',
|
||||||
'security.data_uri.block_toplevel_data_uri_navigations',
|
'security.data_uri.block_toplevel_data_uri_navigations',
|
||||||
|
'privacy.window.name.update.enabled', // FF82+
|
||||||
|
|
||||||
'last.one.without.comma'
|
'last.one.without.comma'
|
||||||
]
|
]
|
||||||
@ -168,8 +161,8 @@
|
|||||||
reapply(aALL);
|
reapply(aALL);
|
||||||
myreset(aTmp.slice(0, _h(aTmp)));
|
myreset(aTmp.slice(0, _h(aTmp)));
|
||||||
while (aTmp.length) {
|
while (aTmp.length) {
|
||||||
alert("NOW TEST AGAIN !");
|
alert('NOW TEST AGAIN !');
|
||||||
if (confirm("if the problem still exists click OK, otherwise click cancel.")) {
|
if (confirm('if the problem still exists click OK, otherwise click Cancel.')) {
|
||||||
aTmp = aTmp.slice(_h(aTmp));
|
aTmp = aTmp.slice(_h(aTmp));
|
||||||
} else {
|
} else {
|
||||||
aTmp = aTmp.slice(0, _h(aTmp));
|
aTmp = aTmp.slice(0, _h(aTmp));
|
||||||
@ -183,16 +176,16 @@
|
|||||||
|
|
||||||
if (aDbg.length == 1) return alert("narrowed it down to:\n\n"+aDbg[0].name+"\n");
|
if (aDbg.length == 1) return alert("narrowed it down to:\n\n"+aDbg[0].name+"\n");
|
||||||
if (aDbg.length == aALL.length) {
|
if (aDbg.length == aALL.length) {
|
||||||
let msg = "Failed to narrow it down beyond the initial "+aALL.length+" prefs. The problem is most likely caused by at least 2 prefs!\n\n";
|
const msg = "Failed to narrow it down beyond the initial "+aALL.length+" prefs. The problem is most likely caused by at least 2 prefs!\n\n" +
|
||||||
msg += "Either those prefs are too far apart in the list or there are exactly 2 culprits and they just happen to be at the wrong place.\n\n";
|
"Either those prefs are too far apart in the list or there are exactly 2 culprits and they just happen to be at the wrong place.\n\n" +
|
||||||
msg += "In case it's the latter, the script can add a dummy pref and you can try again - Try again?";
|
"In case it's the latter, the script can add a dummy pref and you can try again - Try again?";
|
||||||
if (confirm(msg)) return _main([...aALL, oFILLER]);
|
if (confirm(msg)) return _main([...aALL, oFILLER]);
|
||||||
} else if (aDbg.length > 10 && confirm("Narrowed it down to "+aDbg.length+" prefs. Try narrowing it down further?")) {
|
} else if (aDbg.length > 10 && confirm("Narrowed it down to "+aDbg.length+" prefs. Try narrowing it down further?")) {
|
||||||
return _main(aDbg.reverse());
|
return _main(aDbg.reverse());
|
||||||
}
|
}
|
||||||
|
|
||||||
alert("Narrowed it down to "+ aDbg.length.toString() +" prefs, check the console ...");
|
alert("Narrowed it down to "+ aDbg.length.toString() +" prefs, check the console ...");
|
||||||
console.log("The problem is caused by 2 or more of these prefs:");
|
console.log('The problem is caused by 2 or more of these prefs:');
|
||||||
for (const oPref of aDbg) console.log(oPref.name);
|
for (const oPref of aDbg) console.log(oPref.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,14 +194,18 @@
|
|||||||
|
|
||||||
const aBAK = getMyList(aPREFS);
|
const aBAK = getMyList(aPREFS);
|
||||||
//console.log(aBAK.length, "user-set prefs from our list detected and their values stored.");
|
//console.log(aBAK.length, "user-set prefs from our list detected and their values stored.");
|
||||||
|
|
||||||
|
const sMsg = "all detected prefs reset.\n\n" +
|
||||||
|
"!! KEEP THIS PROMPT OPEN AND TEST THE SITE IN ANOTHER TAB !!\n\n" +
|
||||||
|
"IF the problem still exists, this script can't help you - click Cancel to re-apply your values and exit.\n\n" +
|
||||||
|
"Click OK if your problem is fixed.";
|
||||||
|
|
||||||
focus();
|
focus();
|
||||||
myreset(aBAK);
|
myreset(aBAK);
|
||||||
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.")) {
|
if (!confirm(sMsg)) {
|
||||||
reapply(aBAK);
|
reapply(aBAK);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_main(aBAK);
|
_main(aBAK);
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
28
updater.bat
28
updater.bat
@ -3,10 +3,10 @@ TITLE arkenfox user.js updater
|
|||||||
|
|
||||||
REM ## arkenfox user.js updater for Windows
|
REM ## arkenfox user.js updater for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 4.12
|
REM ## version: 4.14
|
||||||
REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
|
REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
|
||||||
|
|
||||||
SET v=4.12
|
SET v=4.14
|
||||||
|
|
||||||
VERIFY ON
|
VERIFY ON
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
@ -28,6 +28,15 @@ SHIFT
|
|||||||
GOTO parse
|
GOTO parse
|
||||||
:endparse
|
:endparse
|
||||||
|
|
||||||
|
FOR /F %%i IN ('PowerShell -Command "[Enum]::GetNames([Net.SecurityProtocolType]) -contains 'Tls12'"') DO (
|
||||||
|
IF "%%i" == "False" (
|
||||||
|
CALL :message "Your PowerShell version doesn't support TLS1.2 ^!"
|
||||||
|
ECHO: Instructions to update PowerShell are on the arkenfox wiki
|
||||||
|
PAUSE
|
||||||
|
EXIT
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
IF DEFINED _updateb (
|
IF DEFINED _updateb (
|
||||||
REM The normal flow here goes from phase 1 to phase 2 and then phase 3.
|
REM The normal flow here goes from phase 1 to phase 2 and then phase 3.
|
||||||
IF NOT "!_myname:~0,9!"=="[updated]" (
|
IF NOT "!_myname:~0,9!"=="[updated]" (
|
||||||
@ -51,9 +60,7 @@ IF DEFINED _updateb (
|
|||||||
CALL :message "Updating script..."
|
CALL :message "Updating script..."
|
||||||
REM Uncomment the next line and comment out the PowerShell call for testing.
|
REM Uncomment the next line and comment out the PowerShell call for testing.
|
||||||
REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul
|
REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul
|
||||||
(
|
CALL :psdownload https://raw.githubusercontent.com/arkenfox/user.js/master/updater.bat "[updated]!_myname!.bat"
|
||||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/updater.bat', '[updated]!_myname!.bat')"
|
|
||||||
) >nul 2>&1
|
|
||||||
IF EXIST "[updated]!_myname!.bat" (
|
IF EXIST "[updated]!_myname!.bat" (
|
||||||
START /min CMD /C "[updated]!_myname!.bat" !_myparams!
|
START /min CMD /C "[updated]!_myname!.bat" !_myparams!
|
||||||
) ELSE (
|
) ELSE (
|
||||||
@ -132,9 +139,7 @@ IF DEFINED _log (
|
|||||||
)
|
)
|
||||||
IF EXIST user.js.new (DEL /F "user.js.new")
|
IF EXIST user.js.new (DEL /F "user.js.new")
|
||||||
CALL :message "Retrieving latest user.js file from github repository..."
|
CALL :message "Retrieving latest user.js file from github repository..."
|
||||||
(
|
CALL :psdownload https://raw.githubusercontent.com/arkenfox/user.js/master/user.js "user.js.new"
|
||||||
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/user.js', 'user.js.new')"
|
|
||||||
) >nul 2>&1
|
|
||||||
IF EXIST user.js.new (
|
IF EXIST user.js.new (
|
||||||
IF DEFINED _rfpalts (
|
IF DEFINED _rfpalts (
|
||||||
CALL :message "Activating RFP Alternatives section..."
|
CALL :message "Activating RFP Alternatives section..."
|
||||||
@ -218,6 +223,13 @@ IF NOT "2"=="%_log%" (ECHO:)
|
|||||||
ENDLOCAL
|
ENDLOCAL
|
||||||
GOTO :EOF
|
GOTO :EOF
|
||||||
|
|
||||||
|
::::::::::::::: Download :::::::::::::::
|
||||||
|
:psdownload
|
||||||
|
(
|
||||||
|
PowerShell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; (New-Object Net.WebClient).DownloadFile('%~1', '%~2')"
|
||||||
|
) >nul 2>&1
|
||||||
|
GOTO :EOF
|
||||||
|
|
||||||
::::::::::::::: Activate Section :::::::::::::::
|
::::::::::::::: Activate Section :::::::::::::::
|
||||||
:activate
|
:activate
|
||||||
:: arg1 = file
|
:: arg1 = file
|
||||||
|
67
updater.sh
67
updater.sh
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## arkenfox user.js updater for macOS and Linux
|
## arkenfox user.js updater for macOS and Linux
|
||||||
|
|
||||||
## version: 2.8
|
## version: 3.2
|
||||||
## Author: Pat Johnson (@overdodactyl)
|
## Author: Pat Johnson (@overdodactyl)
|
||||||
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
||||||
|
|
||||||
@ -10,9 +10,9 @@
|
|||||||
|
|
||||||
readonly CURRDIR=$(pwd)
|
readonly CURRDIR=$(pwd)
|
||||||
|
|
||||||
sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
SCRIPT_FILE=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
||||||
[ -z "$sfp" ] && sfp=${BASH_SOURCE[0]}
|
[ -z "$SCRIPT_FILE" ] && SCRIPT_FILE=${BASH_SOURCE[0]}
|
||||||
readonly SCRIPT_DIR=$(dirname "${sfp}")
|
readonly SCRIPT_DIR=$(dirname "${SCRIPT_FILE}")
|
||||||
|
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
@ -103,7 +103,6 @@ Optional Arguments:
|
|||||||
# File Handling #
|
# File Handling #
|
||||||
#########################
|
#########################
|
||||||
|
|
||||||
# Download files
|
|
||||||
download_file () { # expects URL as argument ($1)
|
download_file () { # expects URL as argument ($1)
|
||||||
declare -r tf=$(mktemp)
|
declare -r tf=$(mktemp)
|
||||||
|
|
||||||
@ -122,36 +121,33 @@ open_file () { # expects one argument: file_path
|
|||||||
|
|
||||||
readIniFile () { # expects one argument: absolute path of profiles.ini
|
readIniFile () { # expects one argument: absolute path of profiles.ini
|
||||||
declare -r inifile="$1"
|
declare -r inifile="$1"
|
||||||
declare -r tfile=$(mktemp)
|
|
||||||
|
|
||||||
if [ $(grep '^\[Profile' "$inifile" | wc -l) == "1" ]; then ### only 1 profile found
|
# tempIni will contain: [ProfileX], Name=, IsRelative= and Path= (and Default= if present) of the only (if) or the selected (else) profile
|
||||||
grep '^\[Profile' -A 4 "$inifile" | grep -v '^\[Profile' > $tfile
|
if [ $(grep -c '^\[Profile' "${inifile}") -eq "1" ]; then ### only 1 profile found
|
||||||
|
tempIni="$(grep '^\[Profile' -A 4 "${inifile}")"
|
||||||
else
|
else
|
||||||
grep -E -v '^\[General\]|^StartWithLastProfile=|^IsRelative=' "$inifile"
|
echo -e "Profiles found:\n––––––––––––––––––––––––––––––"
|
||||||
echo ''
|
## cmd-substitution to strip trailing newlines and in quotes to keep internal ones:
|
||||||
|
echo "$(grep --color=never -E 'Default=[^1]|\[Profile[0-9]*\]|Name=|Path=|^$' "${inifile}")"
|
||||||
|
echo '––––––––––––––––––––––––––––––'
|
||||||
read -p 'Select the profile number ( 0 for Profile0, 1 for Profile1, etc ) : ' -r
|
read -p 'Select the profile number ( 0 for Profile0, 1 for Profile1, etc ) : ' -r
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
if [[ $REPLY =~ ^(0|[1-9][0-9]*)$ ]]; then
|
if [[ $REPLY =~ ^(0|[1-9][0-9]*)$ ]]; then
|
||||||
grep '^\[Profile'${REPLY} -A 4 "$inifile" | grep -v '^\[Profile'${REPLY} > $tfile
|
tempIni="$(grep "^\[Profile${REPLY}" -A 4 "${inifile}")" || {
|
||||||
if [[ "$?" != "0" ]]; then
|
echo -e "${RED}Profile${REPLY} does not exist!${NC}" && exit 1
|
||||||
echo "Profile${REPLY} does not exist!" && exit 1
|
}
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "Invalid selection!" && exit 1
|
echo -e "${RED}Invalid selection!${NC}" && exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
declare -r profpath=$(grep '^Path=' $tfile)
|
# extracting 0 or 1 from the "IsRelative=" line
|
||||||
declare -r pathisrel=$(grep '^IsRelative=' $tfile)
|
declare -r pathisrel=$(sed -n 's/^IsRelative=\([01]\)$/\1/p' <<< "${tempIni}")
|
||||||
|
|
||||||
rm "$tfile"
|
# extracting only the path itself, excluding "Path="
|
||||||
|
PROFILE_PATH=$(sed -n 's/^Path=\(.*\)$/\1/p' <<< "${tempIni}")
|
||||||
# update global variable
|
# update global variable if path is relative
|
||||||
if [[ ${pathisrel#*=} == "1" ]]; then
|
[[ ${pathisrel} == "1" ]] && PROFILE_PATH="$(dirname "${inifile}")/${PROFILE_PATH}"
|
||||||
PROFILE_PATH="$(dirname "$inifile")/${profpath#*=}"
|
|
||||||
else
|
|
||||||
PROFILE_PATH="${profpath#*=}"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getProfilePath () {
|
getProfilePath () {
|
||||||
@ -161,16 +157,14 @@ getProfilePath () {
|
|||||||
if [ "$PROFILE_PATH" = false ]; then
|
if [ "$PROFILE_PATH" = false ]; then
|
||||||
PROFILE_PATH="$SCRIPT_DIR"
|
PROFILE_PATH="$SCRIPT_DIR"
|
||||||
elif [ "$PROFILE_PATH" = 'list' ]; then
|
elif [ "$PROFILE_PATH" = 'list' ]; then
|
||||||
local ini=''
|
|
||||||
if [[ -f "$f1" ]]; then
|
if [[ -f "$f1" ]]; then
|
||||||
ini="$f1"
|
readIniFile "$f1" # updates PROFILE_PATH or exits on error
|
||||||
elif [[ -f "$f2" ]]; then
|
elif [[ -f "$f2" ]]; then
|
||||||
ini="$f2"
|
readIniFile "$f2"
|
||||||
else
|
else
|
||||||
echo -e "${RED}Error: Sorry, -l is not supported for your OS${NC}"
|
echo -e "${RED}Error: Sorry, -l is not supported for your OS${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
readIniFile "$ini" # updates PROFILE_PATH or exits on error
|
|
||||||
#else
|
#else
|
||||||
# PROFILE_PATH already set by user with -p
|
# PROFILE_PATH already set by user with -p
|
||||||
fi
|
fi
|
||||||
@ -191,14 +185,12 @@ get_updater_version () {
|
|||||||
# -d: New version will not be looked for and update will not occur
|
# -d: New version will not be looked for and update will not occur
|
||||||
# -u: Check for update, if available, execute without asking
|
# -u: Check for update, if available, execute without asking
|
||||||
update_updater () {
|
update_updater () {
|
||||||
if [ $UPDATE = 'no' ]; then
|
[ $UPDATE = 'no' ] && return 0 # User signified not to check for updates
|
||||||
return 0 # User signified not to check for updates
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh')"
|
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh')"
|
||||||
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
|
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
|
||||||
|
|
||||||
if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then
|
if [[ $(get_updater_version "$SCRIPT_FILE") < $(get_updater_version "${tmpfile}") ]]; then
|
||||||
if [ $UPDATE = 'check' ]; then
|
if [ $UPDATE = 'check' ]; then
|
||||||
echo -e "There is a newer version of updater.sh available. ${RED}Update and execute Y/N?${NC}"
|
echo -e "There is a newer version of updater.sh available. ${RED}Update and execute Y/N?${NC}"
|
||||||
read -p "" -n 1 -r
|
read -p "" -n 1 -r
|
||||||
@ -208,13 +200,12 @@ update_updater () {
|
|||||||
else
|
else
|
||||||
return 0 # No update available
|
return 0 # No update available
|
||||||
fi
|
fi
|
||||||
mv "${tmpfile}" "${SCRIPT_DIR}/updater.sh"
|
mv "${tmpfile}" "$SCRIPT_FILE"
|
||||||
chmod u+x "${SCRIPT_DIR}/updater.sh"
|
chmod u+x "$SCRIPT_FILE"
|
||||||
"${SCRIPT_DIR}/updater.sh" "$@" -d
|
"$SCRIPT_FILE" "$@" -d
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# Update user.js #
|
# Update user.js #
|
||||||
#########################
|
#########################
|
||||||
@ -245,7 +236,7 @@ add_override () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
remove_comments () { # expects 2 arguments: from-file and to-file
|
remove_comments () { # expects 2 arguments: from-file and to-file
|
||||||
sed -e 's/^[[:space:]]*\/\/.*$//' -e '/^\/\*/,/\*\//d' -e '/^[[:space:]]*$/d' -e 's/);[[:space:]]*\/\/.*/);/' "$1" > "$2"
|
sed -e '/^\/\*.*\*\/[[:space:]]*$/d' -e '/^\/\*/,/\*\//d' -e 's|^[[:space:]]*//.*$||' -e '/^[[:space:]]*$/d' -e 's|);[[:space:]]*//.*|);|' "$1" > "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Applies latest version of user.js and any custom overrides
|
# Applies latest version of user.js and any custom overrides
|
||||||
|
BIN
wikipiki/parseError.png
Normal file
BIN
wikipiki/parseError.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
Reference in New Issue
Block a user