Compare commits

...

274 Commits

Author SHA1 Message Date
94712f59a3 83 final 2020-11-22 17:05:34 +00:00
ef93a754ce warnings always come after notes 2020-11-21 01:49:19 +00:00
c6ddda1aa3 Update troubleshooter.js
- add `privacy.window.name.update.enabled`
- remove `media.autoplay.enabled` (removed in FF63)
- remove `dom.indexedDB.enabled` (removed in FF72)
2020-11-17 19:17:59 +00:00
ccbca41e2d start 83 alpha, fixup 1244 setting info
`browser.preferences.exposeHTTPSOnly` is now default true
2020-11-13 01:03:29 +00:00
5b0d173078 82 final 2020-11-13 00:55:45 +00:00
d6186819f4 domIntersectionObserver
it was removed after 81-beta was released
2020-11-11 18:42:29 +00:00
ea0eb85404 82-beta 2020-11-11 18:23:00 +00:00
8dc43cfdc2 RFP 82+ changes
Note
 - this is not the same as 2517 which disables the API
 - RFP does not determine what is supported or not supported: so that entropy remains
 - with or without RFP, if the media config is not supported it returns false,false (so there is nothing to spoof here)
2020-11-11 18:20:13 +00:00
f7bee988de 0517: add creditCards.available / defense-in-depth
see https://github.com/arkenfox/user.js/issues/1038#issuecomment-713643850
2020-11-11 18:08:06 +00:00
f2fe7f02b0 add 2624: window.name protection, fixes #1012 2020-11-11 16:59:27 +00:00
accef19af4 add LSNG, fixes #1059 2020-11-11 16:27:43 +00:00
910d7004c6 release info, fixes #1042
now we have somewhere to add things like HTTPS-Only Mode, appCache, secure downloads when we make changes that impact ESR
2020-11-11 16:12:57 +00:00
07cccd5386 remove 4003: partition, see #1051 (#1057) 2020-11-02 17:05:40 +00:00
ac52886ea8 2422 WASM, add reason for disabling, fixes #1037 (#1054) 2020-10-26 10:37:49 +00:00
c45780d79b 0701 PHP localhost + IPv6, fixes #1053 2020-10-26 10:34:54 +00:00
e14732aad3 2031: better reference: closes #1022 (#1048) 2020-10-23 23:29:31 +00:00
26d4768447 add media.autoplay.blocking_policy 2020-10-21 13:44:21 +00:00
9f99885272 clean up acknowledgments 2020-10-20 12:57:00 +00:00
0adfddd1e2 misc (#1040)
* misc

- cleanup of old release notation in comments: e.g. if it's not applicable to ESR78+
- same with default version info
- simplify and save bytes on section 4700
- update 4500 header
  - and unify the message about using extensions as counterproductive
- letterboxing
   - provide info on stepped ranged (and drop crap about FF67)
   - don't judge users who dislike seeing margins (I don't like them either, but I force my window to exact dimensions and stay there)
