Compare commits

...

19 Commits

Author SHA1 Message Date
bb2325cad2 2699: fixup 1333641 description
bug 1333641 does not disable the WebSpeech API
2017-09-11 17:03:52 +12:00
9a0edfe887 0330: another ping bites the dust 2017-09-10 01:43:02 +12:00
0277ba8102 2699: more UA spoofing stuff
move along people, nothing to see: added 1396468 which fixes a leak, it will probably be pushed to beta (FF56)
2017-09-09 16:49:26 +12:00
b907dd7e83 new terminology
https://wiki.mozilla.org/Add-ons/Terminology . The only "Web Extension" or "WebExtension" or "Add-on" references left are due to UI wording or links or pref names
2017-09-09 16:18:16 +12:00
83bb51b988 Update README.md 2017-09-09 15:35:14 +12:00
f3c87367fb 2699: spoof FF version changes 2017-09-07 14:46:31 +12:00
ffc8280c0c 9999: 2502 cleanup 2017-09-02 19:07:28 +02:00
346b945ee3 2699: limit MediaError.message 2017-09-03 00:44:23 +12:00
b86f625b02 URL changes #224 Part3
check: 49 items as per issue comment
2017-08-31 17:27:04 +12:00
431b55f47f 2404: indexedDB=>inactive, required for uBo 1.14.0+ #226
Not just uBo but many web exts are using indexedDB for storage. Users will have to deal with indexedDB persistent storage via other means.
2017-08-31 16:51:38 +12:00
4120419cd5 URL changes ##224 Part2
[Ch-ch-ch-ch-changes](https://en.wikipedia.org/wiki/Changes_(David_Bowie_song))
2017-08-30 18:17:06 +12:00
9f30adee64 URL changes #224
Thanks Theemim. Double check, so far: 27 changes, 27 items checked in Theemim's list
2017-08-30 17:07:43 +12:00
a19a3d2a35 worlds tiniest typo } -> ]
Sidenote: Not sure if this is true anymore. Since I ditched CTR and I have the hamburger menu back, it loves to annoy me with a doorhanger ALL THE F**kng TIME - certainly not 8 days grace. Seems more like 12 hours (but I swear it also comes up soon after a restart as well)
2017-08-29 17:27:18 +12:00
b6533689cf 2699: add Animation API, description fixups #222 2017-08-28 07:20:45 +12:00
ae83b83590 0517: formautofill.creditCards.enabled 2017-08-27 15:46:12 +12:00
4977d01fec 0517: add .creditCards.enabled;false (FF56+)
it's most likely covered by disabling extensions.formautofill but is nice to know for people who want to enable form-autofill but may want to disable creditCards autofill
2017-08-26 16:27:48 +02:00
eab3a0b714 2699: enable fingerprinting resistance for WebGL 2017-08-25 16:11:03 +12:00
dd25413c98 all-round -> all-around 2017-08-24 16:00:05 +02:00
3d109664bb couple of [SETTING] updates #212 2017-08-19 18:12:08 +12:00
2 changed files with 119 additions and 109 deletions

View File

@ -2,7 +2,7 @@
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/ghacksuserjs/ghacks-user.js/wiki/1.1-Overview) wiki page.
### ![](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/wikipiki/bullet01.png) ghacks user.js ### ![](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/wikipiki/bullet01.png) ghacks user.js
The [ghacks user.js](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/user.js) is a template, which, as provided, aims (![](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/wikipiki/exclamation.png) with [add-ons](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Firefox-Add-ons) <sup>1</sup> ) to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen). The [ghacks user.js](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/user.js) is a template, which, as provided, aims (![](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/wikipiki/exclamation.png) with [extensions](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Extensions) <sup>1</sup> ) to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
We aim to INFORM and give you CHOICES. No one size fits all, so customize it! And not all sites have the same requirements, so use [profiles](https://github.com/ghacksuserjs/ghacks-user.js/wiki/2.3-Concurrent-Profiles) with custom versions. We won't set you wrong. We aim to INFORM and give you CHOICES. No one size fits all, so customize it! And not all sites have the same requirements, so use [profiles](https://github.com/ghacksuserjs/ghacks-user.js/wiki/2.3-Concurrent-Profiles) with custom versions. We won't set you wrong.
@ -16,7 +16,7 @@ INFORMATION IS POWER. So you can make informed decisions to better protect yours
* Current and up-to-date with stable (including [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/search?q=label%3Achangelog&type=Issues&utf8=%E2%9C%93)) * Current and up-to-date with stable (including [changelogs](https://github.com/ghacksuserjs/ghacks-user.js/search?q=label%3Achangelog&type=Issues&utf8=%E2%9C%93))
* Detailed (preference versioning, hidden preference information, explanations, and more) * Detailed (preference versioning, hidden preference information, explanations, and more)
* Easy to use and discuss (sections, sub-sections, numbering) * Easy to use and discuss (sections, sub-sections, numbering)
* Helpful (including a [wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki) with features such as [add-ons](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Firefox-Add-ons), [user scripts](https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-User-Scripts), [references](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-D:-References) and more) * Helpful (including a [wiki](https://github.com/ghacksuserjs/ghacks-user.js/wiki) with features such as [extensions](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Extensions), [user scripts](https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.1-User-Scripts), [references](https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-D:-References) and more)
* Innovative (formatting, special tags, and future plans such as branches) * Innovative (formatting, special tags, and future plans such as branches)
### ![](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/wikipiki/bullet01.png) usage ### ![](https://github.com/ghacksuserjs/ghacks-user.js/blob/master/wikipiki/bullet01.png) usage
@ -26,7 +26,7 @@ Everyone, experts included, should at least read the [implementation](https://gi
Literally thousands of sources, references and suggestions. That said... Literally thousands of sources, references and suggestions. That said...
* Martin Brinkmann at [ghacks](https://www.ghacks.net/) <sup>2</sup> * Martin Brinkmann at [ghacks](https://www.ghacks.net/) <sup>2</sup>
* 100% genuine super-nice all-round good guy * 100% genuine super-nice all-around good guy
* The ghacks community and commentators * The ghacks community and commentators
* Special mentions to [earthlng](https://github.com/earthlng), Tom Hawack, Just me, Conker, Rockin Jerry, Ainatar, Parker Lewis * Special mentions to [earthlng](https://github.com/earthlng), Tom Hawack, Just me, Conker, Rockin Jerry, Ainatar, Parker Lewis
* [12bytes](http://12bytes.org/articles/tech/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs) * [12bytes](http://12bytes.org/articles/tech/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs)

222
user.js
View File

@ -17,7 +17,7 @@
2. READ this 2. READ this
* https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation * https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation
3. If you skipped steps 1 and 2 above (shame on you), then here is the absolute minimum 3. If you skipped steps 1 and 2 above (shame on you), then here is the absolute minimum
* Auto-installing updates for Firefox and extensions/add-ons are disabled (section 0302's) * Auto-installing updates for Firefox and extensions are disabled (section 0302's)
* Some user data is erased on close (section 2800), namely history (browsing, form, download) * Some user data is erased on close (section 2800), namely history (browsing, form, download)
* Cookies (and thus logins) are denied by default (2701). Use site exceptions or an extension * Cookies (and thus logins) are denied by default (2701). Use site exceptions or an extension
* Site breakage WILL happen * Site breakage WILL happen
@ -104,16 +104,16 @@ user_pref("javascript.use_us_english_locale", true); // (hidden pref)
It is still important to do updates for security reasons, please do so manually. ***/ It is still important to do updates for security reasons, please do so manually. ***/
user_pref("ghacks_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!"); user_pref("ghacks_user.js.parrot", "0300 syntax error: the parrot's not pinin' for the fjords!");
/* 0301a: disable auto-update checks for Firefox /* 0301a: disable auto-update checks for Firefox
* [NOTE} Firefox currently checks every 12 hrs and allows 8 day notification dismissal * [NOTE] Firefox currently checks every 12 hrs and allows 8 day notification dismissal
* [SETTING] Options>Advanced>Update>Never check for updates ***/ * [SETTING] Options>Advanced>Update>Never check for updates ***/
// user_pref("app.update.enabled", false); // user_pref("app.update.enabled", false);
/* 0301b: disable auto-update checks for add-ons ***/ /* 0301b: disable auto-update checks for extensions ***/
// user_pref("extensions.update.enabled", false); // user_pref("extensions.update.enabled", false);
/* 0302a: disable auto update installing for Firefox (after the check in 0301a) /* 0302a: disable auto update installing for Firefox (after the check in 0301a)
* [SETTING] Options>Advanced>Update>Check for updates but let you choose whether to install them * [SETTING] Options>Advanced>Update>Check for updates but let you choose whether to install them
* [NOTE] The UI checkbox also controls the behavior for checking, the pref only controls auto installing ***/ * [NOTE] The UI checkbox also controls the behavior for checking, the pref only controls auto installing ***/
user_pref("app.update.auto", false); user_pref("app.update.auto", false);
/* 0302b: disable auto update installing for add-ons (after the check in 0301b) /* 0302b: disable auto update installing for extensions (after the check in 0301b)
* [SETTING] about:addons>Extensions>Settings[gear-icon]>Update Addons Automatically (toggle) ***/ * [SETTING] about:addons>Extensions>Settings[gear-icon]>Update Addons Automatically (toggle) ***/
user_pref("extensions.update.autoUpdateDefault", false); user_pref("extensions.update.autoUpdateDefault", false);
/* 0303: disable background update service [WINDOWS] /* 0303: disable background update service [WINDOWS]
@ -124,7 +124,7 @@ user_pref("app.update.staging.enabled", false);
/* 0305: enforce update information is displayed /* 0305: enforce update information is displayed
* This is the update available, downloaded, error and success information ***/ * This is the update available, downloaded, error and success information ***/
user_pref("app.update.silent", false); user_pref("app.update.silent", false);
/* 0306: disable add-on metadata updating /* 0306: disable extension metadata updating
* sends daily pings to Mozilla about extensions and recent startups ***/ * sends daily pings to Mozilla about extensions and recent startups ***/
user_pref("extensions.getAddons.cache.enabled", false); user_pref("extensions.getAddons.cache.enabled", false);
/* 0307: disable auto updating of personas (themes) ***/ /* 0307: disable auto updating of personas (themes) ***/
@ -144,7 +144,7 @@ user_pref("extensions.webservice.discoverURL", "http://127.0.0.1");
* IF unified=false then .enabled controls the telemetry module * IF unified=false then .enabled controls the telemetry module
* IF unified=true then .enabled ONLY controls whether to record extended data * IF unified=true then .enabled ONLY controls whether to record extended data
* so make sure to have both set as false * so make sure to have both set as false
* [1] https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html ***/ * [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html ***/
user_pref("toolkit.telemetry.unified", false); user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.enabled", false); user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.server", ""); user_pref("toolkit.telemetry.server", "");
@ -152,6 +152,7 @@ user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.cachedClientID", ""); user_pref("toolkit.telemetry.cachedClientID", "");
user_pref("toolkit.telemetry.newProfilePing.enabled", false); // (FF55+) user_pref("toolkit.telemetry.newProfilePing.enabled", false); // (FF55+)
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // (FF55+) user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // (FF55+)
user_pref("toolkit.telemetry.updatePing.enabled", false); // (FF56+)
/* 0333a: disable health report ***/ /* 0333a: disable health report ***/
user_pref("datareporting.healthreport.uploadEnabled", false); user_pref("datareporting.healthreport.uploadEnabled", false);
/* 0333b: disable about:healthreport page (which connects to Mozilla for locale/css+js+json) /* 0333b: disable about:healthreport page (which connects to Mozilla for locale/css+js+json)
@ -179,7 +180,7 @@ user_pref("browser.newtabpage.introShown", true);
* [1] https://wiki.mozilla.org/Firefox/Projects/Firefox_Start/Snippet_Service ***/ * [1] https://wiki.mozilla.org/Firefox/Projects/Firefox_Start/Snippet_Service ***/
user_pref("browser.aboutHomeSnippets.updateUrl", "https://127.0.0.1"); user_pref("browser.aboutHomeSnippets.updateUrl", "https://127.0.0.1");
/* 0374: disable "social" integration /* 0374: disable "social" integration
* [1] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Social_API ***/ * [1] https://developer.mozilla.org/docs/Mozilla/Projects/Social_API ***/
user_pref("social.whitelist", ""); user_pref("social.whitelist", "");
user_pref("social.toast-notifications.enabled", false); user_pref("social.toast-notifications.enabled", false);
user_pref("social.shareDirectory", ""); user_pref("social.shareDirectory", "");
@ -202,14 +203,14 @@ user_pref("ghacks_user.js.parrot", "0400 syntax error: the parrot's passed on!")
/** BLOCKLISTS ***/ /** BLOCKLISTS ***/
/* 0401: enable Firefox blocklist, but sanitize blocklist url /* 0401: enable Firefox blocklist, but sanitize blocklist url
* [NOTE] It includes updates for "revoked certificates" * [NOTE] It includes updates for "revoked certificates"
* [1] https://blog.mozilla.org/security/2015/03/03/revoking-intermediate-certificates-introducing-onecrl * [1] https://blog.mozilla.org/security/2015/03/03/revoking-intermediate-certificates-introducing-onecrl/
* [2] https://trac.torproject.org/projects/tor/ticket/16931 ***/ * [2] https://trac.torproject.org/projects/tor/ticket/16931 ***/
user_pref("extensions.blocklist.enabled", true); user_pref("extensions.blocklist.enabled", true);
user_pref("extensions.blocklist.url", "https://blocklists.settings.services.mozilla.com/v1/blocklist/3/%APP_ID%/%APP_VERSION%/"); user_pref("extensions.blocklist.url", "https://blocklists.settings.services.mozilla.com/v1/blocklist/3/%APP_ID%/%APP_VERSION%/");
/* 0402: enable Kinto blocklist updates (FF50+) /* 0402: enable Kinto blocklist updates (FF50+)
* What is Kinto?: https://wiki.mozilla.org/Firefox/Kinto#Specifications * What is Kinto?: https://wiki.mozilla.org/Firefox/Kinto#Specifications
* As Firefox transitions to Kinto, the blocklists have been broken down into entries for certs to be * As Firefox transitions to Kinto, the blocklists have been broken down into entries for certs to be
* revoked, add-ons and plugins to be disabled, and gfx environments that cause problems or crashes ***/ * revoked, extensions and plugins to be disabled, and gfx environments that cause problems or crashes ***/
user_pref("services.blocklist.update_enabled", true); user_pref("services.blocklist.update_enabled", true);
user_pref("services.blocklist.signing.enforced", true); user_pref("services.blocklist.signing.enforced", true);
/* 0403: disable individual unwanted/unneeded parts of the Kinto blocklists ***/ /* 0403: disable individual unwanted/unneeded parts of the Kinto blocklists ***/
@ -266,7 +267,7 @@ user_pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", ""); //
/* 0420: enable Tracking Protection in all windows /* 0420: enable Tracking Protection in all windows
* [NOTE] TP sends DNT headers regardless of the DNT pref (see 1610) * [NOTE] TP sends DNT headers regardless of the DNT pref (see 1610)
* [1] https://wiki.mozilla.org/Security/Tracking_protection * [1] https://wiki.mozilla.org/Security/Tracking_protection
* [2] https://support.mozilla.org/en-US/kb/tracking-protection-firefox ***/ * [2] https://support.mozilla.org/kb/tracking-protection-firefox ***/
// user_pref("privacy.trackingprotection.pbmode.enabled", true); // default true // user_pref("privacy.trackingprotection.pbmode.enabled", true); // default true
// user_pref("privacy.trackingprotection.enabled", true); // default false // user_pref("privacy.trackingprotection.enabled", true); // default false
/* 0421: enable more Tracking Protection choices under Options>Privacy>Use Tracking Protection /* 0421: enable more Tracking Protection choices under Options>Privacy>Use Tracking Protection
@ -292,19 +293,19 @@ user_pref("privacy.trackingprotection.ui.enabled", true);
// user_pref("privacy.trackingprotection.annotate_channels", false); // user_pref("privacy.trackingprotection.annotate_channels", false);
// user_pref("privacy.trackingprotection.lower_network_priority", false); // user_pref("privacy.trackingprotection.lower_network_priority", false);
/*** 0500: SYSTEM ADD-ONS / EXPERIMENTS /*** 0500: SYSTEM EXTENSIONS / EXPERIMENTS
System add-ons are a method for shipping extensions, considered to be System extensions are a method for shipping extensions, considered to be
built-in features to Firefox, that are hidden from the about:addons UI. built-in features to Firefox, that are hidden from the about:addons UI.
To view your system add-ons go to about:support, they are listed under "Features" To view your system extensions go to about:support, they are listed under "Firefox Features"
Some system add-ons have no on-off prefs. Instead you can manually remove them. Note that app Some system extensions have no on-off prefs. Instead you can manually remove them. Note that app
updates will restore them. They may also be updated and possibly restored automatically (see 0505) updates will restore them. They may also be updated and possibly restored automatically (see 0505)
* Portable: "...\App\Firefox64\browser\features\" (or "App\Firefox\etc" for 32bit) * Portable: "...\App\Firefox64\browser\features\" (or "App\Firefox\etc" for 32bit)
* Windows: "...\Program Files\Mozilla\browser\features" (or "Program Files (X86)\etc" for 32bit) * Windows: "...\Program Files\Mozilla\browser\features" (or "Program Files (X86)\etc" for 32bit)
* Mac: "...\Applications\Firefox\Contents\Resources\browser\features\" * Mac: "...\Applications\Firefox\Contents\Resources\browser\features\"
[NOTE] On Mac you can right-click on the application and select "Show Package Contents" [NOTE] On Mac you can right-click on the application and select "Show Package Contents"
[1] https://gecko.readthedocs.io/en/latest/toolkit/mozapps/extensions/addon-manager/SystemAddons.html [1] https://firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html
[2] https://dxr.mozilla.org/mozilla-central/source/browser/extensions [2] https://dxr.mozilla.org/mozilla-central/source/browser/extensions
***/ ***/
user_pref("ghacks_user.js.parrot", "0500 syntax error: the parrot's cashed in 'is chips!"); user_pref("ghacks_user.js.parrot", "0500 syntax error: the parrot's cashed in 'is chips!");
@ -316,8 +317,8 @@ user_pref("experiments.supported", false);
user_pref("experiments.activeExperiment", false); user_pref("experiments.activeExperiment", false);
/* 0502: disable Mozilla permission to silently opt you into tests ***/ /* 0502: disable Mozilla permission to silently opt you into tests ***/
user_pref("network.allow-experiments", false); user_pref("network.allow-experiments", false);
/* 0505: block URL used for system add-on updates (FF44+) /* 0505: block URL used for system extension updates (FF44+)
* [NOTE] You will not get any system add-on updates except when you update Firefox ***/ * [NOTE] You will not get any system extension updates except when you update Firefox ***/
// user_pref("extensions.systemAddon.update.url", ""); // user_pref("extensions.systemAddon.update.url", "");
/* 0510: disable Pocket (FF39+) /* 0510: disable Pocket (FF39+)
* Pocket is a third party (now owned by Mozilla) "save for later" cloud service * Pocket is a third party (now owned by Mozilla) "save for later" cloud service
@ -337,7 +338,7 @@ user_pref("dom.flyweb.enabled", false);
user_pref("extensions.shield-recipe-client.enabled", false); user_pref("extensions.shield-recipe-client.enabled", false);
user_pref("extensions.shield-recipe-client.api_url", ""); user_pref("extensions.shield-recipe-client.api_url", "");
/* 0513: disable Follow On Search (FF53+) /* 0513: disable Follow On Search (FF53+)
* Just DELETE the XPI file in your system add-ons directory * Just DELETE the XPI file in your system extensions directory
* [1] https://blog.mozilla.org/data/2017/06/05/measuring-search-in-firefox/ ***/ * [1] https://blog.mozilla.org/data/2017/06/05/measuring-search-in-firefox/ ***/
/* 0514: disable Activity Stream (FF54+) /* 0514: disable Activity Stream (FF54+)
* Activity Stream replaces "New Tab" with one based on metadata and browsing behavior, * Activity Stream replaces "New Tab" with one based on metadata and browsing behavior,
@ -365,6 +366,7 @@ user_pref("browser.onboarding.enabled", false);
* [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill * [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill
* [2] https://www.ghacks.net/2017/05/24/firefoxs-new-form-autofill-is-awesome/ ***/ * [2] https://www.ghacks.net/2017/05/24/firefoxs-new-form-autofill-is-awesome/ ***/
user_pref("extensions.formautofill.addresses.enabled", false); user_pref("extensions.formautofill.addresses.enabled", false);
user_pref("extensions.formautofill.creditCards.enabled", false); // (FF56+)
user_pref("extensions.formautofill.experimental", false); user_pref("extensions.formautofill.experimental", false);
user_pref("extensions.formautofill.heuristics.enabled", false); user_pref("extensions.formautofill.heuristics.enabled", false);
/* 0518: disable Web Compatibility Reporter (FF56+) /* 0518: disable Web Compatibility Reporter (FF56+)
@ -374,15 +376,15 @@ user_pref("extensions.webcompat-reporter.enabled", false);
/*** 0600: BLOCK IMPLICIT OUTBOUND [not explicitly asked for - e.g. clicked on] ***/ /*** 0600: BLOCK IMPLICIT OUTBOUND [not explicitly asked for - e.g. clicked on] ***/
user_pref("ghacks_user.js.parrot", "0600 syntax error: the parrot's no more!"); user_pref("ghacks_user.js.parrot", "0600 syntax error: the parrot's no more!");
/* 0601: disable link prefetching /* 0601: disable link prefetching
* [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefetching_FAQ ***/ * [1] https://developer.mozilla.org/docs/Web/HTTP/Link_prefetching_FAQ ***/
user_pref("network.prefetch-next", false); user_pref("network.prefetch-next", false);
/* 0602: disable DNS prefetching /* 0602: disable DNS prefetching
* [1] https://www.ghacks.net/2013/04/27/firefox-prefetching-what-you-need-to-know/ * [1] https://www.ghacks.net/2013/04/27/firefox-prefetching-what-you-need-to-know/
* [2] https://developer.mozilla.org/en-US/docs/Web/HTTP/Controlling_DNS_prefetching ***/ * [2] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
user_pref("network.dns.disablePrefetch", true); user_pref("network.dns.disablePrefetch", true);
user_pref("network.dns.disablePrefetchFromHTTPS", true); // (hidden pref) user_pref("network.dns.disablePrefetchFromHTTPS", true); // (hidden pref)
/* 0603a: disable Seer/Necko /* 0603a: disable Seer/Necko
* [1] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Necko ***/ * [1] https://developer.mozilla.org/docs/Mozilla/Projects/Necko ***/
user_pref("network.predictor.enabled", false); user_pref("network.predictor.enabled", false);
/* 0603b: disable more Necko/Captive Portal /* 0603b: disable more Necko/Captive Portal
* [1] https://en.wikipedia.org/wiki/Captive_portal * [1] https://en.wikipedia.org/wiki/Captive_portal
@ -391,8 +393,8 @@ user_pref("network.predictor.enabled", false);
user_pref("captivedetect.canonicalURL", ""); user_pref("captivedetect.canonicalURL", "");
user_pref("network.captive-portal-service.enabled", false); // (FF52+) user_pref("network.captive-portal-service.enabled", false); // (FF52+)
/* 0605: disable link-mouseover opening connection to linked server /* 0605: disable link-mouseover opening connection to linked server
* [1] http://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests * [1] https://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests
* [2] https://www.ghacks.net/2015/08/16/block-firefox-from-connecting-to-sites-when-you-hover-over-links ***/ * [2] https://www.ghacks.net/2015/08/16/block-firefox-from-connecting-to-sites-when-you-hover-over-links/ ***/
user_pref("network.http.speculative-parallel-limit", 0); user_pref("network.http.speculative-parallel-limit", 0);
/* 0606: disable pings (but enforce same host in case) /* 0606: disable pings (but enforce same host in case)
* [1] http://kb.mozillazine.org/Browser.send_pings * [1] http://kb.mozillazine.org/Browser.send_pings
@ -438,7 +440,7 @@ user_pref("browser.sessionhistory.max_entries", 10);
* [TEST] http://lcamtuf.coredump.cx/yahh/ (see github wiki APPENDIX C on how to use) * [TEST] http://lcamtuf.coredump.cx/yahh/ (see github wiki APPENDIX C on how to use)
* [1] https://dbaron.org/mozilla/visited-privacy * [1] https://dbaron.org/mozilla/visited-privacy
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=147777 * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=147777
* [3] https://developer.mozilla.org/en-US/docs/Web/CSS/Privacy_and_the_:visited_selector ***/ * [3] https://developer.mozilla.org/docs/Web/CSS/Privacy_and_the_:visited_selector ***/
user_pref("layout.css.visited_links_enabled", false); user_pref("layout.css.visited_links_enabled", false);
/* 0806: disable displaying javascript in history URLs - SECURITY ***/ /* 0806: disable displaying javascript in history URLs - SECURITY ***/
user_pref("browser.urlbar.filter.javascript", true); user_pref("browser.urlbar.filter.javascript", true);
@ -506,7 +508,7 @@ user_pref("ghacks_user.js.parrot", "0900 syntax error: the parrot's expired!");
/* 0902: use a master password (recommended if you save passwords) /* 0902: use a master password (recommended if you save passwords)
* There are no preferences for this. It is all handled internally. * There are no preferences for this. It is all handled internally.
* [SETTING] Options>Security>Logins>Use a master password * [SETTING] Options>Security>Logins>Use a master password
* [1] https://support.mozilla.org/en-US/kb/use-master-password-protect-stored-logins ***/ * [1] https://support.mozilla.org/kb/use-master-password-protect-stored-logins ***/
/* 0903: set how often Firefox should ask for the master password /* 0903: set how often Firefox should ask for the master password
* 0=the first time (default), 1=every time it's needed, 2=every n minutes (as per the next pref) ***/ * 0=the first time (default), 1=every time it's needed, 2=every n minutes (as per the next pref) ***/
user_pref("security.ask_for_password", 2); user_pref("security.ask_for_password", 2);
@ -611,9 +613,9 @@ user_pref("alerts.showFavicons", false);
/*** 1100: MULTI-PROCESS (e10s) /*** 1100: MULTI-PROCESS (e10s)
We recommend you let Firefox handle this. Until e10s is enforced, if We recommend you let Firefox handle this. Until e10s is enforced, if
- all your add-ons have the 'multiprocessCompatible' flag as true, then FF = e10s - all your legacy extensions have the 'multiprocessCompatible' flag as true, then FF = e10s
- any add-ons have 'multiprocessCompatible' flag as false, then FF != e10s - any legacy extensions have 'multiprocessCompatible' flag as false, then FF != e10s
- any add-ons are missing the 'multiprocessCompatible' flag, then they *might* be disabled (FF53+) - any legacy extensions are missing the 'multiprocessCompatible' flag, then they *might* be disabled
[1] https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ [1] https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/
***/ ***/
user_pref("ghacks_user.js.parrot", "1100 syntax error: the parrot's bought the farm!"); user_pref("ghacks_user.js.parrot", "1100 syntax error: the parrot's bought the farm!");
@ -624,19 +626,20 @@ user_pref("ghacks_user.js.parrot", "1100 syntax error: the parrot's bought the f
// user_pref("browser.tabs.remote.force-enable", true); // (hidden pref) // user_pref("browser.tabs.remote.force-enable", true); // (hidden pref)
// user_pref("extensions.e10sBlocksEnabling", false); // user_pref("extensions.e10sBlocksEnabling", false);
/* 1102: control number of content rendering processes /* 1102: control number of content rendering processes
* [SETTING] Options>General>Performance>Custom>Content process limit
* [1] https://www.ghacks.net/2016/02/15/change-how-many-processes-multi-process-firefox-uses/ * [1] https://www.ghacks.net/2016/02/15/change-how-many-processes-multi-process-firefox-uses/
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1207306 ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1207306 ***/
// user_pref("dom.ipc.processCount", 4); // user_pref("dom.ipc.processCount", 4);
/* 1103: enable WebExtension add-on code to run in a separate process (webext-oop) (FF53+) /* 1103: enable extension code to run in a separate process (webext-oop) (FF53+)
* [1] https://wiki.mozilla.org/WebExtensions/Implementing_APIs_out-of-process ***/ * [1] https://wiki.mozilla.org/WebExtensions/Implementing_APIs_out-of-process ***/
// user_pref("extensions.webextensions.remote", true); // user_pref("extensions.webextensions.remote", true);
/* 1104: enforce separate content process for file://URLs (FF53+) /* 1104: enforce separate content process for file://URLs (FF53+)
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1147911 * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1147911
* [2] https://www.ghacks.net/2016/11/27/firefox-53-exclusive-content-process-for-local-files/ ***/ * [2] https://www.ghacks.net/2016/11/27/firefox-53-exclusive-content-process-for-local-files/ ***/
user_pref("browser.tabs.remote.separateFileUriProcess", true); user_pref("browser.tabs.remote.separateFileUriProcess", true);
/* 1105: enable console shim warnings for add-ons with the 'multiprocessCompatible' flag as false ***/ /* 1105: enable console shim warnings for legacy extensions with the 'multiprocessCompatible' flag as false ***/
user_pref("dom.ipc.shims.enabledWarnings", true); user_pref("dom.ipc.shims.enabledWarnings", true);
/* 1106: control number of WebExtension processes ***/ /* 1106: control number of extension processes ***/
// user_pref("dom.ipc.processCount.extension", 1); // user_pref("dom.ipc.processCount.extension", 1);
/* 1107: control number of file processes ***/ /* 1107: control number of file processes ***/
// user_pref("dom.ipc.processCount.file", 1); // user_pref("dom.ipc.processCount.file", 1);
@ -694,7 +697,7 @@ user_pref("security.tls.version.max", 4); // 4 = allow up to and including TLS 1
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=967977 ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=967977 ***/
user_pref("security.ssl.disable_session_identifiers", true); // (hidden pref) user_pref("security.ssl.disable_session_identifiers", true); // (hidden pref)
/* 1204: disable SSL Error Reporting /* 1204: disable SSL Error Reporting
* [1] https://gecko.readthedocs.org/en/latest/browser/base/sslerrorreport/preferences.html ***/ * [1] https://firefox-source-docs.mozilla.org/browser/base/sslerrorreport/preferences.html ***/
user_pref("security.ssl.errorReporting.automatic", false); user_pref("security.ssl.errorReporting.automatic", false);
user_pref("security.ssl.errorReporting.enabled", false); user_pref("security.ssl.errorReporting.enabled", false);
user_pref("security.ssl.errorReporting.url", ""); user_pref("security.ssl.errorReporting.url", "");
@ -730,7 +733,7 @@ user_pref("security.family_safety.mode", 0);
* [NOTE] This may be better handled under FPI (ticket 1323644, part of Tor Uplift) * [NOTE] This may be better handled under FPI (ticket 1323644, part of Tor Uplift)
* [WARNING] This affects login/cert/key dbs. The effect is all credentials are session-only. * [WARNING] This affects login/cert/key dbs. The effect is all credentials are session-only.
* Saved logins and passwords are not available. Reset the pref and restart to return them. * Saved logins and passwords are not available. Reset the pref and restart to return them.
* [TEST] https://fiprinca.0x90.eu/poc/ * [TEST] https://fiprinca.0x90.eu/poc/ [NOTE: 2017-08: expired cert]
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1334485 - related bug * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1334485 - related bug
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1216882 - related bug (see comment 9) ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1216882 - related bug (see comment 9) ***/
// user_pref("security.nocertdb", true); // (hidden pref) // user_pref("security.nocertdb", true); // (hidden pref)
@ -774,7 +777,7 @@ user_pref("security.pki.sha1_enforcement_level", 1);
/* 1261: disable 3DES (effective key size < 128) /* 1261: disable 3DES (effective key size < 128)
* [1] https://en.wikipedia.org/wiki/3des#Security * [1] https://en.wikipedia.org/wiki/3des#Security
* [2] http://en.citizendium.org/wiki/Meet-in-the-middle_attack * [2] http://en.citizendium.org/wiki/Meet-in-the-middle_attack
* [3] http://www-archive.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html ***/ * [3] https://www-archive.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html ***/
user_pref("security.ssl3.rsa_des_ede3_sha", false); user_pref("security.ssl3.rsa_des_ede3_sha", false);
/* 1262: disable 128 bits ***/ /* 1262: disable 128 bits ***/
user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false); user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
@ -837,7 +840,7 @@ user_pref("layout.css.font-loading-api.enabled", false);
user_pref("font.blacklist.underline_offset", ""); user_pref("font.blacklist.underline_offset", "");
/* 1408: disable graphite which FF49 turned back on by default /* 1408: disable graphite which FF49 turned back on by default
* In the past it had security issues. Update: This continues to be the case, see [1] * In the past it had security issues. Update: This continues to be the case, see [1]
* [1] https://www.mozilla.org/en-US/security/advisories/mfsa2017-15/#CVE-2017-7778 ***/ * [1] https://www.mozilla.org/security/advisories/mfsa2017-15/#CVE-2017-7778 ***/
user_pref("gfx.font_rendering.graphite.enabled", false); user_pref("gfx.font_rendering.graphite.enabled", false);
/* 1409: limit system font exposure to a whitelist (FF52+) [SETUP] /* 1409: limit system font exposure to a whitelist (FF52+) [SETUP]
* If the whitelist is empty, then whitelisting is considered disabled and all fonts are allowed. * If the whitelist is empty, then whitelisting is considered disabled and all fonts are allowed.
@ -970,7 +973,7 @@ user_pref("media.gmp-gmpopenh264.autoupdate", false);
/*** 2000: MEDIA / CAMERA / MIC ***/ /*** 2000: MEDIA / CAMERA / MIC ***/
user_pref("ghacks_user.js.parrot", "2000 syntax error: the parrot's snuffed it!"); user_pref("ghacks_user.js.parrot", "2000 syntax error: the parrot's snuffed it!");
/* 2001: disable WebRTC (Web Real-Time Communication) /* 2001: disable WebRTC (Web Real-Time Communication)
* [1] https://privacytoolsio.github.io/privacytools.io/#webrtc ***/ * [1] https://www.privacytools.io/#webrtc ***/
user_pref("media.peerconnection.enabled", false); user_pref("media.peerconnection.enabled", false);
user_pref("media.peerconnection.use_document_iceservers", false); user_pref("media.peerconnection.use_document_iceservers", false);
user_pref("media.peerconnection.video.enabled", false); user_pref("media.peerconnection.video.enabled", false);
@ -986,7 +989,7 @@ user_pref("media.navigator.video.enabled", false); // video capability for WebRT
user_pref("media.peerconnection.ice.default_address_only", true); // (FF42-FF50) user_pref("media.peerconnection.ice.default_address_only", true); // (FF42-FF50)
user_pref("media.peerconnection.ice.no_host", true); // (FF51+) user_pref("media.peerconnection.ice.no_host", true); // (FF51+)
/* 2010: disable WebGL (Web Graphics Library), force bare minimum feature set if used & disable WebGL extensions /* 2010: disable WebGL (Web Graphics Library), force bare minimum feature set if used & disable WebGL extensions
* [1] http://www.contextis.com/resources/blog/webgl-new-dimension-browser-exploitation/ * [1] https://www.contextis.com/resources/blog/webgl-new-dimension-browser-exploitation/
* [2] https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern ***/ * [2] https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern ***/
user_pref("webgl.disabled", true); user_pref("webgl.disabled", true);
user_pref("pdfjs.enableWebGL", false); user_pref("pdfjs.enableWebGL", false);
@ -995,14 +998,14 @@ user_pref("webgl.disable-extensions", true);
user_pref("webgl.disable-fail-if-major-performance-caveat", true); user_pref("webgl.disable-fail-if-major-performance-caveat", true);
/* 2011: disable WebGL debug info being available to websites /* 2011: disable WebGL debug info being available to websites
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1171228 * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1171228
* [2] https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug_renderer_info ***/ * [2] https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info ***/
user_pref("webgl.enable-debug-renderer-info", false); user_pref("webgl.enable-debug-renderer-info", false);
/* 2012: disable two more webgl preferences (FF51+) ***/ /* 2012: disable two more webgl preferences (FF51+) ***/
user_pref("webgl.dxgl.enabled", false); // [WINDOWS] user_pref("webgl.dxgl.enabled", false); // [WINDOWS]
user_pref("webgl.enable-webgl2", false); user_pref("webgl.enable-webgl2", false);
/* 2021: disable speech recognition /* 2021: disable speech recognition
* [1] https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition * [1] https://developer.mozilla.org/docs/Web/API/SpeechRecognition
* [2] https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis * [2] https://developer.mozilla.org/docs/Web/API/SpeechSynthesis
* [3] https://wiki.mozilla.org/HTML5_Speech_API ***/ * [3] https://wiki.mozilla.org/HTML5_Speech_API ***/
user_pref("media.webspeech.recognition.enable", false); user_pref("media.webspeech.recognition.enable", false);
user_pref("media.webspeech.synth.enabled", false); user_pref("media.webspeech.synth.enabled", false);
@ -1020,13 +1023,13 @@ user_pref("media.mediasource.mp4.enabled", true);
user_pref("media.mediasource.webm.audio.enabled", true); user_pref("media.mediasource.webm.audio.enabled", true);
user_pref("media.mediasource.webm.enabled", true); user_pref("media.mediasource.webm.enabled", true);
/* 2026: disable canvas capture stream /* 2026: disable canvas capture stream
* [1] https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/captureStream ***/ * [1] https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/captureStream ***/
user_pref("canvas.capturestream.enabled", false); user_pref("canvas.capturestream.enabled", false);
/* 2027: disable camera image capture /* 2027: disable camera image capture
* [1] https://trac.torproject.org/projects/tor/ticket/16339 ***/ * [1] https://trac.torproject.org/projects/tor/ticket/16339 ***/
user_pref("dom.imagecapture.enabled", false); user_pref("dom.imagecapture.enabled", false);
/* 2028: disable offscreen canvas /* 2028: disable offscreen canvas
* [1] https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas ***/ * [1] https://developer.mozilla.org/docs/Web/API/OffscreenCanvas ***/
user_pref("gfx.offscreencanvas.enabled", false); user_pref("gfx.offscreencanvas.enabled", false);
/* 2030: disable auto-play of HTML5 media /* 2030: disable auto-play of HTML5 media
* [WARNING] This may break video playback on various sites ***/ * [WARNING] This may break video playback on various sites ***/
@ -1065,8 +1068,8 @@ user_pref("dom.allow_scripts_to_close_windows", false);
user_pref("browser.link.open_newwindow.restriction", 0); user_pref("browser.link.open_newwindow.restriction", 0);
/* 2205: disable "Confirm you want to leave" dialog on page close /* 2205: disable "Confirm you want to leave" dialog on page close
* Does not prevent JS leaks of the page close event. * Does not prevent JS leaks of the page close event.
* [1] https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload * [1] https://developer.mozilla.org/docs/Web/Events/beforeunload
* [2] https://support.mozilla.org/en-US/questions/1043508 ***/ * [2] https://support.mozilla.org/questions/1043508 ***/
user_pref("dom.disable_beforeunload", true); user_pref("dom.disable_beforeunload", true);
/*** 2300: WEB WORKERS [SETUP] /*** 2300: WEB WORKERS [SETUP]
@ -1079,12 +1082,12 @@ user_pref("dom.disable_beforeunload", true);
[WARNING] Disabling workers *will* break sites (e.g. Google Street View, Twitter). [WARNING] Disabling workers *will* break sites (e.g. Google Street View, Twitter).
It is recommended that you use a separate profile for these sorts of sites. It is recommended that you use a separate profile for these sorts of sites.
[1] Web Workers: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API [1] Web Workers: https://developer.mozilla.org/docs/Web/API/Web_Workers_API
[2] Worker: https://developer.mozilla.org/en-US/docs/Web/API/Worker [2] Worker: https://developer.mozilla.org/docs/Web/API/Worker
[3] Service Worker: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker_API [3] Service Worker: https://developer.mozilla.org/docs/Web/API/Service_Worker_API
[4] SharedWorker: https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker [4] SharedWorker: https://developer.mozilla.org/docs/Web/API/SharedWorker
[5] ChromeWorker: https://developer.mozilla.org/en-US/docs/Web/API/ChromeWorker [5] ChromeWorker: https://developer.mozilla.org/docs/Web/API/ChromeWorker
[6] Notifications: https://support.mozilla.org/en-US/questions/1165867#answer-981820 [6] Notifications: https://support.mozilla.org/questions/1165867#answer-981820
***/ ***/
user_pref("ghacks_user.js.parrot", "2300 syntax error: the parrot's off the twig!"); user_pref("ghacks_user.js.parrot", "2300 syntax error: the parrot's off the twig!");
/* 2301: disable workers /* 2301: disable workers
@ -1101,13 +1104,13 @@ user_pref("dom.serviceWorkers.enabled", false);
user_pref("dom.caches.enabled", false); user_pref("dom.caches.enabled", false);
/* 2304: disable web notifications /* 2304: disable web notifications
* [NOTE] You can still override individual domains under site permissions (FF44+) * [NOTE] You can still override individual domains under site permissions (FF44+)
* [1] https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API ***/ * [1] https://developer.mozilla.org/docs/Web/API/Notifications_API ***/
user_pref("dom.webnotifications.enabled", false); user_pref("dom.webnotifications.enabled", false);
user_pref("dom.webnotifications.serviceworker.enabled", false); user_pref("dom.webnotifications.serviceworker.enabled", false);
/* 2305: disable push notifications (FF44+) /* 2305: disable push notifications (FF44+)
* web apps can receive messages pushed to them from a server, whether or * web apps can receive messages pushed to them from a server, whether or
* not the web app is in the foreground, or even currently loaded * not the web app is in the foreground, or even currently loaded
* [1] https://developer.mozilla.org/en/docs/Web/API/Push_API ***/ * [1] https://developer.mozilla.org/docs/Web/API/Push_API ***/
user_pref("dom.push.enabled", false); user_pref("dom.push.enabled", false);
user_pref("dom.push.connection.enabled", false); user_pref("dom.push.connection.enabled", false);
user_pref("dom.push.serverURL", ""); user_pref("dom.push.serverURL", "");
@ -1126,8 +1129,10 @@ user_pref("dom.event.clipboardevents.enabled", false);
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1170911 ***/ * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1170911 ***/
user_pref("dom.allow_cut_copy", false); // (hidden pref) user_pref("dom.allow_cut_copy", false); // (hidden pref)
/* 2404: disable JS storing data permanently [SETUP] /* 2404: disable JS storing data permanently [SETUP]
* [WARNING] This *may* break some add-ons and *will* break some sites ***/ * [WARNING] This BREAKS uBlock Origin [1.14.0+] and uMatrix extensions
user_pref("dom.indexedDB.enabled", false); * [1] https://github.com/gorhill/uBlock/releases/tag/1.14.0
* [WARNING] This *will* break other extensions including legacy, and *will* break some sites ***/
// user_pref("dom.indexedDB.enabled", false);
/* 2411: disable resource/navigation timing ***/ /* 2411: disable resource/navigation timing ***/
user_pref("dom.enable_resource_timing", false); user_pref("dom.enable_resource_timing", false);
/* 2412: disable timing attacks - javascript performance fingerprinting /* 2412: disable timing attacks - javascript performance fingerprinting
@ -1150,8 +1155,8 @@ user_pref("dom.idle-observers-api.enabled", false);
* set to false=block, set to true=ask ***/ * set to false=block, set to true=ask ***/
user_pref("full-screen-api.enabled", false); user_pref("full-screen-api.enabled", false);
/* 2420: disable support for asm.js ( http://asmjs.org/ ) /* 2420: disable support for asm.js ( http://asmjs.org/ )
* [1] https://www.mozilla.org/en-US/security/advisories/mfsa2015-29/ * [1] https://www.mozilla.org/security/advisories/mfsa2015-29/
* [2] https://www.mozilla.org/en-US/security/advisories/mfsa2015-50/ * [2] https://www.mozilla.org/security/advisories/mfsa2015-50/
* [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2712 ***/ * [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2712 ***/
user_pref("javascript.options.asmjs", false); user_pref("javascript.options.asmjs", false);
/* 2421: disable Ion and baseline JIT to help harden JS against exploits such as CVE-2015-0817 /* 2421: disable Ion and baseline JIT to help harden JS against exploits such as CVE-2015-0817
@ -1160,18 +1165,18 @@ user_pref("javascript.options.asmjs", false);
// user_pref("javascript.options.ion", false); // user_pref("javascript.options.ion", false);
// user_pref("javascript.options.baselinejit", false); // user_pref("javascript.options.baselinejit", false);
/* 2422: disable WebAssembly for now (FF52+) /* 2422: disable WebAssembly for now (FF52+)
* [1] https://developer.mozilla.org/en-US/docs/WebAssembly ***/ * [1] https://developer.mozilla.org/docs/WebAssembly ***/
user_pref("javascript.options.wasm", false); user_pref("javascript.options.wasm", false);
/* 2426: disable Intersection Observer API (FF53+) /* 2426: disable Intersection Observer API (FF53+)
* Almost a year to complete, three versions late to stable (as default false), * Almost a year to complete, three versions late to stable (as default false),
* number #1 cause of crashes in nightly numerous times, and is (primarily) an * number #1 cause of crashes in nightly numerous times, and is (primarily) an
* ad network API for "ad viewability checks" down to a pixel level * ad network API for "ad viewability checks" down to a pixel level
* [1] https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API * [1] https://developer.mozilla.org/docs/Web/API/Intersection_Observer_API
* [2] https://wicg.github.io/IntersectionObserver/ * [2] https://w3c.github.io/IntersectionObserver/
* [3] https://bugzilla.mozilla.org/show_bug.cgi?id=1243846 ***/ * [3] https://bugzilla.mozilla.org/show_bug.cgi?id=1243846 ***/
user_pref("dom.IntersectionObserver.enabled", false); user_pref("dom.IntersectionObserver.enabled", false);
/* 2450a: enforce websites to ask to store data for offline use /* 2450a: enforce websites to ask to store data for offline use
* [1] https://support.mozilla.org/en-US/questions/1098540 * [1] https://support.mozilla.org/questions/1098540
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=959985 ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=959985 ***/
user_pref("offline-apps.allow_by_default", false); user_pref("offline-apps.allow_by_default", false);
/* 2450b: display a notification when websites ask to store data for offline use /* 2450b: display a notification when websites ask to store data for offline use
@ -1189,24 +1194,24 @@ user_pref("ghacks_user.js.parrot", "2500 syntax error: the parrot's shuffled off
user_pref("dom.gamepad.enabled", false); user_pref("dom.gamepad.enabled", false);
/* 2503: disable giving away network info (FF31+) /* 2503: disable giving away network info (FF31+)
* e.g. bluetooth, cellular, ethernet, wifi, wimax, other, mixed, unknown, none * e.g. bluetooth, cellular, ethernet, wifi, wimax, other, mixed, unknown, none
* [1] https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API * [1] https://developer.mozilla.org/docs/Web/API/Network_Information_API
* [2] https://wicg.github.io/netinfo/ * [2] https://wicg.github.io/netinfo/
* [3] https://bugzilla.mozilla.org/show_bug.cgi?id=960426 ***/ * [3] https://bugzilla.mozilla.org/show_bug.cgi?id=960426 ***/
user_pref("dom.netinfo.enabled", false); user_pref("dom.netinfo.enabled", false);
/* 2504: disable virtual reality devices /* 2504: disable virtual reality devices
* [1] https://developer.mozilla.org/en-US/docs/Web/API/WebVR_API ***/ * [1] https://developer.mozilla.org/docs/Web/API/WebVR_API ***/
user_pref("dom.vr.enabled", false); user_pref("dom.vr.enabled", false);
/* 2505: disable media device enumeration (FF29+) /* 2505: disable media device enumeration (FF29+)
* [NOTE] media.peerconnection.enabled should also be set to false (see 2001) * [NOTE] media.peerconnection.enabled should also be set to false (see 2001)
* [1] https://wiki.mozilla.org/Media/getUserMedia * [1] https://wiki.mozilla.org/Media/getUserMedia
* [2] https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices ***/ * [2] https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices ***/
user_pref("media.navigator.enabled", false); user_pref("media.navigator.enabled", false);
/* 2506: disable video statistics - JS performance fingerprinting (FF25+) /* 2506: disable video statistics - JS performance fingerprinting (FF25+)
* [1] https://trac.torproject.org/projects/tor/ticket/15757 * [1] https://trac.torproject.org/projects/tor/ticket/15757
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=654550 ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=654550 ***/
user_pref("media.video_stats.enabled", false); user_pref("media.video_stats.enabled", false);
/* 2508: disable hardware acceleration to reduce graphics fingerprinting /* 2508: disable hardware acceleration to reduce graphics fingerprinting
* [SETTING] Options>Advanced>General>Use hardware acceleration when available * [SETTING] Options>General>Performance>Custom>Use hardware acceleration when available
* [NOTE] Changing this option changes BOTH these preferences * [NOTE] Changing this option changes BOTH these preferences
* [WARNING] [SETUP] Affects text rendering (fonts will look different) and impacts video performance * [WARNING] [SETUP] Affects text rendering (fonts will look different) and impacts video performance
* [1] https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration ***/ * [1] https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration ***/
@ -1214,15 +1219,15 @@ user_pref("gfx.direct2d.disabled", true); // [WINDOWS]
user_pref("layers.acceleration.disabled", true); user_pref("layers.acceleration.disabled", true);
/* 2509: disable touch events [SETUP] /* 2509: disable touch events [SETUP]
* fingerprinting attack vector - leaks screen res & actual screen coordinates * fingerprinting attack vector - leaks screen res & actual screen coordinates
* [1] https://developer.mozilla.org/en-US/docs/Web/API/Touch_events * [1] https://developer.mozilla.org/docs/Web/API/Touch_events
* [2] https://trac.torproject.org/projects/tor/ticket/10286 ***/ * [2] https://trac.torproject.org/projects/tor/ticket/10286 ***/
user_pref("dom.w3c_touch_events.enabled", 0); user_pref("dom.w3c_touch_events.enabled", 0);
/* 2510: disable Web Audio API (FF51+) /* 2510: disable Web Audio API (FF51+)
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1288359 ***/ * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1288359 ***/
user_pref("dom.webaudio.enabled", false); user_pref("dom.webaudio.enabled", false);
/* 2511: disable MediaDevices change detection (FF51+) (enabled by default starting FF52+) /* 2511: disable MediaDevices change detection (FF51+) (enabled by default starting FF52+)
* [1] https://developer.mozilla.org/en-US/docs/Web/Events/devicechange * [1] https://developer.mozilla.org/docs/Web/Events/devicechange
* [2] https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/ondevicechange ***/ * [2] https://developer.mozilla.org/docs/Web/API/MediaDevices/ondevicechange ***/
user_pref("media.ondevicechange.enabled", false); user_pref("media.ondevicechange.enabled", false);
/* 2512: disable device sensor API /* 2512: disable device sensor API
* [1] https://trac.torproject.org/projects/tor/ticket/15758 * [1] https://trac.torproject.org/projects/tor/ticket/15758
@ -1256,7 +1261,7 @@ user_pref("browser.zoom.siteSpecific", false);
/*** 2600: MISC - LEAKS / FINGERPRINTING / PRIVACY / SECURITY ***/ /*** 2600: MISC - LEAKS / FINGERPRINTING / PRIVACY / SECURITY ***/
user_pref("ghacks_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!"); user_pref("ghacks_user.js.parrot", "2600 syntax error: the parrot's run down the curtain!");
/* 2601: disable sending additional analytics to web servers /* 2601: disable sending additional analytics to web servers
* [1] https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon ***/ * [1] https://developer.mozilla.org/docs/Web/API/Navigator/sendBeacon ***/
user_pref("beacon.enabled", false); user_pref("beacon.enabled", false);
/* 2602: discourage downloading to desktop (0=desktop 1=downloads 2=last used) /* 2602: discourage downloading to desktop (0=desktop 1=downloads 2=last used)
* [NOTE] To set your default "downloads": Options>General>Downloads>Save files to ***/ * [NOTE] To set your default "downloads": Options>General>Downloads>Save files to ***/
@ -1280,7 +1285,7 @@ user_pref("network.jar.open-unsafe-types", false);
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=232227 * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=232227
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1330876 ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1330876 ***/
user_pref("ui.use_standins_for_native_colors", true); // (hidden pref) user_pref("ui.use_standins_for_native_colors", true); // (hidden pref)
/* 2611: disable WebIDE to prevent remote debugging and add-on downloads /* 2611: disable WebIDE to prevent remote debugging and extension downloads
* [1] https://trac.torproject.org/projects/tor/ticket/16222 ***/ * [1] https://trac.torproject.org/projects/tor/ticket/16222 ***/
user_pref("devtools.webide.autoinstallADBHelper", false); user_pref("devtools.webide.autoinstallADBHelper", false);
user_pref("devtools.webide.autoinstallFxdtAdapters", false); user_pref("devtools.webide.autoinstallFxdtAdapters", false);
@ -1322,7 +1327,7 @@ user_pref("pdfjs.disabled", false);
user_pref("network.proxy.socks_remote_dns", true); user_pref("network.proxy.socks_remote_dns", true);
/* 2619: limit HTTP redirects (this does not control redirects with HTML meta tags or JS) /* 2619: limit HTTP redirects (this does not control redirects with HTML meta tags or JS)
* [WARNING] A low setting of 5 or under will probably break some sites (e.g. gmail logins) * [WARNING] A low setting of 5 or under will probably break some sites (e.g. gmail logins)
* To control HTML Meta tag and JS redirects, use an add-on. Default is 20 ***/ * To control HTML Meta tag and JS redirects, use an extension. Default is 20 ***/
user_pref("network.http.redirection-limit", 10); user_pref("network.http.redirection-limit", 10);
/* 2620: disable middle mouse click opening links from clipboard /* 2620: disable middle mouse click opening links from clipboard
* [1] https://trac.torproject.org/projects/tor/ticket/10089 * [1] https://trac.torproject.org/projects/tor/ticket/10089
@ -1332,30 +1337,30 @@ user_pref("middlemouse.contentLoadURL", false);
* This is all about covert channels such as MAC addresses being included/abused in the * This is all about covert channels such as MAC addresses being included/abused in the
* IPv6 protocol for tracking. If you want to mask your IP address, this is not the way * IPv6 protocol for tracking. If you want to mask your IP address, this is not the way
* to do it. It's 2016, IPv6 is here. Here are some old links * to do it. It's 2016, IPv6 is here. Here are some old links
* 2010: https://www.christopher-parsons.com/ipv6-and-the-future-of-privacy/ * 2010: https://christopher-parsons.com/ipv6-and-the-future-of-privacy/
* 2011: https://iapp.org/news/a/2011-09-09-facing-the-privacy-implications-of-ipv6 * 2011: https://iapp.org/news/a/2011-09-09-facing-the-privacy-implications-of-ipv6/
* 2012: http://www.zdnet.com/article/security-versus-privacy-with-ipv6-deployment/ * 2012: http://www.zdnet.com/article/security-versus-privacy-with-ipv6-deployment/
* [NOTE] It is a myth that disabling IPv6 will speed up your internet connection * [NOTE] It is a myth that disabling IPv6 will speed up your internet connection
* [1] http://www.howtogeek.com/195062/no-disabling-ipv6-probably-wont-speed-up-your-internet-connection ***/ * [1] https://www.howtogeek.com/195062/no-disabling-ipv6-probably-wont-speed-up-your-internet-connection/ ***/
// user_pref("network.dns.disableIPv6", true); // user_pref("network.dns.disableIPv6", true);
// user_pref("network.http.fast-fallback-to-IPv4", true); // user_pref("network.http.fast-fallback-to-IPv4", true);
/* 2622: enforce a security delay when installing add-ons (milliseconds) /* 2622: enforce a security delay when installing extensions (milliseconds)
* default=1000, This also covers the delay in "Save" on downloading files. * default=1000, This also covers the delay in "Save" on downloading files.
* [1] http://kb.mozillazine.org/Disable_extension_install_delay_-_Firefox * [1] http://kb.mozillazine.org/Disable_extension_install_delay_-_Firefox
* [2] http://www.squarefree.com/2004/07/01/race-conditions-in-security-dialogs/ ***/ * [2] https://www.squarefree.com/2004/07/01/race-conditions-in-security-dialogs/ ***/
user_pref("security.dialog_enable_delay", 700); user_pref("security.dialog_enable_delay", 700);
/* 2623: enable Strict File Origin Policy on local files /* 2623: enable Strict File Origin Policy on local files
* [1] http://kb.mozillazine.org/Security.fileuri.strict_origin_policy ***/ * [1] http://kb.mozillazine.org/Security.fileuri.strict_origin_policy ***/
user_pref("security.fileuri.strict_origin_policy", true); user_pref("security.fileuri.strict_origin_policy", true);
/* 2624: enable Subresource Integrity (SRI) (FF43+) /* 2624: enable Subresource Integrity (SRI) (FF43+)
* [1] https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity * [1] https://developer.mozilla.org/docs/Web/Security/Subresource_Integrity
* [2] https://wiki.mozilla.org/Security/Subresource_Integrity ***/ * [2] https://wiki.mozilla.org/Security/Subresource_Integrity ***/
user_pref("security.sri.enable", true); user_pref("security.sri.enable", true);
/* 2625: disable DNS requests for hostnames with a .onion TLD (FF45+) /* 2625: disable DNS requests for hostnames with a .onion TLD (FF45+)
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1228457 ***/ * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1228457 ***/
user_pref("network.dns.blockDotOnion", true); user_pref("network.dns.blockDotOnion", true);
/* 2626: disable optional user agent token, default is false, included for completeness /* 2626: disable optional user agent token, default is false, included for completeness
* [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference ***/ * [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/User-Agent/Firefox ***/
user_pref("general.useragent.compatMode.firefox", false); user_pref("general.useragent.compatMode.firefox", false);
/* 2628: disable UITour backend so there is no chance that a remote page can use it ***/ /* 2628: disable UITour backend so there is no chance that a remote page can use it ***/
user_pref("browser.uitour.enabled", false); user_pref("browser.uitour.enabled", false);
@ -1384,12 +1389,12 @@ user_pref("network.http.altsvc.enabled", false);
user_pref("network.http.altsvc.oe", false); user_pref("network.http.altsvc.oe", false);
/* 2667: disable various developer tools in browser context /* 2667: disable various developer tools in browser context
* [SETTING] Devtools>Advanced Settings>Enable browser chrome and add-on debugging toolboxes * [SETTING] Devtools>Advanced Settings>Enable browser chrome and add-on debugging toolboxes
* [1] http://github.com/pyllyukko/user.js/issues/179#issuecomment-246468676 ***/ * [1] https://github.com/pyllyukko/user.js/issues/179#issuecomment-246468676 ***/
user_pref("devtools.chrome.enabled", false); user_pref("devtools.chrome.enabled", false);
/* 2668: lock down allowed extension directories /* 2668: lock down allowed extension directories
* [WARNING] This will break add-ons that do not use the default XPI directories * [WARNING] This will break extensions that do not use the default XPI directories
* [1] https://mike.kaply.com/2012/02/21/understanding-add-on-scopes/ * [1] https://mike.kaply.com/2012/02/21/understanding-add-on-scopes/
* [1] archived: http://archive.is/DYjAM ***/ * [1] archived: https://archive.is/DYjAM ***/
user_pref("extensions.enabledScopes", 1); // (hidden pref) user_pref("extensions.enabledScopes", 1); // (hidden pref)
user_pref("extensions.autoDisableScopes", 15); user_pref("extensions.autoDisableScopes", 15);
/* 2669: remove paths when sending URLs to PAC scripts (FF51+) /* 2669: remove paths when sending URLs to PAC scripts (FF51+)
@ -1412,11 +1417,11 @@ user_pref("security.block_script_with_wrong_mime", true);
* [1] http://kb.mozillazine.org/Network.IDN_show_punycode * [1] http://kb.mozillazine.org/Network.IDN_show_punycode
* [2] https://wiki.mozilla.org/IDN_Display_Algorithm * [2] https://wiki.mozilla.org/IDN_Display_Algorithm
* [3] https://en.wikipedia.org/wiki/IDN_homograph_attack * [3] https://en.wikipedia.org/wiki/IDN_homograph_attack
* [4] CVE-2017-5383: https://www.mozilla.org/en-US/security/advisories/mfsa2017-02/ * [4] CVE-2017-5383: https://www.mozilla.org/security/advisories/mfsa2017-02/
* [5] https://www.xudongz.com/blog/2017/idn-phishing/ ***/ * [5] https://www.xudongz.com/blog/2017/idn-phishing/ ***/
user_pref("network.IDN_show_punycode", true); user_pref("network.IDN_show_punycode", true);
/* 2673: enable CSP (Content Security Policy) (default is true) /* 2673: enable CSP (Content Security Policy) (default is true)
* [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP ***/ * [1] https://developer.mozilla.org/docs/Web/HTTP/CSP ***/
user_pref("security.csp.enable", true); user_pref("security.csp.enable", true);
/* 2674: enable CSP 1.1 experimental hash-source directive (FF29+) /* 2674: enable CSP 1.1 experimental hash-source directive (FF29+)
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=855326 * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=855326
@ -1436,7 +1441,7 @@ user_pref("security.csp.experimentalEnabled", true);
* Values below are for example only based on the current ESR/TBB at the time of writing * Values below are for example only based on the current ESR/TBB at the time of writing
***/ ***/
/* 2697a: navigator.userAgent leaks in JS /* 2697a: navigator.userAgent leaks in JS
* [NOTE] Setting this will break any UA spoofing add-on whitelisting ***/ * [NOTE] Setting this will break any UA spoofing extension whitelisting ***/
// user_pref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"); // (hidden pref) // user_pref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"); // (hidden pref)
/* 2697b: navigator.buildID (see gecko.buildID in about:config) reveals build time /* 2697b: navigator.buildID (see gecko.buildID in about:config) reveals build time
* down to the second which defeats user agent spoofing and can compromise OS etc * down to the second which defeats user agent spoofing and can compromise OS etc
@ -1493,16 +1498,20 @@ user_pref("privacy.firstparty.isolate.restrict_opener_access", true);
This spoof *shouldn't* affect core chrome/Firefox performance This spoof *shouldn't* affect core chrome/Firefox performance
** 1217238 - reduce precision of time exposed by javascript (FF55+) ** 1217238 - reduce precision of time exposed by javascript (FF55+)
** 1369303 - spoof/disable performance API (see 2410-deprecated, 2411, 2412) (FF56+) ** 1369303 - spoof/disable performance API (see 2410-deprecated, 2411, 2412) (FF56+)
** 1333651 & 1383495 - spoof Navigator API (see section 2697) (FF56+) ** 1333651 & 1383495 & 1396468 & 1393283 - spoof Navigator API (see section 2697) (FF56+)
The version number will be rounded down to the nearest multiple of 10 FF56: The version number will be rounded down to the nearest multiple of 10
FF57+: The version number will match current ESR
** 1369319 - disable device sensor API (see 2512) (FF56+) ** 1369319 - disable device sensor API (see 2512) (FF56+)
** 1369357 - disable site specific zoom (see 2515) (FF56+) ** 1369357 - disable site specific zoom (see 2515) (FF56+)
** 1337161 - disable gamepad API (see 2501) (FF56+) ** 1337161 - hide gamepads from content (see 2501) (FF56+)
** 1372072 - spoof network information API as "unknown" (see 2503) (FF56+) ** 1372072 - spoof network information API as "unknown" (see 2503) (FF56+)
** 1372069 - disable geolocation API (see 0201) (FF56+) ** 1372069 - disable geolocation API (see 0201) (FF56+)
** 1333641 - disable WebSpeech API (see 2021) (FF56+) ** 1333641 - reduce fingerprinting in WebSpeech API (see 2021) (FF56+)
** 1369309 - spoof media statistics to 0 (see 2506) (FF57+) ** 1369309 - spoof media statistics (see 2506) (FF57+)
** 1382499 - reduce screen co-ordinate fingerprinting in Touch API (see 2509) (FF57+) ** 1382499 - reduce screen co-ordinate fingerprinting in Touch API (see 2509) (FF57+)
** 1217290 - enable fingerprinting resistance for WebGL (see 2010-12) (FF57+)
** 1382545 - reduce fingerprinting in Animation API (FF57+)
** 1354633 - limit MediaError.message to a whitelist (FF57+)
***/ ***/
/* 2699a: enable privacy.resistFingerprinting (FF41+) /* 2699a: enable privacy.resistFingerprinting (FF41+)
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=418986 ***/ * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=418986 ***/
@ -1511,7 +1520,7 @@ user_pref("privacy.resistFingerprinting", true); // (hidden pref) (not hidden FF
* [NOTE] Width will round to multiples of 200s and height to 100s, to fit your screen. * [NOTE] Width will round to multiples of 200s and height to 100s, to fit your screen.
* The override values are a starting point to round from if you want some control * The override values are a starting point to round from if you want some control
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1330882 * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1330882
* [2] https://metrics.mozilla.com/firefox-hardware-report/ ***/ * [2] https://hardware.metrics.mozilla.com/ ***/
// user_pref("privacy.window.maxInnerWidth", 1600); // (hidden pref) // user_pref("privacy.window.maxInnerWidth", 1600); // (hidden pref)
// user_pref("privacy.window.maxInnerHeight", 900); // (hidden pref) // user_pref("privacy.window.maxInnerHeight", 900); // (hidden pref)
@ -1542,19 +1551,19 @@ user_pref("network.cookie.thirdparty.sessionOnly", true);
* The API gives sites the ability to find out how much space they can use, how much * The API gives sites the ability to find out how much space they can use, how much
* they are already using, and even control whether or not they need to be alerted * they are already using, and even control whether or not they need to be alerted
* before the user agent disposes of site data in order to make room for other things. * before the user agent disposes of site data in order to make room for other things.
* [1] https://developer.mozilla.org/en-US/docs/Web/API/StorageManager * [1] https://developer.mozilla.org/docs/Web/API/StorageManager
* [2] https://developer.mozilla.org/en-US/docs/Web/API/Storage_API * [2] https://developer.mozilla.org/docs/Web/API/Storage_API
* [3] https://blog.mozilla.org/l10n/2017/03/07/firefox-l10n-report-aurora-54/ ***/ * [3] https://blog.mozilla.org/l10n/2017/03/07/firefox-l10n-report-aurora-54/ ***/
user_pref("dom.storageManager.enabled", false); // (FF51+) user_pref("dom.storageManager.enabled", false); // (FF51+)
user_pref("browser.storageManager.enabled", false); // (FF53+) user_pref("browser.storageManager.enabled", false); // (FF53+)
/* 2707: clear localStorage and UUID when a WebExtension is uninstalled /* 2707: clear localStorage and UUID when an extension is uninstalled
* [NOTE] Both preferences must be the same * [NOTE] Both preferences must be the same
* [1] https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage/local * [1] https://developer.mozilla.org/Add-ons/WebExtensions/API/storage/local
* [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1213990 ***/ * [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1213990 ***/
user_pref("extensions.webextensions.keepStorageOnUninstall", false); user_pref("extensions.webextensions.keepStorageOnUninstall", false);
user_pref("extensions.webextensions.keepUuidOnUninstall", false); user_pref("extensions.webextensions.keepUuidOnUninstall", false);
/* 2708: disable HTTP sites setting cookies with the "secure" directive (default: true) (FF52+) /* 2708: disable HTTP sites setting cookies with the "secure" directive (default: true) (FF52+)
* [1] https://developer.mozilla.org/en-US/Firefox/Releases/52#HTTP ***/ * [1] https://developer.mozilla.org/Firefox/Releases/52#HTTP ***/
user_pref("network.cookie.leave-secure-alone", true); user_pref("network.cookie.leave-secure-alone", true);
/*** 2800: SHUTDOWN [SETUP] /*** 2800: SHUTDOWN [SETUP]
@ -1617,7 +1626,7 @@ user_pref("browser.tabs.warnOnClose", false);
user_pref("browser.tabs.warnOnCloseOtherTabs", false); user_pref("browser.tabs.warnOnCloseOtherTabs", false);
user_pref("browser.tabs.warnOnOpen", false); user_pref("browser.tabs.warnOnOpen", false);
/* 3001a: disable warning when a domain requests full screen /* 3001a: disable warning when a domain requests full screen
* [1] https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode ***/ * [1] https://developer.mozilla.org/docs/Web/API/Fullscreen_API ***/
// user_pref("full-screen-api.warning.delay", 0); // user_pref("full-screen-api.warning.delay", 0);
// user_pref("full-screen-api.warning.timeout", 0); // user_pref("full-screen-api.warning.timeout", 0);
/* 3002: disable closing browser with last tab ***/ /* 3002: disable closing browser with last tab ***/
@ -1626,7 +1635,7 @@ user_pref("browser.tabs.closeWindowWithLastTab", false);
user_pref("browser.backspace_action", 2); user_pref("browser.backspace_action", 2);
/* 3005: disable autocopy default (linux) ***/ /* 3005: disable autocopy default (linux) ***/
// user_pref("clipboard.autocopy", false); // user_pref("clipboard.autocopy", false);
/* 3006: disable enforced add-on signing (FF43+) /* 3006: disable enforced extension signing (FF43+)
* [NOTE] Only applicable to Nightly and ESR (FF48+) * [NOTE] Only applicable to Nightly and ESR (FF48+)
* [1] https://wiki.mozilla.org/Add-ons/Extension_Signing#Documentation ***/ * [1] https://wiki.mozilla.org/Add-ons/Extension_Signing#Documentation ***/
// user_pref("xpinstall.signatures.required", false); // user_pref("xpinstall.signatures.required", false);
@ -1643,7 +1652,7 @@ user_pref("view_source.tab", false);
user_pref("layout.spellcheckDefault", 1); user_pref("layout.spellcheckDefault", 1);
/* 3013: disable automatic "Work Offline" status /* 3013: disable automatic "Work Offline" status
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=620472 * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=620472
* [2] https://developer.mozilla.org/en-US/docs/Online_and_offline_events ***/ * [2] https://developer.mozilla.org/docs/Online_and_offline_events ***/
user_pref("network.manage-offline-status", false); user_pref("network.manage-offline-status", false);
/* 3015: disable animations /* 3015: disable animations
* [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1352069 ***/ * [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1352069 ***/
@ -1722,7 +1731,7 @@ user_pref("network.websocket.enabled", false);
// user_pref("privacy.donottrackheader.value", 1); // user_pref("privacy.donottrackheader.value", 1);
// 2023: (37+) disable camera autofocus callback // 2023: (37+) disable camera autofocus callback
// The API will be superceded by the WebRTC Capture and Stream API // The API will be superceded by the WebRTC Capture and Stream API
// [1] https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/API/CameraControl/ // [1] https://developer.mozilla.org/docs/Archive/B2G_OS/API/CameraControl
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1107683 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1107683
user_pref("camera.control.autofocus_moving_callback.enabled", false); user_pref("camera.control.autofocus_moving_callback.enabled", false);
// 0415: (41+) disable reporting URLs (safe browsing) - removed or replaced by various // 0415: (41+) disable reporting URLs (safe browsing) - removed or replaced by various
@ -1772,11 +1781,11 @@ user_pref("browser.safebrowsing.provider.google.appRepURL", ""); // browser.safe
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1215796 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1215796
user_pref("security.tls.insecure_fallback_hosts.use_static_list", false); user_pref("security.tls.insecure_fallback_hosts.use_static_list", false);
// 2301: disable SharedWorkers // 2301: disable SharedWorkers
// [1] https://bugs.torproject.org/15562 // [1] https://trac.torproject.org/projects/tor/ticket/15562
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1207635 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1207635
user_pref("dom.workers.sharedWorkers.enabled", false); user_pref("dom.workers.sharedWorkers.enabled", false);
// 2403: disable scripts changing images // 2403: disable scripts changing images
// [TEST] http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_img_src2 // [TEST] https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_img_src2
// [WARNING] Will break some sites such as Google Maps and a lot of web apps // [WARNING] Will break some sites such as Google Maps and a lot of web apps
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=773429 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=773429
// user_pref("dom.disable_image_src_set", true); // user_pref("dom.disable_image_src_set", true);
@ -1817,7 +1826,7 @@ user_pref("toolkit.telemetry.unifiedIsOptIn", true); // (hidden pref)
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1236580 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1236580
user_pref("datareporting.healthreport.about.reportUrlUnified", "data:text/plain,"); user_pref("datareporting.healthreport.about.reportUrlUnified", "data:text/plain,");
// 0807: disable history manipulation // 0807: disable history manipulation
// [1] https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history // [1] https://developer.mozilla.org/docs/Web/API/History_API
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1249542 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1249542
user_pref("browser.history.allowPopState", false); user_pref("browser.history.allowPopState", false);
user_pref("browser.history.allowPushState", false); user_pref("browser.history.allowPushState", false);
@ -1831,7 +1840,7 @@ user_pref("browser.urlbar.unifiedcomplete", false);
// ***/ // ***/
/* FF49 /* FF49
// 0372: disable "Hello" // 0372: disable "Hello"
// [1] https://www.mozilla.org/en-US/privacy/firefox-hello/ // [1] https://www.mozilla.org/privacy/archive/hello/2016-03/
// [2] https://security.stackexchange.com/questions/94284/how-secure-is-firefox-hello // [2] https://security.stackexchange.com/questions/94284/how-secure-is-firefox-hello
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1287827 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1287827
user_pref("loop.enabled", false); user_pref("loop.enabled", false);
@ -1900,10 +1909,11 @@ user_pref("media.gmp-eme-adobe.autoupdate", false);
// [1] https://wiki.mozilla.org/WebAPI/Security/WebTelephony // [1] https://wiki.mozilla.org/WebAPI/Security/WebTelephony
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1309719 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1309719
user_pref("dom.telephony.enabled", false); user_pref("dom.telephony.enabled", false);
// 2502: disable Battery Status API. Initially a Linux issue (high precision readout) that // 2502: disable Battery Status API
// was fixed. However, it is still another metric for fingerprinting, used to raise entropy. // Initially a Linux issue (high precision readout) that was fixed.
// However, it is still another metric for fingerprinting, used to raise entropy.
// e.g. do you have a battery or not, current charging status, charge level, times remaining etc // e.g. do you have a battery or not, current charging status, charge level, times remaining etc
// [1] http://techcrunch.com/2015/08/04/battery-attributes-can-be-used-to-track-web-users/ // [1] https://techcrunch.com/2015/08/04/battery-attributes-can-be-used-to-track-web-users/
// [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1124127 // [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1124127
// [3] https://www.w3.org/TR/battery-status/ // [3] https://www.w3.org/TR/battery-status/
// [4] https://www.theguardian.com/technology/2016/aug/02/battery-status-indicators-tracking-online // [4] https://www.theguardian.com/technology/2016/aug/02/battery-status-indicators-tracking-online
@ -1973,7 +1983,7 @@ user_pref("dom.enable_user_timing", false);
// web pages. These parameters vary between types of keyboard layouts such as QWERTY, // web pages. These parameters vary between types of keyboard layouts such as QWERTY,
// AZERTY, Dvorak, and between various languages, e.g. German vs English. // AZERTY, Dvorak, and between various languages, e.g. German vs English.
// [WARNING] Don't use if Android + physical keyboard // [WARNING] Don't use if Android + physical keyboard
// [1] https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code // [1] https://developer.mozilla.org/docs/Web/API/KeyboardEvent/code
// [2] https://www.privacy-handbuch.de/handbuch_21v.htm // [2] https://www.privacy-handbuch.de/handbuch_21v.htm
// [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1352949 // [-] https://bugzilla.mozilla.org/show_bug.cgi?id=1352949
user_pref("dom.keyboardevent.code.enabled", false); user_pref("dom.keyboardevent.code.enabled", false);