- screenshots uploading was disabled in FF67+ : [67 release notes](https://www.mozilla.org/en-US/firefox/67.0/releasenotes/)
   - the pref is still there (default false) but so far I'm 99% sure this pref now does anything
   - I will add it to the scatchpad script if this change sticks

* simplify 4500 RFP, see #1041

* update removed script

* tidy readme, see #1045

- also put readme before releases

* RIP FX Site Compat

* clean out RFP Alts info: the information is redundant: it's already in the readme
2020-10-20 11:58:20 +00:00
f591a8adf8 82-alpha, 82 deprecated, remove old deprecated 2020-10-13 14:12:53 +00:00
0e10a820d9 81 final 2020-10-13 14:01:41 +00:00
c90341dded 1244: HTTPS-Only mode update (#1031) 2020-10-07 12:10:24 +00:00
d5ccf4693b fixup font prefs vs RFP, fixes #1025 (#1028)
- make 1401 inactive: it affects RFP's FPing
- remove old warning/setup-web: we do not care about documenting breakage or FPing risks when we have a warning and they are inactive. If someone uses them, that's on them
- new warnings
2020-10-06 13:43:51 +00:00
e89f9a5d89 dom.IntersectionObserver.enabled
commit: a56ba85936
issue: #1026
2020-10-02 08:36:15 +00:00
a56ba85936 remove dom.IntersectionObserver.enabled #1026
- this was made inactive in v68
- since at least FF79, when active as false, it breaks the web and browser consoles
- it breaks websites
- it breaks extensions: e.g. uBO panel functionality
- it does nothing to mitigate possible fingerprinting (which was why it was initially added as a concern) - i.e the API only provided a standardized method, it does not stop previous/earlier workarounds
2020-10-02 08:33:27 +00:00
421f1e361c [ ] are for for prefs only 2020-09-29 06:10:57 +00:00
2391874e04 UI setting change in 81
https://bugzilla.mozilla.org/show_bug.cgi?id=1613468
2020-09-28 19:04:08 +00:00
4779ea7850 remove CSP issue, closes #1021 2020-09-27 00:47:09 +00:00
c367beabe3 81-beta 2020-09-23 12:20:59 +00:00
e1d336a178 standardize some error codes
* 0 : successful termination
* 2 : command line syntax error
* 1 : catchall for general errors

Plus a few text improvements based on unmerged PR 4fbb2be98d
2020-09-15 13:36:39 +00:00
ee3e5f0186 v4.12: arkenfox 2020-09-15 12:04:54 +00:00
42b7650d42 v2.8: arkenfox 2020-09-15 11:58:52 +00:00
f61d4a0d38 Update prefsCleaner.sh 2020-09-15 11:55:28 +00:00
7fe9784bf8 we no longer have github pages 2020-09-15 06:18:54 +00:00
ed05c64482 we no longer have github pages 2020-09-15 06:18:33 +00:00
16c3658040 align look with TZP 2020-09-15 06:17:44 +00:00
515d6ff874 v2.3: update repo name 2020-09-15 06:11:35 +00:00
fc65052286 migration: cleanup code references 2020-09-15 06:07:32 +00:00
6a107d4d2f migration: cleanup code references 2020-09-15 06:06:32 +00:00
eff4b74130 migration: cleanup code references 2020-09-15 06:05:33 +00:00
2532ddcc18 update name 2020-09-15 05:59:51 +00:00
44e22835c1 update name 2020-09-15 05:58:39 +00:00
1f545312fd update names + links 2020-09-15 05:57:30 +00:00
637e5964db update links 2020-09-15 05:56:00 +00:00
26bca612d7 rename as arkenfox 2020-09-15 05:54:22 +00:00
6fdda5fb62 rename as arkenfox 2020-09-15 05:53:09 +00:00
ed5b158777 Rename ghacks-clear-RFP-alternatives.js to arkenfox-clear-RFP-alternatives.js 2020-09-15 05:52:28 +00:00
4c4270f1d7 migration changes 2020-09-15 04:33:50 +00:00
af51631597 Update LICENSE.txt 2020-09-15 04:19:03 +00:00
ae0c980d25 migration 2020-09-15 04:15:03 +00:00
3e4c56cf27 arkenfox support
also fixes mixed line endings
2020-09-13 12:16:21 +00:00
18112f9ae8 last F time :) update TZP links 2020-09-11 21:55:12 +00:00
c8eee094e0 update links 2020-09-11 03:23:55 +00:00
78a7c194eb update ref links 2020-09-10 07:33:50 +00:00
f606c8b866 2203 values
see https://bugzilla.mozilla.org/show_bug.cgi?id=1663500 where they reverted https://bugzilla.mozilla.org/show_bug.cgi?id=1661643 where they said value 1 didn't do anything - all changes in FF82, so nothing to see here folks ... move along
2020-09-08 23:49:22 +00:00
9c98972d14 misc2 (#1010)
* forceMediaMemoryCache breakage

* add back ESR68-EOL for prefsCleaner users
2020-09-05 15:42:34 +00:00
75a03df0f7 miscellaneous (#1007)
- less active prefs
   - now that ESR68 is EOL, at least a whopping two (0602, 1273)
   - also I don't know when the default changed - another whopping whole one (1240)
   - and where we do enforce/reset a pref to default, lets say that
   - this is not a definitive list, sing out if there is anything else
- IPv6 info
   - especially for Iron Heart who likes to claim that this pref breaks 5% of sites
- cleanup of settings tags now we only care abut ESR78+
2020-09-05 15:20:46 +00:00
76019e6fbe ESR78 unhidden prefs
also, the note about WebExt + SVG only applies to people using outdated versions .. so that can go too
2020-09-03 13:27:25 +00:00
3c2bd930c3 start 81-alpha, EOL for ESR68 2020-09-03 13:11:16 +00:00
ed993d5502 80 final 2020-09-03 13:04:31 +00:00
22d2d702be 1409: obsolete RFP mention 2020-09-03 13:02:09 +00:00
8dacf6e91f fix typo (#1005) 2020-08-31 21:47:57 +00:00
fbe1d48fe2 2203: open_newwindow values
- FYI: https://bugzilla.mozilla.org/show_bug.cgi?id=1661643
- https://hg.mozilla.org/integration/autoland/rev/12d62b074178
2020-08-31 19:49:00 +00:00
5fd7f6de7e 80-alpha 2020-08-28 18:27:20 +00:00
592b959c24 Updater.sh rework 2 (#1000)
* rework DOWNLOAD_METHOD, download_file, open_file

* remove legacy command leftover line

* return empty string if download fails and return/exit if this happens and show error message

* fix IFS var typo

* bump version

* add quotes

Co-authored-by: TotallyLeGIT <bbkqx24kxlgvgbss@mailban.de>
2020-08-28 10:51:15 +00:00
c6f53c8768 2201 deprecated (dead prefs removed in 82), #979 (#1002) 2020-08-26 11:28:47 +00:00
38d772e4c8 https-only mode updates (#1001) 2020-08-25 14:59:41 +00:00
cfce521919 1409: RFP changes in FF81+ (#998) 2020-08-23 14:37:18 +00:00
a5ab3e23d6 Update README.md 2020-08-22 22:16:27 +00:00
b3eee6c9fd improve readability, remove lots of unnecessary echo commands, remove legacy arguments (#997)
Co-authored-by: TotallyLeGIT <bbkqx24kxlgvgbss@mailban.de>
2020-08-22 12:07:13 +00:00
8d6d17d46b 1244: HTTPS-only mode: FF80+ site exceptions
The option is not shown if https-only-mode is not being applied. I tested with `http://asmjs.org/` since it doesn't redirect/upgrade to secure.
2020-08-21 21:05:08 +00:00
9a37e1340c 0905: add reference, #982 2020-08-20 17:18:22 +00:00
f1e0203ef4 0105b, cleaner value, see #992 2020-08-15 01:56:01 +00:00
726d5bde30 0105b: stop console error, closes #992 2020-08-14 14:12:28 +00:00
f9f0fffd27 Update README.md 2020-08-14 09:01:14 +00:00
93840ca181 0602 not hidden in ESR78 2020-08-13 15:37:25 +00:00
99aa5af356 password master->primary 2020-08-13 15:34:26 +00:00
0358fdac8b 80-alpha 2020-08-13 15:32:45 +00:00
815c3026b5 79 final 2020-08-13 15:30:36 +00:00
5ed3047b7a references cleanup 2020-08-13 15:22:38 +00:00
e16ede1cdf 79-beta 2020-08-13 14:44:27 +00:00
6905187b3e 0207/0208: region/search (#989) 2020-08-13 04:39:38 +00:00
172118e61b RFP+Alts: fixup sequential numbering, see #987 2020-08-05 01:35:10 +00:00
8452edb94b 4600: see #987 2020-08-04 10:25:29 +00:00
0f6957bbd4 4600: add missing version section 2020-08-04 10:18:29 +00:00
8c2bcc0352 1007: bump to 64mb, see #941 2020-08-03 22:50:58 +00:00
bc832575d8 1003: kibibytes 2020-08-03 14:52:21 +00:00
c4b7e07691 4500: site partitioning 2020-08-02 01:47:48 +00:00
58fb1db838 HTTPS-Only Mode UI 2020-08-02 01:27:30 +00:00
2809854802 font visibility / RFP (#985) 2020-08-01 11:03:17 +00:00
091a71aade browser.urlbar.usepreloadedtopurls.enabled 2020-07-29 02:22:09 +00:00
117ab133b1 remove 0809
not deprecated, just hidden: default is false anyway
2020-07-29 02:19:20 +00:00
c4a06c4689 missing comma 2020-07-23 12:23:14 +00:00
0d27689c64 update to ESR78
and this time add the file extension
2020-07-23 12:22:20 +00:00
771e57480a Delete ghacks-clear-RFP-alternatives 2020-07-23 12:21:10 +00:00
f8fd03482d 79 deprecated 2020-07-23 11:19:49 +00:00
10cc1224d0 Create ghacks-clear-removed.js 2020-07-23 11:00:23 +00:00
52926cca7a Delete ghacks-clear-[removed].js 2020-07-23 10:59:19 +00:00
be64819ce7 update to ESR78 2020-07-23 10:58:22 +00:00
24c228df92 update to ESR78 2020-07-23 10:57:12 +00:00
892b3d9d69 Delete ghacks-clear-FF68inclusive-[deprecated].js 2020-07-23 10:53:38 +00:00
df21798b81 Delete ghacks-clear-FF68inclusive-[RFP-alternatives].js 2020-07-23 10:53:25 +00:00
46d03279d3 79 start, fixup 2429 default info 2020-07-22 12:35:13 +00:00
fe0af3bb34 remove 0709 duplicate, 78 final 2020-07-21 10:40:01 +00:00
84997386c1 78-beta 2020-07-20 05:24:18 +00:00
1a389c0214 dnsResolveSingleWordsAfterSearch (#968) 2020-07-10 10:09:13 +00:00
d0060fed3c 2031: use exceptions if you need to, #969 2020-07-08 13:18:38 +00:00
3d18af19e3 various, #959 (#967)
Co-authored-by: rusty-snake
2020-07-05 14:02:25 +00:00
b5b04454e0 0850a search keywords fixup 2020-07-01 03:46:52 +00:00
618f7bed3f 0850a: add top sites FF78+ 2020-06-29 15:49:11 +00:00
488a825626 update weak ciphers/tests etc, closes #931 (#963)
- adds the new tests including the non-JS JA3

Co-authored-by: rusty-snake <41237666+rusty-snake@users.noreply.github.com>
Co-authored-by: earthlng <earthlng@users.noreply.github.com>
2020-06-28 15:48:13 +00:00
aaf6cb33d7 4617 restart
- at least for disabling chrome animations
2020-06-27 12:37:32 +00:00
77ecef8be3 78 deprecated, add 2032 (#962) 2020-06-27 12:16:57 +00:00
4be0a80720 update trac tor tickets (#958)
and some other minor tweaks
2020-06-24 17:26:25 +00:00
f573200aa8 ciphers in ESR78
[1496639](https://bugzilla.mozilla.org/show_bug.cgi?id=1496639)
2020-06-18 02:29:54 +00:00
48f258ff53 start 78-alpha 2020-06-14 10:28:32 +00:00
b9100488cb 77 final 2020-06-14 10:26:10 +00:00
9d78e050ee 77-beta 2020-06-12 17:39:28 +00:00
b07cf1f03d remove extra line from last commit, save one byte 2020-06-05 03:10:09 +00:00
683ef63b37 RFP alts: prefers-reduced-motion 2020-06-05 03:08:16 +00:00
05580f5e99 0709 hotfix, #923, #951 2020-06-02 20:48:41 +00:00
ecc62554e5 2608: remote debugging: default value, closes #950 2020-06-01 15:27:38 +00:00
f6e6de8444 77 deprecated 2020-05-29 12:41:59 +00:00
f69d92e6dd 1244: https upgrade local 2020-05-29 12:23:17 +00:00
3edc48da56 fix updater.sh when dealing with multiple overrides (#947)
thanks @mloberg !
2020-05-26 11:54:55 +00:00
868882ae33 start 77-alpha 2020-05-24 18:11:55 +00:00
ff9bf76e52 76 final, save some bytes in RFP section 2020-05-24 18:09:46 +00:00
4bc5b89cfe 4500: RFP changes 78+ re canvas 2020-05-15 23:18:11 +00:00
bb1e5bfd54 76-beta 2020-05-07 14:56:49 +00:00
27d72eda9e 1244: https-only-mode 2020-05-07 06:20:10 +00:00
07117c65c1 RFP spoofs FF78+ 2020-05-07 05:13:19 +00:00
919d4bfe96 godamnit, also move related reference 2020-05-04 10:52:25 +00:00
e38e253c25 oophs, forgot deprecation source 2020-05-04 10:49:07 +00:00
14aaec71fb 76 deprecated 2020-05-04 07:34:23 +00:00
c0780df24d 1401: PDF breakage, closes #937 2020-04-30 21:50:50 +00:00
0ea1605642 start 76-alpha, 2605 default 2020-04-30 18:52:27 +00:00
bd384622db Update troubleshooter.js (#935)
extensions.blocklist.pingCountTotal is not used anymore in FF76+
2020-04-29 12:00:10 +00:00
3366e0aa16 75 final 2020-04-23 08:52:48 +00:00
W
dff5bb478a 0211: add possible breakage for CJK input methods 2020-04-16 04:04:13 +00:00
d455c500a6 75-beta 2020-04-15 14:44:14 +00:00
b90e72370c 1007 fixup what FF75+ applies to 2020-04-14 00:28:00 +00:00
dd162d9f48 1007 fixups 2020-04-14 00:16:03 +00:00
d7c276b3fe 2402: clipboardevents -> inactive, #887 2020-04-13 06:17:54 +00:00
394b691599 2421: grammar fix 2020-04-13 04:55:10 +00:00
ba83c555cc geo default search engines
browser.search.geoip.url is deprecated in 75, the prefs are only used on first run, and we don't mess with search engines as that is a user choice
2020-04-12 18:10:34 +00:00
b695468c7e remove 0205 2020-04-12 18:07:12 +00:00
deae6e14f9 75 deprecated 2020-04-12 16:38:12 +00:00
97c5378e52 1007: *forceMediaMemoryCache PB mode 2020-04-12 16:23:48 +00:00
d2dd0c2ab4 tls stats update
- Go to https://telemetry.mozilla.org/
- click `measurement dashboard`
- select `SSL_HANDSHAKE_VERSION`

I looked at Nightly 75 (0.26 and 0.01) and Nightly 76 (0.2 and 0)
2020-04-11 02:51:17 +00:00
8c7149c6a5 2421: Ion/JIT trusted principals, closes #914 2020-04-09 06:07:13 +00:00
d2da48c215 revert top sites, see #922 2020-04-08 08:01:07 +00:00
7e71b6663c 75-alpha, add 105e, closes #922 2020-04-08 07:12:14 +00:00
94c83519f2 74 final 2020-04-08 07:08:36 +00:00
e7d20867cb 2623 delegation 2421 ion/jit tweak 2020-04-06 00:39:52 +00:00
55ae994972 2421 fixup Ion/Jit note 2020-03-28 13:18:34 +00:00
f0945743b7 2662: clarify 4503 needed, #912 2020-03-27 16:20:41 +00:00
ee35d7c70d 2421: ion/jit and extensions note 2020-03-27 12:44:06 +00:00
fe1b03bd2a tls downgrades -> session only 2020-03-27 12:36:16 +00:00
187692af66 enforce disabled system + prefixed colors 2020-03-19 11:36:03 +00:00
b6e2a3f64f one of the 2012 webgl prefs deprecated 2020-03-12 14:44:14 +00:00
6f7e09ad43 1704 deprecated, add 1703 2020-03-12 05:23:57 +00:00
4ddf60cf32 0203: make sure users know these are 74+ prefs 2020-03-12 03:56:13 +00:00
24777c9ac2 FF74: 0203 updates (#904) 2020-03-12 03:44:52 +00:00
615ebeda2f start 74-alpha 2020-03-12 03:43:31 +00:00
4139630635 73 final 2020-03-12 03:37:46 +00:00
a542701ba5 Update troubleshooting-help.md 2020-02-25 00:21:42 +00:00
e67a0c868d Update troubleshooting-help.md 2020-02-25 00:20:19 +00:00
1afd52de6e 0306: minor tweak
There is no "show more details about an addon" anymore since they moved to the new html/card layout
2020-02-22 13:56:30 +00:00
64f34f1471 73-beta 2020-02-15 12:55:59 +00:00
5f3e3b2691 VR default prompt, RFP info, start 73-alpha 2020-02-14 01:00:02 +00:00
1ce1f74494 Update user.js 2020-02-12 12:03:29 +00:00
03f558b09c nit: 0517 SETTING
we don't include `Options>` in [SETTING] lines
2020-02-10 17:12:08 +00:00
cd9fc110b0 v1.2
look for `lock` file instead of `webappsstore.sqlite-shm` to detect if firefox is running or not (with this profile)

see https://github.com/ghacksuserjs/ghacks-user.js/pull/405#issuecomment-581447586 and follow-up comments.

Thanks @atomGit for reporting the issue and @rusty-snake for confirming it.
2020-02-10 16:47:17 +00:00
7619e312de 72 final 2020-01-24 16:48:16 +00:00
5d2c5de11c fixup deprecated ESR-cycle version 2020-01-15 02:53:07 +00:00
e1022c2e72 72-beta 2020-01-14 17:38:22 +00:00
e431b324c8 FF72 deprecated 2020-01-08 02:53:25 +00:00
18ad40a5c6 systemUsesDarkTheme -> RFP Alts 2019-12-25 02:14:49 +00:00
315de066ec typo (#870) 2019-12-24 11:49:19 +00:00
85273d0f19 0517: setting tag 2019-12-22 07:13:48 +00:00
ef293b57a7 5000s: add ui.systemUsesDarkTheme 2019-12-22 06:14:25 +00:00
79d316fd22 remove old deprecations 2019-12-19 16:37:19 +00:00
ed60588473 72-alpha start 2019-12-19 16:34:44 +00:00
07c128a190 71 final 2019-12-19 16:31:51 +00:00
5b1d56933b middlemouse.paste, see #735 2019-12-19 16:21:21 +00:00
34cfcedc1b 2402+2403, finally closes #735 2019-12-19 16:19:39 +00:00
f9146fdf24 update setting tags, minor tweaks 2019-12-18 09:46:21 +00:00
a1cdbc8324 1408 graphite, closes #1408 and 2619 puncyode 2019-12-18 07:46:44 +00:00
cd07641a9d 2701: make sure cookieBehavior is always honored (#866)
see #862
2019-12-18 05:02:25 +00:00
9c02949e04 0000: config.xhtml in FF73+ (#865) 2019-12-17 15:00:34 +00:00
1ef62a1036 media.block-autoplay-until-in-foreground #840 2019-12-12 01:24:12 +00:00
5672bc8cc8 2032 removed, 4002 inactive, closes #840 2019-12-12 01:21:17 +00:00
df1732745d 0308: seach engine updates: better info #840 2019-12-10 22:07:23 +00:00
30daf8640c FPI stuff 2019-12-09 20:18:42 +00:00
4074a37e1d 1201 + 1270 update (#859)
trim by a line, remove extra space, fixup on red, indicate it only applies if 1201 is false
2019-12-07 18:26:39 +00:00
97043b0ce1 71-beta 2019-12-06 12:19:21 +00:00
42ea484017 71 deprecated (#856) 2019-12-04 14:13:49 +13:00
3f6340b69c OMG!! 2019-12-03 14:51:44 +00:00
884e84a4cb about:config warning back to the top + active (#855) 2019-12-04 03:44:59 +13:00
560acfc94f 70 final 2019-12-03 07:31:47 +00:00
fb263f5624 favicons: 1031 better info, 1032 inactive #840 (#851) 2019-12-02 23:04:09 +13:00
19b392b83d 70-beta 2019-11-24 05:23:10 +00:00
2db76c95c3 1603: breaks icloud, closes #850 2019-11-23 16:19:09 +00:00
b6fbf77dde Create ghacks-clear-FF68inclusive-[RFP-alternatives].js 2019-11-23 03:04:14 +00:00
a4ba22e912 Delete ghacks-clear-FF60inclusive-[RFP-alternatives].js 2019-11-23 03:02:59 +00:00
163e18ce6d Create ghacks-clear-FF68inclusive-[deprecated].js 2019-11-23 02:57:26 +00:00
a13027905e Delete ghacks-clear-FF60inclusive-[deprecated].js 2019-11-23 02:56:30 +00:00
8f76d9439f 2002: add FF70 bugzilla link 2019-11-22 15:26:38 +00:00
f0980b5cb8 2002: add proxy_only_if_behind_proxy 2019-11-22 15:19:37 +00:00
450c9a9e0f simplify ciphers, closes #839 (#844)
* simplify ciphers

- let's not encourage (remove options 1, 2) changing your cipher suite FP
- remove "it's quite technical ..." (everything is technical to someone), trim to one line
- add test link so users can just see that it's FP'able
- reinforce not to fuck with the cipher suite in the cipher's sub-section
2019-11-23 03:23:08 +13:00
6acfdaccbd RFP stuff 2019-11-20 04:48:15 +00:00
a0e0a2a6c9 2680 tweak #840 2019-11-19 16:26:14 +00:00
f67e729197 whatsNewPanel correct version 2019-11-19 06:39:08 +00:00
19526b573c 2805 note, FPI change (#842) 2019-11-19 16:31:48 +13:00
b0221ec838 1576254 version fixup 2019-11-17 10:33:02 +00:00
a3611b7cf8 changes to prefs affecting extensions
also first word on pdfjs.disabled, to be consistent
2019-11-14 02:39:48 +00:00
bff1e84afa v1.6.0 2019-11-11 15:10:14 +00:00
1d31da40ec missing comma
thanks @sebp  - 0d57cfc44a (commitcomment-35890867)
2019-11-11 13:00:01 +00:00
0d57cfc44a about_newtab_segregation.enabled 2019-11-09 23:25:52 +00:00
0cfb2fb06d 1703: remove
default true since FF61, and ESR60 is now EOL
2019-11-09 23:23:34 +00:00
d5f297ed42 5000s: disable what's new 2019-11-08 18:06:35 +00:00
c13dbdf40d 1201 update (#838)
https://wiki.mozilla.org/Security:Renegotiation describes

> **the new default behaviour** that was introduced in experimental mozilla-central nightly versions on 2010-02-08

where the last step is

> - should the server (or a MITM) request **renegotiation**, Mozilla will terminate the connection with an error message

and then after talking about breakage ...

> The above defaults may break some client/server environments where a Server is still using old software and requires renegotiation.

mentions workarounds to reduce said breakage:

> In order to give such environments a way to keep using Firefox (et.al.) to connect to their vulnerable server infrastructure, the following preferences are available:

specifically talking about the first 2 prefs listed there, one allowing to specify a list of hosts "where renegotiation may be performed" and the 2nd one "completely disables the new protection mechanisms".
But both those prefs were removed in FF38, meaning that since then it's no longer possible to disable the default behaviour that is "should the server (or a MITM) request **renegotiation**, Mozilla will terminate the connection with an error message".

But all of this is about the **re**-negotiation part and not negotiation. And nowhere does it say "insecure" renegotiation, which, as I read it, means that FF will terminate the connection for any kind of **renegotiation**, safe or unsafe.

1201 controls the negotiation part:

> This pref controls the behaviour during the initial negotiation between client and server.
> If set to true, a Mozilla client will reject all connection attempts to servers that are still using the old SSL/TLS protocol and which might be vulnerable to the attack.
> Setting this preference to “true” is the only way to guarantee full protection against the attack.

I think "servers that are still using the old SSL/TLS protocol" actually means servers that **only** support the old protocols.
Servers still supporting those old protocols in addition to some new protocol versions should not be affected by this pref because FF will be able to negotiate to use one of the newer protocol versions.

Ergo lets fix the title and remove the line about renegotiation support because I think that's irrelevant.


ps. the sslpulse link is nice and I'd like to keep it somewhere but it doesn't really fit in 1201 IMO so I moved it to 1202.
2019-11-09 05:42:21 +13:00
6173104a9e re-add relevant deprecated items for ESR users (#837)
makes the prefsCleaner scripts useful again for users updating from ESR60 to ESR68
2019-11-09 05:30:03 +13:00
0c79b8b45b Update README.md 2019-11-08 13:46:20 +00:00
895f8d01d5 FF70+: shield studies no longer tied to FHR (#836)
https://bugzilla.mozilla.org/1569330
2019-11-09 02:01:33 +13:00
65dfad5c76 2701: UI changes 2019-11-06 11:37:24 +00:00
fdaf22780f Update README.md 2019-11-02 16:00:12 +00:00
16756646bb remove DoH, closes #790 2019-10-31 09:49:12 +00:00
e4f80225d8 FF72: FPI & IPv6 2019-10-28 12:12:52 +00:00
67eec9c85c pbmode insecure text/icon
see `1273`
- we already make **all** windows do this (which overrides the pb mode setting), and these were inactive
- in FF70+ the icon pref (for PB mode and all windows) is now default true
2019-10-27 04:50:59 +00:00
539750d2f2 FF70 hidden/default changes 2019-10-27 04:41:27 +00:00
d91226ed55 tweakin' 2019-10-20 23:59:16 +00:00
301fcd059d 1003: capacity no longer hidden 2019-10-20 23:36:48 +00:00
1cc9a08a18 remove ESR60.x deprecated
These are archived in #123
2019-10-20 22:40:53 +00:00
5d1857ddd8 start 70 commits 2019-10-20 22:32:37 +00:00
226af6f679 69 final 2019-10-20 22:20:50 +00:00
7f2c92f654 webgl.dxgl.enabled 2019-10-15 09:28:52 +00:00
5b82afd5bd webgl.dxgl.enabled, closes #814 2019-10-15 09:27:44 +00:00
d7b1877a1f browser.sessionhistory.max_entries see #808 2019-10-14 01:14:50 +00:00
1b6239eab8 remove 0804, closes #808
if anyone can show me how this stops history leaks, then I'll put it back with a note saying it's been broken since FF61
2019-10-14 01:13:27 +00:00
ad0187122d some SB were reinstated, closes #806 2019-10-07 16:20:03 +00:00
624e50faac replace ` with ' 2019-10-05 17:51:34 +00:00
a9e9392172 add some SB back, see #803 2019-10-05 17:47:25 +00:00
201210111e char fix 2019-10-05 15:12:21 +00:00
53f8578749 see #807 2019-10-05 15:09:19 +00:00
dc4d9e4dae revamp 0200s (#807), closes #0806
- split geo related vs language/locale related
- rip out intl.locale.requested
- rip out intl.regional_prefs.use_os_locales
- add intl.charset.fallback.override
2019-10-06 04:04:41 +13:00
e1b0eae740 goodbye http and other stuff (#801)
* goodbye http and other stuff

* dead link

* put back asmjs [1] ref

* 0805 test

* typo

* 1222 refs

* 1222 FF version

FYI: https://bugzilla.mozilla.org/show_bug.cgi?id=629558

* 2684: security delay ref

* ESR stuff

* ping ref

* 2684 ref

* 0606: give the standard it's correct name

https://html.spec.whatwg.org/multipage/links.html#hyperlink-auditing

* 0805 test instructions

* tweakin'
2019-09-21 16:20:10 +00:00
be0ccf6460 2300: service workers, closes #786 2019-09-17 12:43:50 +12:00
7c0a327b06 cache, closes #778 2019-09-16 15:25:30 +00:00
a35cba3914 2651: android UI breakage, closes #795 2019-09-12 16:22:09 +00:00
e16425310f 0320+0321: redundant prefs, #793 2019-09-12 15:52:46 +00:00
d503d96db0 0320+0321: redundant prefs, closes #793 2019-09-12 15:50:54 +00:00
335299a0cf browser.cache.disk_cache_ssl 2019-09-09 21:45:33 +00:00
7311cfdf84 remove 1002, closes #792 2019-09-09 21:43:50 +00:00
3a9440aeea 0707: Add mode 5 (#789) 2019-09-08 11:38:37 +00:00
3210ab0ca8 370: pocket -> 5000s, closes #787 2019-09-07 07:22:32 +00:00
2c734612f6 ummm .. beta
OK, did that all back to front... alpha is when we're working on the diffs .. beta is when we finished it
2019-09-04 21:40:04 +00:00
a12dd83b1f 69-alpha, fixes #766 2019-09-04 21:36:50 +00:00
44d9ceaf05 various tidyups 2019-09-04 01:40:33 +12:00
be9d9ac9ca 2701: tidyup 2019-09-03 03:34:16 +00:00
66cdb72927 FF69: deprecated 2019-09-02 07:07:50 +00:00
953b96431e 4000: RFP info re 1330467
it rode the train in 69... after a bumpy ride in 68 where it was backed out. Note: it still has some issues. Suggest users wipe the site permissions once upgraded to 69
2019-09-02 06:45:30 +00:00
4d72ad90b0 2701: cookies default FF69+ 2019-09-02 18:33:00 +12:00
cccb5b10b4 plugin.sessionPermissionNow.intervalInMinutes 2019-09-01 21:06:10 +00:00
810045eb39 1802: remove intervalInMinues
with `plugins.click_to_play` deprecated in FF69, no-one here is sure if `intervalInMinutes` still applies to Flash or even works, and no-one here cares about Flash. Happy to let Mozilla just keep restricting it more and more until it's deprecated in early 2020. Note: we already disable flash anyway in pref 1803.
2019-09-01 21:03:53 +00:00
b47982bb9a 2030: again 2019-09-01 20:32:53 +00:00
0691b8babe 2032: fix description
from earthlng 
> it blocks **all media** autoplay "until in foreground", not just audio.
> Source: https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/browser-custom-element.js#1141
2019-09-01 19:22:28 +00:00
8d1c95c650 2030: autoplay changes
When ESR60 hits end of life, we should remove that value 2
2019-09-01 19:16:36 +00:00
19484e1a56 2805: see #774 2019-09-01 14:47:17 +00:00
755ebf88fb start 69 commits 2019-09-01 06:27:24 +00:00
d26ea4f39e 68 final 2019-08-31 14:51:08 +00:00
a0f3da208f 0390: better reference
- EFF has pretty pictures and stuff and explains the issues (replaces wikipedia which people can still search for)
- tor issue doesn't hold anything important (out it goes)
- moz wiki page I'll leave in for the bugzilla links if someone wants to research how it's all meant to work
2019-08-28 16:33:06 +00:00
5166811bd5 1003: closes #772 2019-08-21 13:01:12 +00:00
86bfdd1470 tweak: middlemouse.paste for Linux 2019-08-21 04:08:40 +00:00
16 changed files with 855 additions and 899 deletions

View File

@ -8,16 +8,15 @@ assignees: ''
--- ---
Before you proceed... Before you proceed...
- Keep reading this. Seriously. - Issues will be closed as invalid if you do not [troubleshoot](https://github.com/arkenfox/user.js/wiki/1.4-Troubleshooting), including
- Note that we do not support forks (i.e. IceCat, Pale Moon, WaterFox, etc). - confirming the problem is caused by the `user.js`
- Make sure you searched for the `[Setup` tags in the `user.js`. - searching the `[Setup` tags in the `user.js`
- Search the GitHub repository. The information you need is most likely here already. - Search the GitHub repository. The information you need is most likely here already.
- Check out our [troubleshooting](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.4-Troubleshooting) wiki page, including steps to see if the problem is caused by the `user.js` or an extension. - Note: We do not support forks
See also: See also:
- Extension breakage due to prefs [issue 391](https://github.com/ghacksuserjs/ghacks-user.js/issues/391) - Extension breakage due to prefs [issue 391](https://github.com/arkenfox/user.js/issues/391)
- Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/ghacksuserjs/ghacks-user.js/issues/350) - Prefs vs Recommended Extensions: Co-Existance+Enhancement | Conflicts [issue 350](https://github.com/arkenfox/user.js/issues/350)
- The extension CSP header modification game [issue 664](https://github.com/ghacksuserjs/ghacks-user.js/issues/664)
If you still need help, help us help you by providing relevant information: If you still need help, help us help you by providing relevant information:
- browser version - browser version

View File

@ -9,7 +9,7 @@ assignees: ''
We value feedback in general, but we value feedback from informed users more. There is no need for you to be an expert to participate (most of us aren't), but we hope that you at least understand our decisions before questioning them. We discuss all changes openly, and we do not make changes lightly. So, if you don't understand why we decided to add/remove/change a certain pref, search the repo. The answer is most certainly here. We value feedback in general, but we value feedback from informed users more. There is no need for you to be an expert to participate (most of us aren't), but we hope that you at least understand our decisions before questioning them. We discuss all changes openly, and we do not make changes lightly. So, if you don't understand why we decided to add/remove/change a certain pref, search the repo. The answer is most certainly here.
If some change we made took you by surprise (in the wrong way), remember that keeping track of changes is your responsibility. Watch the repo, read the [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/issues?utf8=✓&q=is%3Aissue+label%3Achangelog), compare [releases](https://github.com/ghacksuserjs/ghacks-user.js/releases) as you update your copy of user.js, or use any other method you prefer. If some change we made took you by surprise (in the wrong way), remember that keeping track of changes is your responsibility. Watch the repo, read the [changelogs](https://github.com/arkenfox/user.js/issues?utf8=✓&q=is%3Aissue+label%3Achangelog), compare [releases](https://github.com/arkenfox/user.js/releases) as you update your copy of user.js, or use any other method you prefer.
Clear all of this when you're ready to type. Clear all of this when you're ready to type.

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2017 ghacksuserjs Copyright (c) 2020 arkenfox
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,27 +1,27 @@
### ![][b] user.js ### 🟪 user.js
A `user.js` is a configuration file that can control hundreds of Firefox settings. For a more technical breakdown and explanation, you can read more on the [overview](https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.1-Overview) wiki page. A `user.js` is a configuration file that can control hundreds of Firefox settings. For a more technical breakdown and explanation, you can read more on the [overview](https://github.com/arkenfox/user.js/wiki/1.1-Overview) wiki page.
### ![][b] ghacks user.js ### 🟩 the arkenfox user.js
The `ghacks user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
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. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
The `arkenfox user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
Everyone, experts included, should at least read the [implementation](https://github.com/arkenfox/user.js/wiki/1.3-Implementation) wiki page, as it contains important information regarding a few `user.js` settings.
Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://www.torproject.org/about/torusers.html.en) calls for it, or for accessing hidden services. Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://www.torproject.org/about/torusers.html.en) calls for it, or for accessing hidden services.
Also be aware that this `user.js` is made specifically for Firefox. Using it as-is in other Gecko-based browsers can be counterproductive, especially in the Tor Browser. Also be aware that the `arkenfox user.js` is made specifically for desktop Firefox. Using it as-is in other Gecko-based browsers can be counterproductive, especially in the Tor Browser.
Sitemap: [Releases](https://github.com/ghacksuserjs/ghacks-user.js/releases), [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Achangelog), [Wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki), [stickies](https://github.com/ghacksuserjs/ghacks-user.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22sticky+topic%22). [diffs](https://github.com/ghacksuserjs/ghacks-user.js/issues?q=is%3Aissue+label%3Adiffs) ### 🟧 sitemap
### ![][b] acknowledgments - [Releases](https://github.com/arkenfox/user.js/releases)
Literally thousands of sources, references and suggestions. That said... - [changelogs](https://github.com/arkenfox/user.js/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Achangelog)
- [Wiki](https://github.com/arkenfox/user.js/wiki)
- [stickies](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22sticky+topic%22)
- [diffs](https://github.com/arkenfox/user.js/issues?q=is%3Aissue+label%3Adiffs)
* Martin Brinkmann at [ghacks](https://www.ghacks.net/) <sup>1</sup> ### 🟥 acknowledgments
* The ghacks community and commentators Literally thousands of sources, references and suggestions. Many thanks, and much appreciated.
* [12bytes](https://12bytes.org/articles/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs)
* The 12bytes article now uses this user.js and supplements it with an additional JS hosted at [GitLab](https://gitlab.com/labwrat/Firefox-user.js/tree/master)
<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.
### ![][b] [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[b]: /wikipiki/bullet01.png

View File

@ -1,3 +1,3 @@
theme: jekyll-theme-midnight theme: jekyll-theme-midnight
title: ghacks-user.js title: user.js
description: An ongoing comprehensive user.js template for configuring and hardening Firefox privacy, security and anti-fingerprinting description: An ongoing comprehensive user.js template for configuring and hardening Firefox privacy, security and anti-fingerprinting

View File

@ -3,7 +3,7 @@ TITLE prefs.js cleaner
REM ### prefs.js cleaner for Windows REM ### prefs.js cleaner for Windows
REM ## author: @claustromaniac REM ## author: @claustromaniac
REM ## version: 2.2 REM ## version: 2.3
CD /D "%~dp0" CD /D "%~dp0"
@ -13,7 +13,7 @@ ECHO:
ECHO ######################################## ECHO ########################################
ECHO #### prefs.js cleaner for Windows #### ECHO #### prefs.js cleaner for Windows ####
ECHO #### by claustromaniac #### ECHO #### by claustromaniac ####
ECHO #### v2.2 #### ECHO #### v2.3 ####
ECHO ######################################## ECHO ########################################
ECHO: ECHO:
CALL :message "This script should be run from your Firefox profile directory." CALL :message "This script should be run from your Firefox profile directory."
@ -101,7 +101,7 @@ ECHO add-ons disabled. Then, restart it again normally, and see if the
CALL :message " problems were solved." CALL :message " problems were solved."
ECHO: ECHO:
CALL :message "If you are able to identify the cause of your issues, please bring it up" CALL :message "If you are able to identify the cause of your issues, please bring it up"
ECHO on ghacks-user.js GitHub repository. ECHO on arkenfox user.js GitHub repository.
ECHO: ECHO:
ECHO: ECHO:
PAUSE PAUSE

View File

@ -2,7 +2,7 @@
## prefs.js cleaner for Linux/Mac ## prefs.js cleaner for Linux/Mac
## author: @claustromaniac ## author: @claustromaniac
## version: 1.1 ## version: 1.3
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh ## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
@ -27,7 +27,7 @@ fQuit() {
fFF_check() { 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 webappsstore.sqlite-shm ]; 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"
read -p "Press any key to continue." read -p "Press any key to continue."
done done
@ -58,7 +58,7 @@ echo -e "\n\n"
echo " ╔══════════════════════════╗" echo " ╔══════════════════════════╗"
echo " ║ prefs.js cleaner ║" echo " ║ prefs.js cleaner ║"
echo " ║ by claustromaniac ║" echo " ║ by claustromaniac ║"
echo " ║ v1.1 ║" echo " ║ v1.3 ║"
echo " ╚══════════════════════════╝" echo " ╚══════════════════════════╝"
echo -e "\nThis script should be run from your Firefox profile directory.\n" echo -e "\nThis script should be run from your Firefox profile directory.\n"
echo "It will remove any entries from prefs.js that also exist in user.js." echo "It will remove any entries from prefs.js that also exist in user.js."
@ -90,7 +90,7 @@ select option in Start Help Exit; do
echo "4. Rename or copy your latest backup to prefs.js." echo "4. Rename or copy your latest backup to prefs.js."
echo "5. Run Firefox and see if you notice anything wrong with it." echo "5. Run Firefox and see if you notice anything wrong with it."
echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved." echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved."
echo -e "If you are able to identify the cause of your issues, please bring it up on ghacks-user.js GitHub repository.\n" echo -e "If you are able to identify the cause of your issues, please bring it up on the arkenfox user.js GitHub repository.\n"
;; ;;
Exit) Exit)
fQuit 0 fQuit 0

View File

@ -1,10 +1,12 @@
/*** /***
This will reset the preferences that are under sections 4600 & 4700 in the ghacks user.js Version: up to and including FF/ESR78
up to and including release 60-beta. 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
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/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts] https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
***/ ***/
(function() { (function() {
@ -22,6 +24,10 @@
'dom.w3c_touch_events.enabled', 'dom.w3c_touch_events.enabled',
'media.ondevicechange.enabled', 'media.ondevicechange.enabled',
'webgl.enable-debug-renderer-info', 'webgl.enable-debug-renderer-info',
'dom.w3c_pointer_events.enabled',
'ui.use_standins_for_native_colors',
'ui.systemUsesDarkTheme',
'ui.prefersReducedMotion',
/* section 4700 */ /* section 4700 */
'general.useragent.override', 'general.useragent.override',
'general.buildID.override', 'general.buildID.override',

View File

@ -1,19 +1,81 @@
/*** /***
Version: up to and including FF/ESR78
This will reset the preferences that have been deprecated by Mozilla This will reset the preferences that have been deprecated by Mozilla
and used in the ghacks user.js up to and including release 60-beta and used in the arkenfox user.js
It is in reverse order, so feel free to remove sections that do not apply It is in reverse order, so feel free to remove sections that do not apply
For instructions see: For instructions see:
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts] https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
***/ ***/
(function() { (function() {
let ops = [ let ops = [
/* deprecated */ /* deprecated */
/* ESR52.x users can remove sections 53-60 but it is not /* 78 */
crucial as your user.js will reinstate them */ 'media.autoplay.enabled.user-gestures-needed',
'toolkit.cosmeticAnimations.enabled',
/* 77 */
'browser.urlbar.oneOffSearches',
'browser.tabs.remote.allowLinkedWebInFileUriProcess',
/* 76 */
'extensions.blocklist.url',
/* 74 */
'geo.wifi.uri',
'geo.wifi.logging.enabled',
'privacy.userContext.longPressBehavior',
'webgl.disable-extensions',
/* 72 */
'browser.newtabpage.activity-stream.telemetry.ping.endpoint',
'toolkit.telemetry.hybridContent.enabled',
'dom.indexedDB.enabled',
/* 71 */
'devtools.webide.enabled',
'devtools.webide.autoinstallADBExtension',
'offline-apps.allow_by_default',
/* 69 */
'gfx.downloadable_fonts.woff2.enabled',
'plugins.click_to_play',
'media.autoplay.allow-muted',
/* 68 */
'browser.newtabpage.activity-stream.disableSnippets',
'browser.aboutHomeSnippets.updateUrl',
'lightweightThemes.update.enabled',
'security.csp.experimentalEnabled',
/* F67 */
'dom.event.highrestimestamp.enabled',
'browser.newtabpage.activity-stream.asrouter.userprefs.cfr',
/* 66 */
'browser.chrome.errorReporter.enabled',
'browser.chrome.errorReporter.submitUrl',
'network.allow-experiments',
/* 65 */
'browser.urlbar.autocomplete.enabled',
'browser.fixup.hide_user_pass',
/* 64 */
'browser.onboarding.enabled',
'devtools.webide.autoinstallADBHelper',
'devtools.webide.adbAddonURL',
'security.csp.enable_violation_events',
/* 63 */
'browser.search.countryCode',
'app.update.enabled',
'shield.savant.enabled',
'browser.chrome.favicons',
'media.autoplay.enabled',
'network.cookie.lifetime.days',
'browser.ctrlTab.previews',
/* 62 */
'plugin.state.java',
/* 61 */
'experiments.enabled',
'experiments.manifest.uri',
'experiments.supported',
'experiments.activeExperiment',
'network.jar.block-remote-files',
'network.jar.open-unsafe-types',
/* 60 */ /* 60 */
'browser.newtabpage.directory.source', 'browser.newtabpage.directory.source',
'browser.newtabpage.enhanced', 'browser.newtabpage.enhanced',
@ -22,7 +84,6 @@
'extensions.shield-recipe-client.api_url', 'extensions.shield-recipe-client.api_url',
'browser.newtabpage.activity-stream.enabled', 'browser.newtabpage.activity-stream.enabled',
'dom.workers.enabled', 'dom.workers.enabled',
'view_source.tab',
/* 59 */ /* 59 */
'intl.locale.matchOS', 'intl.locale.matchOS',
'general.useragent.locale', 'general.useragent.locale',
@ -76,8 +137,6 @@
'plugin.scan.WindowsMediaPlayer', 'plugin.scan.WindowsMediaPlayer',
'media.getusermedia.screensharing.allow_on_old_platforms', 'media.getusermedia.screensharing.allow_on_old_platforms',
'dom.beforeAfterKeyboardEvent.enabled', 'dom.beforeAfterKeyboardEvent.enabled',
/* End of ESR52.x section */
/* 52 */ /* 52 */
'network.http.sendSecureXSiteReferrer', 'network.http.sendSecureXSiteReferrer',
'media.gmp-eme-adobe.enabled', 'media.gmp-eme-adobe.enabled',

View File

@ -1,15 +1,15 @@
/*** /***
This will reset the preferences that have been removed completely from the ghacks user.js. This will reset the preferences that have been removed completely from the arkenfox user.js.
Last updated: 16-July-2019 Last updated: 02-Nov-2020
For instructions see: For instructions see:
https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts] https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
***/ ***/
(function() { (function() {
let ops = [ let ops = [
/* removed in ghacks user.js v52-57 */ /* removed in arkenfox user.js v52-57 */
/* 52-alpha */ /* 52-alpha */
'browser.search.reset.enabled', 'browser.search.reset.enabled',
'browser.search.reset.whitelist', 'browser.search.reset.whitelist',
@ -168,14 +168,9 @@
'signon.storeWhenAutocompleteOff', 'signon.storeWhenAutocompleteOff',
'xpinstall.whitelist.required', 'xpinstall.whitelist.required',
/* 67-beta: Blocklist, SB & TP cleanup: these were all inactive */ /* 67-beta: Blocklist, SB & TP cleanup: these were all inactive */
'browser.safebrowsing.downloads.enabled',
'browser.safebrowsing.downloads.remote.block_dangerous', 'browser.safebrowsing.downloads.remote.block_dangerous',
'browser.safebrowsing.downloads.remote.block_dangerous_host', 'browser.safebrowsing.downloads.remote.block_dangerous_host',
'browser.safebrowsing.downloads.remote.block_potentially_unwanted',
'browser.safebrowsing.downloads.remote.block_uncommon',
'browser.safebrowsing.blockedURIs.enabled', 'browser.safebrowsing.blockedURIs.enabled',
'browser.safebrowsing.malware.enabled',
'browser.safebrowsing.phishing.enabled',
'browser.safebrowsing.provider.google.gethashURL', 'browser.safebrowsing.provider.google.gethashURL',
'browser.safebrowsing.provider.google.updateURL', 'browser.safebrowsing.provider.google.updateURL',
'browser.safebrowsing.provider.google4.gethashURL', 'browser.safebrowsing.provider.google4.gethashURL',
@ -204,6 +199,36 @@
'font.name.serif.x-western', 'font.name.serif.x-western',
'layout.css.font-loading-api.enabled', 'layout.css.font-loading-api.enabled',
'toolkit.telemetry.cachedClientID', 'toolkit.telemetry.cachedClientID',
/* 69-beta */
'plugin.sessionPermissionNow.intervalInMinutes',
/* 70-beta */
'browser.cache.disk_cache_ssl',
'browser.sessionhistory.max_entries',
'dom.push.connection.enabled',
'dom.push.serverURL',
'extensions.getAddons.discovery.api_url',
'extensions.htmlaboutaddons.discover.enabled',
'extensions.webservice.discoverURL',
'intl.locale.requested',
'intl.regional_prefs.use_os_locales',
'privacy.usercontext.about_newtab_segregation.enabled',
'security.insecure_connection_icon.pbmode.enabled',
'security.insecure_connection_text.pbmode.enabled',
'webgl.dxgl.enabled',
/* 71-beta */
'media.block-autoplay-until-in-foreground',
'middlemouse.paste',
/* 75-beta */
'browser.search.geoip.url',
'browser.search.region',
/* 79-beta */
'browser.urlbar.usepreloadedtopurls.enabled',
/* 82-beta */
'dom.IntersectionObserver.enabled',
'extensions.screenshots.upload-disabled',
'privacy.partition.network_state',
'security.ssl3.dhe_rsa_aes_128_sha',
'security.ssl3.dhe_rsa_aes_256_sha',
/* 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'
] ]

View File

@ -1,65 +1,11 @@
/*** ghacks-user.js troubleshooter.js v1.5.2 ***/ /*** arkenfox user.js troubleshooter.js v1.6.2 ***/
(function() { (function() {
if("undefined" === typeof(Services)) { if ("undefined" === typeof(Services)) return alert('about:config needs to be the active tab!');
alert("about:config needs to be the active tab!");
return;
}
function getMyList(arr) { const aPREFS = [
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 */ /* known culprits */
'network.cookie.cookieBehavior', 'network.cookie.cookieBehavior',
@ -71,7 +17,6 @@
/* Storage + Cache */ /* Storage + Cache */
'browser.cache.offline.enable', 'browser.cache.offline.enable',
'dom.indexedDB.enabled',
'dom.storage.enabled', 'dom.storage.enabled',
'browser.storageManager.enabled', 'browser.storageManager.enabled',
'dom.storageManager.enabled', 'dom.storageManager.enabled',
@ -114,8 +59,8 @@
/* 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+
/* Forms */ /* Forms */
'browser.formfill.enable', 'browser.formfill.enable',
@ -156,60 +101,113 @@
'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'
] ]
// any runtime-set pref that everyone will have and that can be safely reset
const oFILLER = { type: 64, name: 'app.update.lastUpdateTime.browser-cleanup-thumbnails', value: 1580000000 };
// reset prefs that set the same value as FFs default value function getMyList(arr) {
let aTEMP = getMyList(ops); const aRet = [];
myreset(aTEMP); for (const sPname of arr) {
reapply(aTEMP); if (Services.prefs.prefHasUserValue(sPname)) {
const ptype = Services.prefs.getPrefType(sPname);
switch (ptype) {
case 32: // string (see https://dxr.mozilla.org/mozilla-central/source/modules/libpref/nsIPrefBranch.idl#31)
aRet.push({'type':ptype,'name':sPname,'value':Services.prefs.getCharPref(sPname)});
break;
case 64: // int
aRet.push({'type':ptype,'name':sPname,'value':Services.prefs.getIntPref(sPname)});
break;
case 128: // boolean
aRet.push({'type':ptype,'name':sPname,'value':Services.prefs.getBoolPref(sPname)});
break;
default:
console.log("error detecting pref-type for '"+sPname+"' !");
}
}
}
return aRet;
}
const aBACKUP = getMyList(ops); function reapply(arr) {
//console.log(aBACKUP.length, "user-set prefs from our list detected and their values stored."); for (const oPref of arr) {
switch (oPref.type) {
case 32: // string
Services.prefs.setCharPref(oPref.name, oPref.value);
break;
case 64: // int
Services.prefs.setIntPref(oPref.name, oPref.value);
break;
case 128: // boolean
Services.prefs.setBoolPref(oPref.name, oPref.value);
break;
default:
console.log("error re-appyling value for '"+oPref.name+"' !"); // should never happen
}
}
}
let myArr = aBACKUP; function myreset(arr) {
let found = false; for (const oPref of arr) Services.prefs.clearUserPref(oPref.name);
let aDbg = []; }
focus();
myreset(aBACKUP); // reset all detected prefs function resetAllMatchingDefault(arr) {
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.")) { const aTmp = getMyList(arr);
aDbg = myArr; myreset(aTmp);
reapply(aBACKUP); reapply(aTmp);
myreset(myArr.slice(0, parseInt(myArr.length/2))); }
while (myArr.length >= 2) {
function _main(aALL) {
const _h = (arr) => Math.ceil(arr.length/2);
let aTmp = aALL, aDbg = aALL;
reapply(aALL);
myreset(aTmp.slice(0, _h(aTmp)));
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.")) {
myArr = myArr.slice(parseInt(myArr.length/2)); aTmp = aTmp.slice(_h(aTmp));
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 { } else {
myArr = myArr.slice(0, parseInt(myArr.length/2)); aTmp = aTmp.slice(0, _h(aTmp));
aDbg = myArr; aDbg = aTmp; // update narrowed down list
if (myArr.length == 1) { found = true; break; } if (aDbg.length == 1) break;
} }
reapply(aBACKUP); reapply(aALL);
myreset(myArr.slice(0, parseInt(myArr.length/2))); // reset half of the remaining prefs myreset(aTmp.slice(0, _h(aTmp))); // reset half of the remaining prefs
} }
reapply(aBACKUP); reapply(aALL);
if (aDbg.length == 1) return alert("narrowed it down to:\n\n"+aDbg[0].name+"\n");
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";
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";
msg += "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]);
} else if (aDbg.length > 10 && confirm("Narrowed it down to "+aDbg.length+" prefs. Try narrowing it down further?")) {
return _main(aDbg.reverse());
} }
else {
reapply(aBACKUP); 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:");
for (const oPref of aDbg) console.log(oPref.name);
}
resetAllMatchingDefault(aPREFS); // reset user-set prefs matching FFs default value
const aBAK = getMyList(aPREFS);
//console.log(aBAK.length, "user-set prefs from our list detected and their values stored.");
focus();
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.")) {
reapply(aBAK);
return; return;
} }
if (found) { _main(aBAK);
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);
}
}
})(); })();

View File

@ -1,12 +1,12 @@
@ECHO OFF & SETLOCAL EnableDelayedExpansion @ECHO OFF & SETLOCAL EnableDelayedExpansion
TITLE ghacks user.js updater TITLE arkenfox user.js updater
REM ## ghacks-user.js updater for Windows REM ## arkenfox user.js updater for Windows
REM ## author: @claustromaniac REM ## author: @claustromaniac
REM ## version: 4.10 REM ## version: 4.12
REM ## instructions: https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts REM ## instructions: https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts
SET v=4.10 SET v=4.12
VERIFY ON VERIFY ON
CD /D "%~dp0" CD /D "%~dp0"
@ -52,7 +52,7 @@ IF DEFINED _updateb (
REM Uncomment the next line and comment out the PowerShell call for testing. REM Uncomment the next line and comment out the PowerShell call for testing.
REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul REM COPY /B /Y "!_myname!.bat" "[updated]!_myname!.bat" >nul
( (
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.bat', '[updated]!_myname!.bat')" PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/updater.bat', '[updated]!_myname!.bat')"
) >nul 2>&1 ) >nul 2>&1
IF EXIST "[updated]!_myname!.bat" ( IF EXIST "[updated]!_myname!.bat" (
START /min CMD /C "[updated]!_myname!.bat" !_myparams! START /min CMD /C "[updated]!_myname!.bat" !_myparams!
@ -100,7 +100,10 @@ IF NOT EXIST user.js (
) )
:exitloop :exitloop
IF NOT "!_name!"=="" ( IF NOT "!_name!"=="" (
IF /I NOT "!_name!"=="!_name:ghacks=!" ( SET "_tempvar="
IF /I NOT "!_name!"=="!_name:ghacks=!" SET _tempvar=1
IF /I NOT "!_name!"=="!_name:arkenfox=!" SET _tempvar=1
IF !_tempvar! EQU 1 (
CALL :message "!_name! !_version:~2!,!_date!" CALL :message "!_name! !_version:~2!,!_date!"
) ELSE (CALL :message "Current user.js version not recognised.") ) ELSE (CALL :message "Current user.js version not recognised.")
) ELSE (CALL :message "Current user.js version not recognised.") ) ELSE (CALL :message "Current user.js version not recognised.")
@ -108,7 +111,7 @@ IF NOT EXIST user.js (
ECHO: ECHO:
IF NOT DEFINED _ua ( IF NOT DEFINED _ua (
CALL :message "This batch should be run from your Firefox profile directory." CALL :message "This batch should be run from your Firefox profile directory."
ECHO: It will download the latest version of ghacks user.js from github and then ECHO: It will download the latest version of arkenfox user.js from github and then
CALL :message "append any of your own changes from user-overrides.js to it." CALL :message "append any of your own changes from user-overrides.js to it."
CALL :message "Visit the wiki for more detailed information." CALL :message "Visit the wiki for more detailed information."
ECHO: ECHO:
@ -130,7 +133,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..."
( (
PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js', 'user.js.new')" PowerShell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/arkenfox/user.js/master/user.js', 'user.js.new')"
) >nul 2>&1 ) >nul 2>&1
IF EXIST user.js.new ( IF EXIST user.js.new (
IF DEFINED _rfpalts ( IF DEFINED _rfpalts (

View File

@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
## ghacks-user.js updater for macOS and Linux ## arkenfox user.js updater for macOS and Linux
## version: 2.5 ## version: 2.8
## Author: Pat Johnson (@overdodactyl) ## Author: Pat Johnson (@overdodactyl)
## Additional contributors: @earthlng, @ema-pe, @claustromaniac ## Additional contributors: @earthlng, @ema-pe, @claustromaniac
@ -11,7 +11,7 @@
readonly CURRDIR=$(pwd) readonly CURRDIR=$(pwd)
sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null) sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi [ -z "$sfp" ] && sfp=${BASH_SOURCE[0]}
readonly SCRIPT_DIR=$(dirname "${sfp}") readonly SCRIPT_DIR=$(dirname "${sfp}")
@ -42,27 +42,27 @@ ESR=false
# Download method priority: curl -> wget # Download method priority: curl -> wget
DOWNLOAD_METHOD='' DOWNLOAD_METHOD=''
if [[ $(command -v 'curl') ]]; then if [[ $(command -v 'curl') ]]; then
DOWNLOAD_METHOD='curl' DOWNLOAD_METHOD='curl --max-redirs 3 -so'
elif [[ $(command -v 'wget') ]]; then elif [[ $(command -v 'wget') ]]; then
DOWNLOAD_METHOD='wget' DOWNLOAD_METHOD='wget --max-redirect 3 --quiet -O'
else else
echo -e "${RED}This script requires curl or wget.\nProcess aborted${NC}" echo -e "${RED}This script requires curl or wget.\nProcess aborted${NC}"
exit 0 exit 1
fi fi
show_banner () { show_banner () {
echo -e "${BBLUE}\n" echo -e "${BBLUE}
echo ' ############################################################################' ############################################################################
echo ' #### ####' #### ####
echo ' #### ghacks user.js ####' #### arkenfox user.js ####
echo ' #### Hardening the Privacy and Security Settings of Firefox ####' #### Hardening the Privacy and Security Settings of Firefox ####
echo ' #### Maintained by @Thorin-Oakenpants and @earthlng ####' #### Maintained by @Thorin-Oakenpants and @earthlng ####
echo ' #### Updater for macOS and Linux by @overdodactyl ####' #### Updater for macOS and Linux by @overdodactyl ####
echo ' #### ####' #### ####
echo ' ############################################################################' ############################################################################"
echo -e "${NC}\n" echo -e "${NC}\n"
echo -e "Documentation for this script is available here: ${CYAN}https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts${NC}\n" echo -e "Documentation for this script is available here: ${CYAN}https://github.com/arkenfox/user.js/wiki/3.3-Updater-Scripts${NC}\n"
} }
######################### #########################
@ -70,66 +70,50 @@ show_banner () {
######################### #########################
usage() { usage() {
echo -e "${BLUE}\nUsage: $0 [-h] [-p PROFILE] [-u] [-d] [-s] [-n] [-b] [-c] [-v] [-r] [-e] [-o OVERRIDE]\n${NC}" 1>&2 # Echo usage string to standard error echo
echo 'Optional Arguments:' echo -e "${BLUE}Usage: $0 [-bcdehlnrsuv] [-p PROFILE] [-o OVERRIDE]${NC}" 1>&2 # Echo usage string to standard error
echo -e "\t-h,\t\t Show this help message and exit." echo -e "
echo -e "\t-p PROFILE,\t Path to your Firefox profile (if different than the dir of this script)" Optional Arguments:
echo -e "\t\t\t IMPORTANT: if the path include spaces, wrap the entire argument in quotes." -h Show this help message and exit.
echo -e "\t-l, \t\t Choose your Firefox profile from a list" -p PROFILE Path to your Firefox profile (if different than the dir of this script)
echo -e "\t-u,\t\t Update updater.sh and execute silently. Do not seek confirmation." IMPORTANT: If the path contains spaces, wrap the entire argument in quotes.
echo -e "\t-d,\t\t Do not look for updates to updater.sh." -l Choose your Firefox profile from a list
echo -e "\t-s,\t\t Silently update user.js. Do not seek confirmation." -u Update updater.sh and execute silently. Do not seek confirmation.
echo -e "\t-b,\t\t Only keep one backup of each file." -d Do not look for updates to updater.sh.
echo -e "\t-c,\t\t Create a diff file comparing old and new user.js within userjs_diffs. " -s Silently update user.js. Do not seek confirmation.
echo -e "\t-o OVERRIDE,\t Filename or path to overrides file (if different than user-overrides.js)." -b Only keep one backup of each file.
echo -e "\t\t\t If used with -p, paths should be relative to PROFILE or absolute paths" -c Create a diff file comparing old and new user.js within userjs_diffs.
echo -e "\t\t\t If given a directory, all files inside will be appended recursively." -o OVERRIDE Filename or path to overrides file (if different than user-overrides.js).
echo -e "\t\t\t You can pass multiple files or directories by passing a comma separated list." If used with -p, paths should be relative to PROFILE or absolute paths
echo -e "\t\t\t\t Note: If a directory is given, only files inside ending in the extension .js are appended" If given a directory, all files inside will be appended recursively.
echo -e "\t\t\t\t IMPORTANT: do not add spaces between files/paths. Ex: -o file1.js,file2.js,dir1" You can pass multiple files or directories by passing a comma separated list.
echo -e "\t\t\t\t IMPORTANT: if any files/paths include spaces, wrap the entire argument in quotes." Note: If a directory is given, only files inside ending in the extension .js are appended
echo -e "\t\t\t\t\t Ex: -o \"override folder\" " IMPORTANT: Do not add spaces between files/paths. Ex: -o file1.js,file2.js,dir1
echo -e "\t-n,\t\t Do not append any overrides, even if user-overrides.js exists." IMPORTANT: If any file/path contains spaces, wrap the entire argument in quotes.
echo -e "\t-v,\t\t Open the resulting user.js file." Ex: -o \"override folder\"
echo -e "\t-r,\t\t Only download user.js to a temporary file and open it." -n Do not append any overrides, even if user-overrides.js exists.
echo -e "\t-e,\t\t Activate ESR related preferences." -v Open the resulting user.js file.
echo -e -r Only download user.js to a temporary file and open it.
echo 'Deprecated Arguments (they still work for now):' -e Activate ESR related preferences."
echo -e "\t-donotupdate,\t Use instead -d" echo
echo -e "\t-update,\t Use instead -u"
echo -e
exit 1 exit 1
} }
legacy_argument () {
echo -e "${ORANGE}\nWarning: command line arguments have changed."
echo -e "$1 has been deprecated and may not work in the future.\n"
echo -e "Please view the new options using the -h argument.${NC}"
}
######################### #########################
# File Handling # # File Handling #
######################### #########################
# Download files # Download files
download_file () { download_file () { # expects URL as argument ($1)
declare -r url=$1
declare -r tf=$(mktemp) declare -r tf=$(mktemp)
local dlcmd=''
if [ $DOWNLOAD_METHOD = 'curl' ]; then $DOWNLOAD_METHOD "${tf}" "$1" && echo "$tf" || echo '' # return the temp-filename or empty string on error
dlcmd="curl -o $tf"
else
dlcmd="wget -O $tf"
fi
$dlcmd "${url}" &>/dev/null && echo "$tf" || echo '' # return the temp-filename (or empty string on error)
} }
open_file () { # expects one argument: file_path open_file () { # expects one argument: file_path
if [ "$(uname)" == 'Darwin' ]; then if [ "$(uname)" == 'Darwin' ]; then
open "$1" open "$1"
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then elif [ "$(uname -s | cut -c -5)" == "Linux" ]; then
xdg-open "$1" xdg-open "$1"
else else
echo -e "${RED}Error: Sorry, opening files is not supported for your OS.${NC}" echo -e "${RED}Error: Sorry, opening files is not supported for your OS.${NC}"
@ -204,23 +188,22 @@ get_updater_version () {
# Update updater.sh # Update updater.sh
# Default: Check for update, if available, ask user if they want to execute it # Default: Check for update, if available, ask user if they want to execute it
# Args: # Args:
# -donotupdate: 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
# -update: 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 if [ $UPDATE = 'no' ]; then
return 0 # User signified not to check for updates return 0 # User signified not to check for updates
fi fi
declare -r tmpfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.sh') declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh')"
[ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then
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
echo -e "\n\n" echo -e "\n\n"
if [[ $REPLY =~ ^[Nn]$ ]]; then [[ $REPLY =~ ^[Nn]$ ]] && return 0 # Update available, but user chooses not to update
return 0 # Update available, but user chooses not to update
fi
fi fi
else else
return 0 # No update available return 0 # No update available
@ -228,7 +211,7 @@ update_updater () {
mv "${tmpfile}" "${SCRIPT_DIR}/updater.sh" mv "${tmpfile}" "${SCRIPT_DIR}/updater.sh"
chmod u+x "${SCRIPT_DIR}/updater.sh" chmod u+x "${SCRIPT_DIR}/updater.sh"
"${SCRIPT_DIR}/updater.sh" "$@" -d "${SCRIPT_DIR}/updater.sh" "$@" -d
exit 1 exit 0
} }
@ -238,11 +221,7 @@ update_updater () {
# Returns version number of a user.js file # Returns version number of a user.js file
get_userjs_version () { get_userjs_version () {
if [ -e $1 ]; then [ -e $1 ] && echo "$(sed -n '4p' "$1")" || echo "Not detected."
echo "$(sed -n '4p' "$1")"
else
echo "Not detected."
fi
} }
add_override () { add_override () {
@ -252,7 +231,7 @@ add_override () {
cat "$input" >> user.js cat "$input" >> user.js
echo -e "Status: ${GREEN}Override file appended:${NC} ${input}" echo -e "Status: ${GREEN}Override file appended:${NC} ${input}"
elif [ -d "$input" ]; then elif [ -d "$input" ]; then
FSAVEIFS=$IFS SAVEIFS=$IFS
IFS=$'\n\b' # Set IFS IFS=$'\n\b' # Set IFS
FILES="${input}"/*.js FILES="${input}"/*.js
for f in $FILES for f in $FILES
@ -271,12 +250,13 @@ remove_comments () { # expects 2 arguments: from-file and to-file
# Applies latest version of user.js and any custom overrides # Applies latest version of user.js and any custom overrides
update_userjs () { update_userjs () {
declare -r newfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js') declare -r newfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/user.js')"
[ -z "${newfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && return 1 # check if download failed
echo 'Please observe the following information:' echo -e "Please observe the following information:
echo -e "\tFirefox profile: ${ORANGE}$(pwd)${NC}" Firefox profile: ${ORANGE}$(pwd)${NC}
echo -e "\tAvailable online: ${ORANGE}$(get_userjs_version $newfile)${NC}" Available online: ${ORANGE}$(get_userjs_version $newfile)${NC}
echo -e "\tCurrently using: ${ORANGE}$(get_userjs_version user.js)\n${NC}\n" Currently using: ${ORANGE}$(get_userjs_version user.js)${NC}\n\n"
if [ $CONFIRM = 'yes' ]; then if [ $CONFIRM = 'yes' ]; then
echo -e "This script will update to the latest user.js file and append any custom configurations from user-overrides.js. ${RED}Continue Y/N? ${NC}" echo -e "This script will update to the latest user.js file and append any custom configurations from user-overrides.js. ${RED}Continue Y/N? ${NC}"
@ -298,9 +278,7 @@ update_userjs () {
# backup user.js # backup user.js
mkdir -p userjs_backups mkdir -p userjs_backups
local bakname="userjs_backups/user.js.backup.$(date +"%Y-%m-%d_%H%M")" local bakname="userjs_backups/user.js.backup.$(date +"%Y-%m-%d_%H%M")"
if [ $BACKUP = 'single' ]; then [ $BACKUP = 'single' ] && bakname='userjs_backups/user.js.backup'
bakname='userjs_backups/user.js.backup'
fi
cp user.js "$bakname" &>/dev/null cp user.js "$bakname" &>/dev/null
mv "${newfile}" user.js mv "${newfile}" user.js
@ -313,8 +291,10 @@ update_userjs () {
# apply overrides # apply overrides
if [ "$SKIPOVERRIDE" = false ]; then if [ "$SKIPOVERRIDE" = false ]; then
while IFS=',' read -ra FILE; do while IFS=',' read -ra FILES; do
for FILE in "${FILES[@]}"; do
add_override "$FILE" add_override "$FILE"
done
done <<< "$OVERRIDE" done <<< "$OVERRIDE"
fi fi
@ -334,14 +314,12 @@ update_userjs () {
echo -e "Status: ${GREEN}A diff file was created:${NC} ${PWD}/${diffname}" echo -e "Status: ${GREEN}A diff file was created:${NC} ${PWD}/${diffname}"
else else
echo -e "Warning: ${ORANGE}Your new user.js file appears to be identical. No diff file was created.${NC}" echo -e "Warning: ${ORANGE}Your new user.js file appears to be identical. No diff file was created.${NC}"
if [ $BACKUP = 'multiple' ]; then [ $BACKUP = 'multiple' ] && rm $bakname &>/dev/null
rm $bakname &>/dev/null
fi
fi fi
rm $past_nocomments $current_nocomments $pastuserjs &>/dev/null rm $past_nocomments $current_nocomments $pastuserjs &>/dev/null
fi fi
if [ "$VIEW" = true ]; then open_file "${PWD}/user.js"; fi [ "$VIEW" = true ] && open_file "${PWD}/user.js"
} }
######################### #########################
@ -349,16 +327,9 @@ update_userjs () {
######################### #########################
if [ $# != 0 ]; then if [ $# != 0 ]; then
readonly legacy_lc=$(echo $1 | tr '[A-Z]' '[a-z]')
# Display usage if first argument is -help or --help # Display usage if first argument is -help or --help
if [ $1 = '--help' ] || [ $1 = '-help' ]; then if [ $1 = '--help' ] || [ $1 = '-help' ]; then
usage usage
elif [ $legacy_lc = '-donotupdate' ]; then
UPDATE='no'
legacy_argument $1
elif [ $legacy_lc = '-update' ]; then
UPDATE='yes'
legacy_argument $1
else else
while getopts ":hp:ludsno:bcvre" opt; do while getopts ":hp:ludsno:bcvre" opt; do
case $opt in case $opt in
@ -399,11 +370,12 @@ if [ $# != 0 ]; then
ESR=true ESR=true
;; ;;
r) r)
tfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js') tfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/user.js')"
[ -z "${tfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && exit 1 # check if download failed
mv $tfile "${tfile}.js" mv $tfile "${tfile}.js"
echo -e "${ORANGE}Warning: user.js was saved to temporary file ${tfile}.js${NC}" echo -e "${ORANGE}Warning: user.js was saved to temporary file ${tfile}.js${NC}"
open_file "${tfile}.js" open_file "${tfile}.js"
exit 1 exit 0
;; ;;
\?) \?)
echo -e "${RED}\n Error! Invalid option: -$OPTARG${NC}" >&2 echo -e "${RED}\n Error! Invalid option: -$OPTARG${NC}" >&2
@ -411,7 +383,7 @@ if [ $# != 0 ]; then
;; ;;
:) :)
echo -e "${RED}Error! Option -$OPTARG requires an argument.${NC}" >&2 echo -e "${RED}Error! Option -$OPTARG requires an argument.${NC}" >&2
exit 1 exit 2
;; ;;
esac esac
done done

1140
user.js

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB