\AppData\Local\Temp"); // [WINDOWS]
+// PREF: always ask how to handle new mimetypes
+// Enforce user interaction for greater security.
+// [SETTING] General>Files and Applications>What should Firefox do with other files
+user_pref("browser.download.always_ask_before_handling_new_types", true);
+
// PREF: disable downloads panel opening on every download
user_pref("browser.download.alwaysOpenPanel", false);
// PREF: disable adding downloads to the system's "recent documents" list
user_pref("browser.download.manager.addToRecentDocs", false);
-// PREF: enable user interaction for security by always asking how to handle new mimetypes
-// [SETTING] General>Files and Applications>What should Firefox do with other files
-user_pref("browser.download.always_ask_before_handling_new_types", true);
-
-// PREF: autohide the downloads button
-//user_pref("browser.download.autohideButton", true); // DEFAULT
-
/****************************************************************************
* SECTION: PDF *
****************************************************************************/
diff --git a/README.md b/README.md
index a2624f1..ccd0d64 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
[](https://hits.seeyoufarm.com)
# Betterfox :fox_face:
-[`about:config`](https://kb.mozillazine.org/About:config) tweaks to enhance [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/ "Firefox Homepage"). Files are updated as needed for your [user.js](https://kb.mozillazine.org/User.js_file#About_the_user.js_file).
+[about:config](https://support.mozilla.org/en-US/kb/about-config-editor-firefox) tweaks to enhance [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/).
## Made for everyday browsing
**A secure, blazing fast browsing experience. Without breakage.**
@@ -25,42 +25,39 @@ Betterfox is an opinionated preference list inspired by the [law of diminishing
| [Smoothfox](https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js) | Get Edge-like smooth scrolling on your favorite browser — or choose something more your style. |
| [user.js](https://github.com/yokoffing/Betterfox/blob/main/user.js) | All the essentials. None of the breakage. This is your `user.js`. |
-:bulb: `Fastfox`, `Securefox`, `Peskyfox`, and `Smoothfox` are guides to relevant prefs in Firefox. The `user.js` is curated from the options located in these documents. Please read the guides to understand the various options hidden in Firefox.
+`Fastfox`, `Securefox`, `Peskyfox`, and `Smoothfox` are guides to settings within Firefox.
-While Betterfox is designed to [set-and-forget](https://glosbe.com/en/en/set-and-forget), it contains plenty of options for those who like to tinker.
-
-## about:Defaults
-Easily adjust features by copying + pasting prefs to your personal file :thumbsup:
-
-Check out [Common Overrides](https://github.com/yokoffing/Betterfox/wiki/Common-Overrides) to customize your setup.
-
-## about:Privacy
-Betterfox is already a great balance of privacy and convenience. However, you can still play with a few settings.
-
-See [Optional Hardening](https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening) for suggestions.
+The `user.js` — a configuration file that controls Firefox settings — is curated from these guides.
## Getting started
*If you don't have it already: [Get Firefox](https://www.mozilla.org/en-US/firefox/all/#product-desktop-release)*
1) Download the user.js file [here](https://raw.githubusercontent.com/yokoffing/Betterfox/main/user.js) (Right click > `Save Link As…`).
-2) Open Firefox. In the URL bar, type `about:profiles` and press `Enter`.
-3) For the profile you want to use (or default), click `Open Folder` in the **Root Directory** section.
-4) Close Firefox. With the folder open, move the `user.js` file into the folder.
+2) Review [Common Overrides](https://github.com/yokoffing/Betterfox/wiki/Common-Overrides) and make any necessary changes.
+3) Open Firefox. In the URL bar, type `about:profiles` and press `Enter`.
+4) For the profile you want to use (or use default), click `Open Folder` in the **Root Directory** section.
+5) Move the `user.js` file into the folder.
*After restarting Firefox:*
1) Get an **ad blocker** like [uBlock Origin](https://addons.mozilla.org/blog/ublock-origin-everything-you-need-to-know-about-the-ad-blocker/) with our [recommended filters](https://github.com/yokoffing/filterlists#guidelines). For a simple solution, use [Ghostery](https://addons.mozilla.org/en-US/firefox/addon/ghostery/).
3) Enable **DNS-level protection** with [NextDNS](https://nextdns.io/?from=xujj63g5), and check out our configuration [guide](https://github.com/yokoffing/NextDNS-Config).
* See how to [quickly enable](https://support.mozilla.org/en-US/kb/dns-over-https) **secure DNS** in Firefox.
+## about:Privacy
+Betterfox is a great balance of privacy and convenience.
+
+See [Optional Hardening](https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening) for other suggestions.
+
## Recognition
### Browser Integration
-* [Waterfox](https://github.com/WaterfoxCo/Waterfox/commit/735d8067b06cca00b9b04b5a6bcd0c1414118f95) | [files](https://github.com/WaterfoxCo/Waterfox/tree/future/waterfox/browser/app/profile) (August 2023)
+* [Waterfox](https://github.com/WaterfoxCo/Waterfox/releases/tag/G6.0b3) | [files](https://github.com/WaterfoxCo/Waterfox/tree/future/waterfox/browser/app/profile) (August 2023)
* [Floorp](https://github.com/Floorp-Projects/Floorp#-betterfox) [1](https://github.com/Floorp-Projects/Floorp/issues/233#issuecomment-1543557167) [2](https://blog.ablaze.one/3135/2023-04-01/) | [files](https://github.com/Floorp-Projects/Floorp/blob/f63e87016d88535aafa2b57d690442b9a69cbaa5/toolkit/content/license.html#L200-L224) (April 2023)
* [Pulse](https://github.com/pulse-browser/browser#%EF%B8%8F-credits) | [files](https://github.com/pulse-browser/browser/tree/alpha/src/browser/app/profile) (Dec 2021)
* [Ghostery Private Browser](https://github.com/ghostery/user-agent-desktop#community) [1](https://web.archive.org/web/20210509171835/https://www.ghostery.com/ghostery-dawn-update-more/) [2](https://web.archive.org/web/20210921114333/https://www.ghostery.com/ghostery-dawn-product-update/) | [files](https://github.com/ghostery/user-agent-desktop/tree/main/brands/ghostery/branding/pref) (Feb 2021)
### YouTube
+* [Ukrainian] [Firefox is NOT private. I show how to fix it.](https://youtu.be/mVBxBPwI_gE?si=CdPhYN8OezQbvazX&t=222) (Aug 2023)
* [The ULTIMATE Browser Tier List](https://youtu.be/j5r6jFE8gic?t=560) (Mar 2023)
* [I Hate Firefox. But I'm Still Switching Back to It.](https://youtu.be/w0SJFED5xK0?t=220) (Nov 2022)
* [Español] [Optimize and Accelerate Firefox](https://www.youtube.com/watch?v=3XtoONmq5_Q) (Nov 2022)
@@ -84,16 +81,16 @@ See [Optional Hardening](https://github.com/yokoffing/Betterfox/wiki/Optional-Ha
* “I use this one ... The performance is absolutely amazing. There’s definitely a huge difference when it comes to loading sites.” - [DIRIKtv](https://youtu.be/N8IOJiOFVEk?t=16)
* "BetterFox ... will provide good-enough privacy and help with performance." - [Qdoit12Super](https://old.reddit.com/r/browsers/comments/139h4my/suggestion_for_finding_3_good_privacy_focus/jj3n3qn/?context=2)
* "...drastically changed the experience with Firefox for me. Improved speed, security, smoothness, and removed clutter." - [AppDate](https://www.appdate.lk/technology/2023-browser-showdown/#:~:text=Used%20the%20BetterFox%20user%20config%20settings%20with%20some%20overrides%20which%20drastically%20changed%20the%20experience)
+* "I don't think I could use Firefox without Betterfox." - [Professional_Fun4616](https://old.reddit.com/r/nextdns/comments/15y815f/the_people_behind_betterfox_have_this_awesome/jxb7cir/?context=3)
+* "The best collection of tweaks available." - [AuRiMaS](https://old.reddit.com/r/MozillaFirefox/comments/15cc1vk/about_changes_in_aboutconfig/jtyx910/?context=3)
* "FF is now much snappier! Thanks a lot for the suggestions!" - [whotheff](https://old.reddit.com/r/firefox/comments/z5auzi/firefox_not_properly_usingrecognizing_gpu_poor/iy36hyz/)
-* "...a good balance between privacy and convenience." - [Radplay](https://old.reddit.com/r/firefox/comments/115va7d/list_of_aboutconfiguserjs_privacy_tweaks/j9700bc/?context=2)
-* "The best collection of tweaks available ... doesn't go crazy with privacy/security hardening that completely breaks the usability of Firefox for most users." - [AuRiMaS](https://old.reddit.com/r/MozillaFirefox/comments/15cc1vk/about_changes_in_aboutconfig/jtyx910/?context=3)
* "...the experience is so good now I don’t think I’ll go back to any of the chromium based browsers." - [Mr_Compromise](https://old.reddit.com/r/pcmasterrace/comments/zwioe1/what_browser_will_you_be_using_in_2023_please/j1wmbxo/)
## Support
-If you like the project and benefit from it, leave a :star: (top right) and become a [stargazer](https://github.com/yokoffing/Betterfox/stargazers)!
+If you like the project, leave a :star: (top right) and become a [stargazer](https://github.com/yokoffing/Betterfox/stargazers)!
-[](https://github.com/yokoffing/Betterfox/stargazers)
+[](https://github.com/yokoffing/Betterfox/stargazers)
## Credit
@@ -101,7 +98,7 @@ If you like the project and benefit from it, leave a :star: (top right) and beco
* This repository benefits from the ongoing research provided by [arkenfox](https://github.com/arkenfox/user.js).
-* Appreciation goes to the [Firefox](https://www.mozilla.org/en-US/firefox/new/) team and the developers working on [Bugzilla](https://bugzilla.mozilla.org/home), fighting for the open web.
+* Appreciation goes to the [Firefox](https://www.mozilla.org/en-US/firefox/new/) team and developers working on [Bugzilla](https://bugzilla.mozilla.org/home), fighting for the open web.
* A special thanks to [Alex Kontos](https://github.com/MrAlex94) of [Waterfox](https://github.com/WaterfoxCo/Waterfox) for his collaboration in v.116.
* Many thanks to the 2021 [Ghostery](https://github.com/ghostery) team for testing Betterfox at scale in its early days.
diff --git a/Securefox.js b/Securefox.js
index 107e0cd..084c9c8 100644
--- a/Securefox.js
+++ b/Securefox.js
@@ -15,6 +15,7 @@
// Tracking Content blocking will strip cookies and block all resource requests to domains listed in Disconnect.me.
// Firefox deletes all stored site data (incl. cookies, browser storage) if the site is a known tracker and hasn’t
// been interacted with in the last 30 days.
+// [ALLOWLIST] https://disconnect.me/trackerprotection/unblocked
// [NOTE] FF86: "Strict" tracking protection enables dFPI.
// [1] https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop
// [2] https://www.reddit.com/r/firefox/comments/l7xetb/network_priority_for_firefoxs_enhanced_tracking/gle2mqn/?web2x&context=3
@@ -31,25 +32,22 @@ user_pref("browser.contentblocking.category", "strict");
//user_pref("network.http.referer.disallowCrossSiteRelaxingDefault.pbmode", true); // DEFAULT
//user_pref("network.http.referer.disallowCrossSiteRelaxingDefault.pbmode.top_navigation", true); // DEFAULT
//user_pref("network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation", true); // enabled with "Strict"
-
-// PREF: relax blocklist for ETP Strict
-// Using a less aggressive internal blocklist to mitigate site breakage.
-// This is easier than adjusting prefs for ETP Custom.
-// [NOTE] Sadly, this does not work on NIGHTLY; you must use Custom and adjust prefs individually.
-// [ALLOWLIST] https://disconnect.me/trackerprotection/unblocked
-//user_pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cm,fp,stp,emailTP,emailTPPrivate,lvl1,rp,rpTop,ocsp,qps,qpsPBM");
+//user_pref("privacy.annotate_channels.strict_list.enabled", true); // enabled with "Strict"
+ //user_pref("privacy.annotate_channels.strict_list.pbmode.enabled", true); // DEFAULT
// PREF: query stripping
// Currently uses a small list [1]
// We set the same query stripping list that Brave and LibreWolf uses [2]
// If using uBlock Origin or AdGuard, use filter lists as well [3]
+// Query parameters stripped [5]
// [1] https://www.eyerys.com/articles/news/how-mozilla-firefox-improves-privacy-using-query-parameter-stripping-feature
// [2] https://github.com/brave/brave-core/blob/f337a47cf84211807035581a9f609853752a32fb/browser/net/brave_site_hacks_network_delegate_helper.cc
// [3] https://github.com/yokoffing/filterlists#url-tracking-parameters
+// [4] https://bugzilla.mozilla.org/show_bug.cgi?id=1706607
+// [5] https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/query-stripping/records
//user_pref("privacy.query_stripping.enabled", true); // enabled with "Strict"
//user_pref("privacy.query_stripping.enabled.pbmode", true); // enabled with "Strict"
-user_pref("privacy.query_stripping.strip_list", "__hsfp __hssc __hstc __s _hsenc _openstat dclid fbclid gbraid gclid hsCtaTracking igshid mc_eid ml_subscriber ml_subscriber_hash msclkid oft_c oft_ck oft_d oft_id oft_ids oft_k oft_lk oft_sk oly_anon_id oly_enc_id rb_clickid s_cid twclid vero_conv vero_id wbraid wickedid yclid");
-//user_pref("privacy.query_stripping.strip_on_share.enabled", true); // DEFAULT [FF115+]
+//user_pref("privacy.query_stripping.strip_on_share.enabled", true);
// PREF: allow embedded tweets, Instagram and Reddit posts, and TikTok embeds
// [TEST - reddit embed] https://www.pcgamer.com/amazing-halo-infinite-bugs-are-already-rolling-in/
@@ -117,7 +115,7 @@ user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.
//user_pref("privacy.partition.network_state", true); // DEFAULT
//user_pref("privacy.partition.serviceWorkers", true); // [DEFAULT: true FF105+]
//user_pref("privacy.partition.network_state.ocsp_cache", true); // enabled with "Strict"
- //user_pref("privacy.partition.bloburl_per_agent_cluster", true); [REGRESSIONS]
+ //user_pref("privacy.partition.bloburl_per_agent_cluster", false); // DEFAULT [REGRESSIONS - DO NOT TOUCH]
// enable APS (Always Partitioning Storage) [FF104+]
//user_pref("privacy.partition.always_partition_third_party_non_cookie_storage", true); // [DEFAULT: true FF109+]
//user_pref("privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage", false); // [DEFAULT: false FF109+]
@@ -139,11 +137,18 @@ user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.
//user_pref("privacy.purge_trackers.enabled", true); // DEFAULT
// PREF: SameSite Cookies
-// [1] https://hacks.mozilla.org/2020/08/changes-to-samesite-cookie-behavior/
-// [2] https://web.dev/samesite-cookies-explained/
-//user_pref("network.cookie.sameSite.laxByDefault", false); // DEFAULT
-//user_pref("network.cookie.sameSite.noneRequiresSecure", true); // DEFAULT
-//user_pref("network.cookie.sameSite.schemeful", false); // DEFAULT
+// [1] https://caniuse.com/?search=samesite
+// [2] https://github.com/arkenfox/user.js/issues/1640#issuecomment-1464093950
+// [3] https://support.mozilla.org/en-US/questions/1364032
+// [4] https://blog.mozilla.org/security/2018/04/24/same-site-cookies-in-firefox-60/
+// [5] https://hacks.mozilla.org/2020/08/changes-to-samesite-cookie-behavior/
+// [6] https://web.dev/samesite-cookies-explained/
+// [7] https://portswigger.net/web-security/csrf/bypassing-samesite-restrictions
+// [8] https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
+// [TEST] https://samesite-sandbox.glitch.me/
+//user_pref("network.cookie.sameSite.laxByDefault", true);
+//user_pref("network.cookie.sameSite.noneRequiresSecure", true);
+//user_pref("network.cookie.sameSite.schemeful", true);
// PREF: Hyperlink Auditing (click tracking)
//user_pref("browser.send_pings", false); // DEFAULT
@@ -255,6 +260,10 @@ user_pref("security.cert_pinning.enforcement_level", 2);
//user_pref("security.enterprise_roots.enabled", false); // DEFAULT
//user_pref("security.certerrors.mitm.auto_enable_enterprise_roots", false);
+// PREF: disable Microsoft Family Safety [WINDOWS 8-10]
+// [1] https://wiki.mozilla.org/QA/Windows_Child_Mode
+//user_pref("security.family_safety.mode", 0);
+
/****************************************************************************
* SECTION: SSL (Secure Sockets Layer) / TLS (Transport Layer Security) *
****************************************************************************/
@@ -285,13 +294,13 @@ user_pref("security.ssl.require_safe_negotiation", true);
// [TEST] https://expired.badssl.com/
user_pref("browser.xul.error_pages.expert_bad_cert", true);
-// PREF: disable TLS 1.3 0-RTT (round-trip time) [FF51+]
+// PREF: disable 0-RTT (round-trip time) to improve TLS 1.3 security [FF51+]
// This data is not forward secret, as it is encrypted solely under keys derived using
// the offered PSK. There are no guarantees of non-replay between connections.
// [1] https://github.com/tlswg/tls13-spec/issues/1001
// [2] https://www.rfc-editor.org/rfc/rfc9001.html#name-replay-attacks-with-0-rtt
// [3] https://blog.cloudflare.com/tls-1-3-overview-and-q-and-a/
-user_pref("security.tls.enable_0rtt_data", false); // disable 0 RTT to improve tls 1.3 security
+user_pref("security.tls.enable_0rtt_data", false);
/****************************************************************************
* SECTION: FONTS *
@@ -552,9 +561,14 @@ user_pref("network.IDN_show_punycode", true);
******************************************************************************/
// PREF: HTTPS-First Policy
-// Firefox attempts to make all connections to websites secure, and falls back to insecure
-// connections only when a website does not support it. Unlike HTTPS-Only Mode, Firefox
-// will NOT ask for your permission before connecting to a website that doesn’t support secure connections.
+// Firefox attempts to make all connections to websites secure,
+// and falls back to insecure connections only when a website
+// does not support it. Unlike HTTPS-Only Mode, Firefox
+// will NOT ask for your permission before connecting to a website
+// that doesn’t support secure connections.
+// As of August 2023, Google estimates that 5-10% of traffic
+// has remained on HTTP, allowing attackers to eavesdrop
+// on or change that data [6].
// [NOTE] HTTPS-Only Mode needs to be disabled for HTTPS First to work.
// [TEST] http://example.com [upgrade]
// [TEST] http://httpforever.com/ [no upgrade]
@@ -563,6 +577,7 @@ user_pref("network.IDN_show_punycode", true);
// [3] https://github.com/brave/adblock-lists/blob/master/brave-lists/https-upgrade-exceptions-list.txt
// [4] https://web.dev/why-https-matters/
// [5] https://www.cloudflare.com/learning/ssl/why-use-https/
+// [6] https://blog.chromium.org/2023/08/towards-https-by-default.html
user_pref("dom.security.https_first", true);
//user_pref("dom.security.https_first_pbm", true); // DEFAULT
@@ -570,24 +585,30 @@ user_pref("dom.security.https_first", true);
* SECTION: HTTPS-ONLY MODE *
******************************************************************************/
-// Firefox displays a warning page if HTTPS is not supported by a server. Options to use HTTP are then provided.
-// [NOTE] When "https_only_mode" (all windows) is true, "https_only_mode_pbm" (private windows only) is ignored.
+// Firefox displays a warning page if HTTPS is not supported
+// by a server. Options to use HTTP are then provided.
+// [NOTE] When "https_only_mode" (all windows) is true,
+// "https_only_mode_pbm" (private windows only) is ignored.
+// As of August 2023, Google estimates that 5-10% of traffic
+// has remained on HTTP, allowing attackers to eavesdrop
+// on or change that data [5].
// [SETTING] to add site exceptions: Padlock>HTTPS-Only mode>On/Off/Off temporarily
// [SETTING] Privacy & Security>HTTPS-Only Mode
// [TEST] http://example.com [upgrade]
// [TEST] http://httpforever.com/ [no upgrade]
-// [TEST] http://speedofanimals.com [no upgrade]
// [1] https://bugzilla.mozilla.org/1613063
// [2] https://blog.mozilla.org/security/2020/11/17/firefox-83-introduces-https-only-mode/
// [3] https://web.dev/why-https-matters/
// [4] https://www.cloudflare.com/learning/ssl/why-use-https/
+// [5] https://blog.chromium.org/2023/08/towards-https-by-default.html
// PREF: enable HTTPS-only Mode
//user_pref("dom.security.https_only_mode_pbm", true); // Private Browsing windows only
//user_pref("dom.security.https_only_mode", true); // Normal + Private Browsing windows
// PREF: offer suggestion for HTTPS site when available
-// [1] https://twitter.com/leli_gibts_scho/status/1371458534186057731
+// [1] https://twitter.com/leli_gibts_scho/status/1371463866606059528
+// [TEST] http://speedofanimals.com/
user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
// PREF: HTTP background requests in HTTPS-only Mode
@@ -611,22 +632,23 @@ user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
// PREF: DNS-over-HTTPS (DoH) mode
// Mozilla uses Cloudfare by default. NextDNS is also an option.
-// [NOTE] You can set this to 0 if you are already using secure DNS for your entire network (e.g. OS-level, router-level).
+// You can set this to 0 if you are already using secure DNS for
+// your entire network (e.g. OS-level, router-level).
+// [NOTE] Mode 3 has site-exceptions with a nice UI on the error page
// [1] https://hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/
// [2] https://www.internetsociety.org/blog/2018/12/dns-privacy-support-in-mozilla-firefox/
-// 0=Disable DoH (default)
-// 2=Use DoH; fall back to traditional DNS if necessary
-// 3=Only use DoH; do not fall back to traditional DNS
-// 5=Explicitly disable DoH
+// 0=disable DoH (default)
+// 2=use DoH; fall back to native DNS if necessary
+// 3=only use DoH; do not fall back to native DNS
+// 5=explicitly disable DoH
//user_pref("network.trr.mode", 0); // DEFAULT
-// PREF: DoH fallback warning page
-// Whether DoH fallback warning page will be displayed when DoH doesn't work in TRR first mode.
-//user_pref("network.trr.display_fallback_warning", false); // DEFAULT;
-// Show the checkbox to enable the fallback warning page in the settings UI
- //user_pref("network.trr_ui.show_fallback_warning_option", false); // DEFAULT; show the checkbox to enable the fallback warning page in the settings UI
+// PREF: display fallback warning page [FF115+]
+// Show a warning checkbox UI in modes 0 + 2.
+//user_pref("network.trr_ui.show_fallback_warning_option", false); // DEFAULT
+//user_pref("network.trr.display_fallback_warning", false); // DEFAULT
-// PREF: enable fallback to native DNS upon network errors
+// PREF: fallback to native DNS upon network errors
//user_pref("network.trr.strict_native_fallback", false); // DEFAULT
// PREF: DoH resolver
@@ -634,14 +656,17 @@ user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
//user_pref("network.trr.uri", "https://xxxx/dns-query");
//user_pref("network.trr.custom_uri", "https://xxxx/dns-query");
-// PREF: EDNS Client Subnet DNS extension (DNSSEC validation)
-// When set to false, TRR asks the resolver to enable EDNS Client Subnet (ECS).
-// [WARNING] Some websites won't resolve when enabled, usually due to
-// misconfiguration on the part of the domain owner.
-// [NOTE] DNSSEC is not needed if you’re using DoH, as long as you trust the
-// DoH resolver to perform DNSSEC validation correctly. However, if you don’t
-// trust the DoH resolver, you may still want to use DNSSEC along with DoH [1].
-// [1] https://docs.controld.com/docs/disable-dnssec-option
+// PREF: adjust providers
+//user_pref("network.trr.resolvers", '[{ "name": "Cloudflare", "url": "https://mozilla.cloudflare-dns.com/dns-query" },{ "name": "SecureDNS", "url": "https://doh.securedns.eu/dns-query" },{ "name": "AppliedPrivacy", "url": "https://doh.appliedprivacy.net/query" },{ "name": "Digitale Gesellschaft (CH)", "url": "https://dns.digitale-gesellschaft.ch/dns-query" }, { "name": "Quad9", "url": "https://dns.quad9.net/dns-query" }]');
+
+// PREF: EDNS Client Subnet (ECS)
+// [WARNING] In some circumstances, enabling ECS may result
+// in suboptimal routing between CDN origins and end users [2].
+// [NOTE] You will also need to enable this with your
+// DoH provider most likely.
+// [1] https://en.wikipedia.org/wiki/EDNS_Client_Subnet
+// [2] https://www.quad9.net/support/faq/#edns
+// [3] https://datatracker.ietf.org/doc/html/rfc7871
//user_pref("network.trr.disable-ECS", true); // DEFAULT
// PREF: DNS Rebind Protection
@@ -650,10 +675,10 @@ user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
// [1] https://docs.controld.com/docs/dns-rebind-option
//user_pref("network.trr.allow-rfc1918", false); // DEFAULT
-// PREF: Assorted Options
+// PREF: assorted options
//user_pref("network.trr.confirmationNS", "skip"); // skip undesired DOH test connection
//user_pref("network.dns.skipTRR-when-parental-control-enabled", false); // bypass parental controls when using DoH
-//user_pref("network.trr.skip-AAAA-when-not-supported", true); DEFAULT; If Firefox detects that your system does not have IPv6 connectivity, it will not request IPv6 addresses from the DoH server
+//user_pref("network.trr.skip-AAAA-when-not-supported", true); // DEFAULT; If Firefox detects that your system does not have IPv6 connectivity, it will not request IPv6 addresses from the DoH server
//user_pref("network.trr.clear-cache-on-pref-change", true); // DEFAULT; DNS+TRR cache will be cleared when a relevant TRR pref changes
//user_pref("network.trr.wait-for-portal", false); // DEFAULT; set this to true to tell Firefox to wait for the captive portal detection before TRR is used
@@ -661,17 +686,16 @@ user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
//user_pref("network.trr.excluded-domains", ""); // DEFAULT; comma-separated list of domain names to be resolved using the native resolver instead of TRR. This pref can be used to make /etc/hosts works with DNS over HTTPS in Firefox.
//user_pref("network.trr.builtin-excluded-domains", "localhost,local"); // DEFAULT; comma-separated list of domain names to be resolved using the native resolver instead of TRR
-// PREF: enable Oblivious DoH setup (Cloudfare) [HIDDEN]
-// [1] https://www.reddit.com/r/firefox/comments/xc9y4g/how_to_enable_oblivious_doh_odoh_for_enhanced_dns/
-// [2] https://blog.cloudflare.com/oblivious-dns/
-// [3] https://techpp.com/2020/12/14/odoh-oblivious-dns-over-https-explained/
+// PREF: Oblivious HTTP (OHTTP)
+// Enable DNS over Oblivious HTTP.
+// [1] https://blog.cloudflare.com/stronger-than-a-promise-proving-oblivious-http-privacy-properties/
+// [2] https://www.ietf.org/archive/id/draft-thomson-http-oblivious-01.html
+// [3] https://old.reddit.com/r/dnscrypt/comments/11ukt43/what_is_dns_over_oblivious_http_targetrelay/ji1nl0m/?context=3
//user_pref("network.trr.mode", 2);
-//user_pref("network.trr.odoh.enabled", true);
-//user_pref("network.trr.odoh.configs_uri", "https://odoh.cloudflare-dns.com/.well-known/odohconfigs");
-//user_pref("network.trr.odoh.target_host", "https://odoh.cloudflare-dns.com/");
-//user_pref("network.trr.odoh.target_path", "dns-query");
-//user_pref("network.trr.odoh.proxy_uri", "https://odoh1.surfdomeinen.nl/proxy");
-//user_pref("network.trr.odoh.min_ttl", 86400); // 1 day
+//user_pref("network.trr.ohttp.config_uri", "https://dooh.cloudflare-dns.com/.well-known/doohconfig");
+//user_pref("network.trr.ohttp.uri", "https://dooh.cloudflare-dns.com/dns-query");
+//user_pref("network.trr.ohttp.relay_uri", "https://dooh.waterfox.net/");
+//user_pref("network.trr.use_ohttp", true);
/******************************************************************************
* SECTION: ESNI / ECH *
@@ -691,14 +715,8 @@ user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
******************************************************************************/
// PREF: disable IPv6
-// IPv6 can be abused, especially with MAC addresses, and can leak with VPNs: assuming
-// your ISP and/or router and/or website is IPv6 capable. Most sites will fall back to IPv4
-// [STATS] Firefox telemetry (Sept 2022) shows ~8% of all successful connections are IPv6
-// [NOTE] This is an application level fallback. Disabling IPv6 is best done at an
-// OS/network level, and/or configured properly in VPN setups. If you are not masking your IP,
-// then this won't make much difference. If you are masking your IP, then it can only help.
-// [NOTE] However, many VPN options now provide IPv6 coverage.
-// [NOTE] PHP defaults to IPv6 with "localhost". Use "php -S 127.0.0.1:PORT"
+// If you are not masking your IP, then this won't make much difference.
+// And some VPNs now cover IPv6.
// [TEST] https://ipleak.org/
// [1] https://www.internetsociety.org/tag/ipv6-security/ (Myths 2,4,5,6)
//user_pref("network.dns.disableIPv6", true);
@@ -724,6 +742,9 @@ user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
// [3] https://en.wikipedia.org/wiki/GIO_(software)
//user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF]
+// PREF: disable check for proxies
+//user_pref("network.notify.checkForProxies", false);
+
/******************************************************************************
* SECTION: PASSWORDS *
******************************************************************************/
@@ -786,8 +807,9 @@ user_pref("signon.rememberSignons", false); // Privacy & Security>Logins and Pas
user_pref("editor.truncate_user_pastes", false);
// PREF: reveal password icon
-//user_pref("layout.forms.reveal-password-button.enabled", true); // always show icon in password fields
//user_pref("layout.forms.reveal-password-context-menu.enabled", true); // right-click menu option; DEFAULT [FF112]
+// [DO NOT TOUCH] Icons will double-up if the website implements it natively:
+//user_pref("layout.forms.reveal-password-button.enabled", true); // always show icon in password fields
/****************************************************************************
* SECTION: ADDRESS + CREDIT CARD MANAGER *
@@ -804,6 +826,8 @@ user_pref("extensions.formautofill.creditCards.enabled", false);
* SECTION: MIXED CONTENT + CROSS-SITE *
******************************************************************************/
+// [TEST] https://mixed-script.badssl.com/
+
// PREF: limit (or disable) HTTP authentication credentials dialogs triggered by sub-resources
// Hardens against potential credentials phishing.
// 0=don't allow sub-resources to open HTTP authentication credentials dialogs
@@ -816,7 +840,7 @@ user_pref("network.auth.subresource-http-auth-allow", 1);
// [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1695693,1719301
//user_pref("network.http.windows-sso.enabled", false);
-// PREF: block insecure active content (scripts) on HTTPS pages.
+// PREF: block insecure active content (scripts) on HTTPS pages
// [1] https://trac.torproject.org/projects/tor/ticket/21323
//user_pref("security.mixed_content.block_active_content", true); // DEFAULT
@@ -871,16 +895,6 @@ user_pref("permissions.delegation.enabled", false);
* SECTION: HEADERS / REFERERS *
******************************************************************************/
-// PREF: HTTP Referrer Header
-// [NOTE] Only cross-origin referers need control.
-// See network.http.referer.XOriginPolicy.
-// This may cause breakage where third party images and videos
-// may not load, and with authentication on sites such as banks.
-// 0 = Never send
-// 1 = Send only when clicking on links and similar elements
-// 2 = Send on all requests (default)
-//user_pref("network.http.sendRefererHeader", 2); // DEFAULT
-
// PREF: default referrer policy (used unless overriden by the site)
// 0=no-referrer, 1=same-origin, 2=strict-origin-when-cross-origin (default),
// 3=no-referrer-when-downgrade
@@ -898,12 +912,15 @@ user_pref("permissions.delegation.enabled", false);
//user_pref("network.http.referer.defaultPolicy.trackers", 1);
//user_pref("network.http.referer.defaultPolicy.trackers.pbmode", 1);
-// PREF: control the amount of cross-origin information to send
-// Controls how much referrer to send across origins (different domains).
-// 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port
-// [1] https://blog.mozilla.org/security/2021/03/22/firefox-87-trims-http-referrers-by-default-to-protect-user-privacy/
-// [2] https://web.dev/referrer-best-practices/
-user_pref("network.http.referer.XOriginTrimmingPolicy", 2);
+// PREF: HTTP Referrer Header
+// [NOTE] Only cross-origin referers need control.
+// See network.http.referer.XOriginPolicy.
+// This may cause breakage where third party images and videos
+// may not load, and with authentication on sites such as banks.
+// 0 = Never send
+// 1 = Send only when clicking on links and similar elements
+// 2 = Send on all requests (default)
+//user_pref("network.http.sendRefererHeader", 2); // DEFAULT
// PREF: control when to send a cross-origin referer
// Controls whether or not to send a referrer across different sites.
@@ -918,6 +935,13 @@ user_pref("network.http.referer.XOriginTrimmingPolicy", 2);
// [2] https://web.dev/referrer-best-practices/
//user_pref("network.http.referer.XOriginPolicy", 0); // DEFAULT
+// PREF: control the amount of cross-origin information to send
+// Controls how much referrer to send across origins (different domains).
+// 0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port
+// [1] https://blog.mozilla.org/security/2021/03/22/firefox-87-trims-http-referrers-by-default-to-protect-user-privacy/
+// [2] https://web.dev/referrer-best-practices/
+user_pref("network.http.referer.XOriginTrimmingPolicy", 2);
+
/******************************************************************************
* SECTION: CONTAINERS *
******************************************************************************/
@@ -980,15 +1004,17 @@ user_pref("media.peerconnection.ice.default_address_only", true);
// PREF: disable all DRM content (EME: Encryption Media Extension)
// EME is a JavaScript API for playing DRMed (not free) video content in HTML.
-// A DRM component called a Content Decryption Module (CDM) decrypts, decodes, and displays the video.
+// A DRM component called a Content Decryption Module (CDM) decrypts,
+// decodes, and displays the video.
// e.g. Netflix, Amazon Prime, Hulu, HBO, Disney+, Showtime, Starz, DirectTV
+// DRM is a propriety and closed source, but disabling is overkill.
// [SETTING] General>DRM Content>Play DRM-controlled content
// [TEST] https://bitmovin.com/demos/drm
// [1] https://www.eff.org/deeplinks/2017/10/drms-dead-canary-how-we-just-lost-web-what-we-learned-it-and-what-we-need-do-next
// [2] https://www.reddit.com/r/firefox/comments/10gvplf/comment/j55htc7
//user_pref("media.eme.enabled", false);
-// Optionally, hide the setting which also disables the DRM prompt:
-//user_pref("browser.eme.ui.enabled", false);
+ // Optionally, hide the setting which also disables the DRM prompt:
+ //user_pref("browser.eme.ui.enabled", false);
/******************************************************************************
* SECTION: VARIOUS *
@@ -1021,6 +1047,8 @@ user_pref("media.peerconnection.ice.default_address_only", true);
// [2] https://wiki.mozilla.org/Security/Safe_Browsing
// [3] https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work
// [4] https://educatedguesswork.org/posts/safe-browsing-privacy/
+// [5] https://www.google.com/chrome/privacy/whitepaper.html#malware
+// [6] https://security.googleblog.com/2022/08/how-hash-based-safe-browsing-works-in.html
// PREF: Safe Browsing
// [WARNING] Be sure to have alternate security measures if you disable SB! Adblockers do not count!
@@ -1038,7 +1066,7 @@ user_pref("media.peerconnection.ice.default_address_only", true);
// [10] https://github.com/brave/brave-browser/wiki/Deviations-from-Chromium-(features-we-disable-or-remove)#services-we-proxy-through-brave-servers
//user_pref("browser.safebrowsing.malware.enabled", false); // all checks happen locally
//user_pref("browser.safebrowsing.phishing.enabled", false); // all checks happen locally
- //user_pref("browser.safebrowsing.blockedURIs.enabled", false);
+//user_pref("browser.safebrowsing.blockedURIs.enabled", false); // all checks happen locally
//user_pref("browser.safebrowsing.provider.google4.gethashURL", "");
//user_pref("browser.safebrowsing.provider.google4.updateURL", "");
//user_pref("browser.safebrowsing.provider.google.gethashURL", "");
@@ -1079,7 +1107,7 @@ user_pref("browser.safebrowsing.downloads.remote.enabled", false);
// Disable it if you’re not using any type of physical impairment assistive software.
// [1] https://support.mozilla.org/kb/accessibility-services
// [2] https://www.ghacks.net/2021/08/25/firefox-tip-turn-off-accessibility-services-to-improve-performance/
-// [3] https://www.troddit.com/r/firefox/comments/p8g5zd/why_does_disabling_accessibility_services_improve
+// [3] https://www.reddit.com/r/firefox/comments/p8g5zd/why_does_disabling_accessibility_services_improve
// [4] https://winaero.com/firefox-has-accessibility-service-memory-leak-you-should-disable-it/
// [5] https://www.ghacks.net/2022/12/26/firefoxs-accessibility-performance-is-getting-a-huge-boost/
user_pref("accessibility.force_disabled", 1);
@@ -1247,8 +1275,9 @@ user_pref("network.captive-portal-service.enabled", false);
user_pref("network.connectivity-service.enabled", false);
// PREF: software that continually reports what default browser you are using [WINDOWS]
-// [WARNING] Breaks "Make Default..." button in Preferences to set Firefox as the default browser [1].
-// [1] https://github.com/yokoffing/Betterfox/issues/166
+// [WARNING] Breaks "Make Default..." button in Preferences to set Firefox as the default browser [2].
+// [1] https://techdows.com/2020/04/what-is-firefox-default-browser-agent-and-how-to-disable-it.html
+// [2] https://github.com/yokoffing/Betterfox/issues/166
//user_pref("default-browser-agent.enabled", false);
// PREF: "report extensions for abuse"
@@ -1267,5 +1296,17 @@ user_pref("browser.ping-centre.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry", false);
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
-// PREF: disable check for proxies
-//user_pref("network.notify.checkForProxies", false);
+// PREF: assorted telemetry
+// [NOTE] Shouldn't be needed for user.js, but browser forks
+// may want to disable these prefs.
+//user_pref("doh-rollout.disable-heuristics", true); // ensure DoH doesn't get enabled automatically
+//user_pref("dom.security.unexpected_system_load_telemetry_enabled", false);
+//user_pref("messaging-system.rsexperimentloader.enabled", false);
+//user_pref("network.trr.confirmation_telemetry_enabled", false);
+//user_pref("security.app_menu.recordEventTelemetry", false);
+//user_pref("security.certerrors.mitm.priming.enabled", false);
+//user_pref("security.certerrors.recordEventTelemetry", false);
+//user_pref("security.protectionspopup.recordEventTelemetry", false);
+//user_pref("signon.recipes.remoteRecipes.enabled", false);
+//user_pref("security.identitypopup.recordEventTelemetry", false); // ESR only; removed FF116+ [1]
+// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1837979
diff --git a/librewolf.overrides.cfg b/librewolf.overrides.cfg
index a2c0d83..ef034f5 100644
--- a/librewolf.overrides.cfg
+++ b/librewolf.overrides.cfg
@@ -16,6 +16,10 @@
* README: https://github.com/yokoffing/Betterfox/blob/main/README.md *
****************************************************************************/
+// Better off just using a user.js file:
+// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41963
+// [2] https://github.com/arkenfox/user.js/issues/1695#issuecomment-1666505218
+
// Where do I find my librewolf.overrides.cfg? https://librewolf.net/docs/settings/#where-do-i-find-my-librewolfoverridescfg
// LibreWolf default prefs: https://gitlab.com/librewolf-community/settings/-/blob/master/librewolf.cfg
diff --git a/policies.json b/policies.json
new file mode 100644
index 0000000..28a0861
--- /dev/null
+++ b/policies.json
@@ -0,0 +1,80 @@
+{
+ "__COMMENT__ More Information": "https://github.com/mozilla/policy-templates/tree/master#readme",
+ "policies": {
+ "AppAutoUpdate": true,
+ "AppAutoUpdate_comment": "Change to false to disable auto-updates.",
+ "DisableFirefoxStudies": true,
+ "DisableTelemetry": true,
+ "DisableFeedbackCommands": true,
+ "DisablePocket": true,
+ "DisableSetDesktopBackground": true,
+ "DisableDeveloperTools": false,
+ "DontCheckDefaultBrowser": true,
+ "DNSOverHTTPS": {
+ "Enabled": false,
+ "ProviderURL": "",
+ "Locked": false
+ },
+ "ManualAppUpdateOnly": false,
+ "ManualAppUpdateOnly_comment": "Change to true to disable auto-updates.",
+ "NoDefaultBookmarks": true,
+ "WebsiteFilter": {
+ "Block": [
+ "https://localhost/*"
+ ]
+ },
+ "Extensions": {
+ "Install": [
+ "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"
+ ],
+ "Uninstall": [
+ "amazondotcom@search.mozilla.org",
+ "ebay@search.mozilla.org"
+ ]
+ },
+ "SearchEngines": {
+ "PreventInstalls": false,
+ "Remove": [
+ "Amazon.com",
+ "eBay"
+ ],
+ "Default": "DuckDuckGo",
+ "Add": [
+ {
+ "Name": "DuckDuckGo Lite",
+ "Description": "Minimal, ad-free version of DuckDuckGo",
+ "Alias": "",
+ "Method": "POST",
+ "URLTemplate": "https://duckduckgo.com/lite/?q={searchTerms}",
+ "PostData": "q={searchTerms}",
+ "IconURL": "data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVZ4Ss0Wd+PM1nf1Tpd4PM6XeDzM1nf1TRZ3481WeErAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVYD/BjRa3pRQcOP9tMLy/83q2f/m9uv//f7+//L0/P+qu+7/UHDj/TRa3pRVgP8GAAAAAAAAAAAAAAAAVYD/BjNZ372Jnuv/9/j9/8nT9v+D0pj/R71m/02+a/9Kr3z/XreM//f4/f+Jnuv/M1nfvVWA/wYAAAAAAAAAADRa3pSJnuv/4Ob6/1h25P+8yPT/ntyv/6zhuv+Fvrj/PpKY/0Cbjf9YduT/4Ob6/4me6/80Wt6UAAAAADVZ4StQcOP99/j9/1h25P8zWN7/5+z7////////////Z4Lm/zNY3v8zWd3/M1je/1h25P/3+P3/UHDj/TVZ4Ss0Wd+PrLvx/5ut7v8zWN7/Rmfh/////////////////0Jo4P8neuf/IY/s/yZ85/8yXN//m63u/6y78f80Wd+PM1nf1ert+/9ObuL/M1je/3CK5////////////9j4//8RyPv/J3vn/ytx5P8lg+n/KHjm/05u4v/p7fv/M1nf1Tpd4PP4+f3/M1je/zNY3v+bre7////////////X+P//JNL8/yDJ+v8Utvb/II/t/y9j4P8zWN7/+Pn9/zpd4PM6XeDz+Pn9/zNY3v8zWN7/w871///////////////////////k+v//T5zt/xyc7/8UtPX/L2Ph//j5/f86XeDzM1nf1ert+/9ObuL/M1je/9vi+f//////oXZf////////////oXZf/2N/5f8zWN7/M1je/05u4v/q7fv/M1nf1TRZ34+su/H/m63u/zNY3v/H0fX//////////////////////+js+/83W97/M1je/zNY3v+bre7/rLvx/zRZ3481WeErUHDj/ff4/f9YduT/X3zl//Hz/P////////////j5/f9yi+j/M1je/zNY3v9YduT/9/j9/1Bw4/01WeErAAAAADRa3pSJnuv/4Ob6/1h25P9MbOL/2N/4/73J9P9DZeD/M1je/zNY3v9YduT/4Ob6/4me6/80Wt6UAAAAAAAAAABVgP8GM1nfvYme6//3+P3/m63u/05u4v8zWN7/M1je/05u4v+bre7/9/j9/4me6/8zWd+9VYD/BgAAAAAAAAAAAAAAAFWA/wY0Wt6UUHDj/ay78f/p7fv/+Pn9//j5/f/p7fv/rLvx/1Bw4/00Wt6UVYD/BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVZ4Ss0Wd+PM1nf1Tpd4PM6XeDzM1nf1TRZ3481WeErAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWA/wY2Wt9HM1nelTRY3780WN7ZM1je8zNY3vM0WN7ZNFjfvzNZ3pU2Wt9HVYD/BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVg3xgzWN+WNFne8TNY3v9ceuT/iJ7r/52v7/+ywPL/ssDy/52v7/+Inuv/XHrk/zNY3v80Wd7xM1jfljVg3xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElt/wczWOCCM1nf9Ets4v+ouPH/6e37/+vv+//a4Pj/2eD4/9zi+f/c4vn/2eD4/9rg+P/m6vv/6e37/6i48f9LbOL/M1nf9DNY4IJJbf8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1YN8YM1jfxz9i4P+js/D/8fP8/6Cx7/+7x/P/5fbp/1zEd/+o4Lb/9vz4////////////3+T5/zVZ3v9Xed3/obPu//Hz/P+js/D/P2Hf/zNY38c1YN8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN1njLjRZ3uNTcuP/4eb6/7PB8v9IaeH/M1je/9rg+f/H69D/Rrxl/0a8Zf9NtV//RrRa/063Yv9fpqf/QqWA/0a8Zf87gqv/SGnh/7TC8v/h5vr/U3Lj/zRZ3uMzW+MtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVg3xg0Wd7jZ4Pm/+/x/P+Emuv/M1je/zNY3v87Xt///P3+/7rmxv9GvGX/Rrxl/0azWv9GvGX/Rrxl/0a8ZP9GvGX/Rrxl/zyIo/8zWN7/M1je/4Sa6//v8fz/Z4Lm/zRZ3uM1YN8YAAAAAAAAAAAAAAAAAAAAAAAAAABJbf8HM1jfx1Ny4//v8fz/aoXm/zNY3v8zWN7/M1je/2N/5f//////tOTB/0a8Zf9HvWb/c8mH/1W+bv9IuWj/Qqp7/0a8Zf9GvGX/PIWo/zNY3v8zWN7/M1je/2qF5v/v8fz/U3Lj/zNY38dJbf8HAAAAAAAAAAAAAAAAAAAAADNY4II/YuD/4eb6/4Sa6/8zWN7/M1je/zNY3v8zWN7/j6Ps///////W8d3/pt+1/+X26v//////8/X9/zhc3v80Wdz/PIek/0a4av85d7j/M1je/zNY3v8zWN7/M1je/4Sa6//h5vr/P2Hf/zNY4IIAAAAAAAAAAAAAAAA1YN8YM1nf9KOz8P+0wvL/M1je/zNY3v8zWN7/M1je/zNY3v+6xvP///////////////////////////+zwfL/M1je/zNY3v8zWN7/NFzY/zNZ3f8zWN7/M1je/zNY3v8zWN7/M1je/7TC8v+js/D/M1nf9DVg3xgAAAAAAAAAADNY35ZLbOL/8fP8/0hp4f8zWN7/M1je/zNY3v8zWN7/M1je/+Xq+v///////////////////////////32U6v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/SGnh//Hz/P9LbOL/M1jflgAAAABVgP8GNFne8ai48f+hsu//M1je/zNY3v8zWN7/M1je/zNY3v9DZeD/////////////////////////////////V3bj/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/obLv/6i48f80Wd7xVYD/BjZa30czWN7/6e37/1Z04/8zWN7/M1je/zNY3v8zWN7/M1je/2+J5/////////////////////////////////9RcOL/Lmfi/yKN7P8XrPP/EML5/w3K+/8Suvf/HZnu/y5n4v8zWN7/M1je/zNY3v9WdOP/6e37/zNY3v82Wt9HM1nelVx65P/j6Pr/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/mavu////////////////////////////7/z//yK79v8K0v3/Fq/0/yKN7P8iiev/IY7s/xqh8P8Suff/Dcr7/y5o4v8zWN7/M1je/zNY3v/j6Pr/XHrk/zNZ3pU0WN+/iJ7r/6++8v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v/DzvX///////////////////////////9k4/7/CtL9/xK59/8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/6++8v+Inuv/NFjfvzRY3tmdr+//mqzu/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/+7x/P///////////////////////////2Xj/v8K0v3/C9D9/xmm8f8YqfP/Gafy/yKN7P8vZuH/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/mqzu/52v7/80WN7ZM1je87LA8v+Fm+v/M1je/zNY3v8zWN7/M1je/zNY3v9La+H/////////////////////////////////+P7//3Pm/v8P0/3/CtL9/wrS/f8K0v3/CtL9/wrR/f8VsvX/JYPp/zNb3v8zWN7/M1je/zNY3v+Fm+v/ssDy/zRZ3vIzWN7zssDy/4Wb6/8zWN7/M1je/zNY3v8zWN7/M1je/3SN6P////////////////////////////////////////////b+///T9///vPP//1q/9v8WrfT/DMv8/wrS/f8K0v3/DsX6/yl25v8zWN7/M1je/4Wb6/+ywPL/M1je8zRY3tmdr+//mqzu/zNY3v8zWN7/M1je/zNY3v8zWN7/m63u////////////0LWn/7qTfv/////////////////////////////+/v//////s8Dy/zNY3v8zWt7/KXbm/x2b7v8bn/D/KnPl/zNY3v8zWN7/mqzu/52v7/80WN7ZNFjfv4me6/+vvvL/M1je/zNY3v8zWN7/M1je/zNY3v+zwPL///////////+sfWT/om5R//v59///////////////////////pHFV/8Cdiv+ruvH/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v+vvvL/iJ7r/zRY378zWd6VXHrk/+Po+v8zWN7/M1je/zNY3v8zWN7/M1je/7/K9P////////////z6+f/38u/////////////////////////////NsKH/4dDH/3uT6f8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/+Po+v9ceuT/M1nelTZa30czWN7/6e37/1Z04/8zWN7/M1je/zNY3v8zWN7/p7fw///////k1c3////////////////////////////////////////////3+f3/Q2Xg/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v9WdOP/6e37/zNY3v82Wt9HVYD/BjRZ3vGouPH/oLHv/zNY3v8zWN7/M1je/zNY3v92j+j//////+7l3//gz8b/+/j2///////////////////////p3db/2MK2/6mz5P8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/6Gy7/+ouPH/NFne8VWA/wYAAAAAM1jflkts4v/x8/z/SGnh/zNY3v8zWN7/M1je/zNY3v/U3Pj////////////////////////////////////////////s7/z/RWfg/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v9IaeH/8fP8/0ts4v8zWN+WAAAAAAAAAAA1YN8YM1nf9KOz8P+zwfL/M1je/zNY3v8zWN7/M1je/0Fj4P/DzvX/////////////////////////////////8PP8/2WB5v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/7TC8v+js/D/M1nf9DVg3xgAAAAAAAAAAAAAAAAzWOCCP2Lg/+Hm+v+Emuv/M1je/zNY3v8zWN7/R2jh/0do4f97k+n/1dz4////////////7/L8/4Oa6/9CZOD/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v+Fm+v/4eb6/z9i4P8zWOCCAAAAAAAAAAAAAAAAAAAAAElt/wczWN/HU3Lj/+/x/P9qheb/M1je/zNY3v+Xqe7/7vH8/////////////////87X9/9TcuP/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/aoXm/+/x/P9TcuP/M1jfx0lt/wcAAAAAAAAAAAAAAAAAAAAAAAAAADVg3xg0Wd7jZ4Lm/+/x/P+Emuv/M1je/2J+5f+puPH/rrzx/5Kl7f9PbuL/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/4Sa6//v8fz/Z4Lm/zRZ3uM1YN8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdZ4y40Wd7jU3Lj/+Hm+v+0wvL/SGnh/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/0hp4f+0wvL/4eb6/1Ny4/80Wd7jM1vjLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVg3xgzWN/HP2Lg/6Oz8P/x8/z/obLv/1Z04/8zWN7/M1je/zNY3v8zWN7/M1je/zNY3v8zWN7/M1je/1Z04/+hsu//8fP8/6Oz8P8/Yd//M1jfxzVg3xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElt/wczWOCCM1nf9Ets4v+ouPH/6e37/+Po+v+vvvL/mqzu/4Wb6/+Fm+v/mqzu/6++8v/j6Pr/6e37/6i48f9LbOL/M1nf9DNY4IJJbf8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1YN8YM1jfljRZ3vEzWN7/XHrk/4ie6/+dr+//ssDy/7LA8v+dr+//iJ7r/1x65P8zWN7/NFne8TNY35Y1YN8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVYD/BjZa30czWd6VNFjfvzRY3tkzWN7zM1je8zRY3tk0WN+/M1nelTZa30dVgP8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/"
+ },
+ {
+ "Name": "SearXNG",
+ "Description": "A privacy-respecting, hackable metasearch engine",
+ "Alias": "",
+ "Method": "POST",
+ "URLTemplate": "https://searx.be/?q={searchTerms}",
+ "PostData": "q={searchTerms}&time_range=&language=en-US&category_general=on",
+ "IconURL": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InN2ZzgiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDkyIDkyIiBoZWlnaHQ9IjkybW0iIHdpZHRoPSI5Mm1tIj4KICA8ZGVmcyBpZD0iZGVmczIiLz4KICA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgICAgICA8ZGM6dGl0bGUvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDAuOTIxMzAzLC0xNy40MTY1MjYpIiBpZD0ibGF5ZXIxIj4KICAgIDxjaXJjbGUgcj0iMCIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgY3k9IjkyIiBjeD0iNzUiIGlkPSJwYXRoMzcxMyIvPgogICAgPGNpcmNsZSByPSIzMCIgY3k9IjUzLjkwMjU1NyIgY3g9Ijc1LjkyMTMwMyIgaWQ9InBhdGg4MzQiIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzMDUwZmY7c3Ryb2tlLXdpZHRoOjEwO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiLz4KICAgIDxwYXRoIGQ9Im0gNjcuNTE0ODQ5LDM3LjkxNTI0IGEgMTgsMTggMCAwIDEgMjEuMDUxNDc1LDMuMzEyNDA3IDE4LDE4IDAgMCAxIDMuMTM3MzEyLDIxLjA3ODI4MiIgaWQ9InBhdGg4NTIiIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzMDUwZmY7c3Ryb2tlLXdpZHRoOjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIvPgogICAgPHJlY3QgdHJhbnNmb3JtPSJyb3RhdGUoLTQ2LjIzNDcwOSkiIHJ5PSIxLjg2NjkxMDVlLTEzIiB5PSIxMjIuMDg5OTUiIHg9IjMuNzA2MzUyOSIgaGVpZ2h0PSIzOS45NjMzMDMiIHdpZHRoPSIxOC44NDYzMzEiIGlkPSJyZWN0OTEyIiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6IzMwNTBmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6ODtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIi8+CiAgPC9nPgo8L3N2Zz4="
+ },
+ {
+ "Name": "MetaGer",
+ "Description": "MetaGer: Privacy Protected Search & Find",
+ "Alias": "",
+ "Method": "GET",
+ "URLTemplate": "https://metager.org/meta/meta.ger3?eingabe={searchTerms}",
+ "IconURL": "data:image/x-icon;base64,AAABAAEAQEAAAAEACAAoFgAAFgAAACgAAABAAAAAgAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgP4AAYD+AACA/wADgf4ABIH+AAWC/gAGgv4ACYT+AAuF/gAMhf4ADYb+AA6G/gAPh/4AEIf+ABGI/gATif4AFIn+ABWK/gAWiv4AF4v+ABmM/gAajP4AG43+AByN/gAejv4AIZD+ACSR/gAmkv4AJ5L+ACmU/gAqlP4ALJX+AC2W/gAulv4AMpj+ADSZ/gA5m/4AO5z+AD6e/gA/n/4AQJ/+AEKg/gBDof4ARKH+AEWi/gBGov4ASKP+AEyl/gBPpv4AU6j+AFWq/gBXq/4AWKv+AFut/gBcrf4AX6/+AGGw/gBksf4AZ7L+AGq0/gBvtv4Acbf+AHO4/gB0uf4Adrr+AHe6/gB4u/4Afr7+AIC//gCBwP4Ah8P+AIjD/gCJxP4AisT+AIvF/gCNxv4AkMf+AJHI/gCSyP4Ak8n+AJTJ/gCVyv4Alsr+AJjL/gCazP4AnM3+AJ7O/gCgz/4AodD+AKLQ/gCk0f4AptL+AKjT/gCq1P4ArdX+AK7W/gCv1v4AsNf+ALXZ/gC22v4At9r+ALjb/gC52/4AvN3+AMPg/gDE4f4AxuL+AMrk/gDM5f4Azub+AM/m/gDQ5/4A0ef+ANLo/gDU6f4A1ur+ANnr/gDb7P4A3+7+AOHv/gDk8f4A5fH+AOby/gDn8v4A6PP+AOnz/gDq9P4A6/T+AO31/gDv9v4A8/j+APX5/gD2+v4A9/r+APj7/gD5+/4A+vz+APv8/gD8/f4A/f3+AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnyMjIyMHgICAgICAgICAgICAgIDhYyMjIwSAgICAgICAgIEMlVxfoiEfXJeRSYDAgICAgICAgICAgICAgICAgJmjIyMjDQCAgICAgICAgICAgICAm2MjIyMKwICAgICAgIzeIyMjIyMjIyMjIyMgU8dAgICAgICAgICAgICAgICSoyMjIxGAgICAgICAgICAgICAgJXjIyMjD4CAgICAgJMjIyMjIyMjIyMjIyMjIyMhQUCAgICAgICAgICAgICAjaMjIyMYwICAgICAgICAgICAgICPYyMjIxYAgICAgJAjIyMjIyMjIyMjIyMjIyMjIwjAgICAgICAgICAgICAgIhjIyMjHkCAgICAjtoaGIIAgICAiqMjIyMbwICAgIWg4yMjIyMXCoOAQMPJWmMjIyMOwICAgICAgICAgICAgICBYeMjIyMEAICAgJtjIyMUgICAgIQjIyMjIYEAgICQ4yMjIyMOAICAgICAgJCjIyMjFcCAgICAgICAgICAgICAgJwjIyMjCkCAgIVjIyMjIwrAgICAnqMjIyMIAICAmqMjIyMWgICAgICAgICKoyMjIxzAgICAgICAgICAgICAgICWYyMjIw9AgICOYyMjIyMdwsCAgJljIyMjDUCAgJ9jIyMjCcCAgICAgICAgyLjIyMiwoCAgICAgICAgICAgICAj+MjIyMVwICAmCMjIyMjIxWAgICSYyMjIxJAgICh4yMjIwMAgICAgJkjIyMjIyMjIwpAgICAgICAgICAgICAgIsjIyMjG4CAgaCjIyMjIyMjC8CAjWMjIyMZQICAn+MjIyMBAICAgICRoyMjIyMjIyMQgICAgICAgICAgICAgICEoyMjIyGBAIsjIyMjGiMjIx6DgIgjIyMjHsCAgJzjIyMjBMCAgICAjOMjIyMjIyMjF8CAgICAgICAgICAgICAgJ8jIyMjB8CTIyMjHYNeIyMjFsCBIeMjIyMEgICXYyMjIwnAgICAgIcjIyMjIyMjIx4AgICAgICAgICAgICAgICZoyMjIw1AnWMjIxQAi6MjIyMMQJvjIyMjCsCAjqMjIyMRwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkqMjIyMSRuMjIyMLgICVIyMjH4RWYyMjIw+AgIXiIyMjH8KAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2jIyMjGY9jIyMggYCAgl2jIyMXj+MjIyMWAICAlmMjIyMUQICAgICAgICAgICAgICAgICAgICAgICAgICAgICIYyMjIx8Z4yMjGECAgICKIuMjIxZjIyMjG8CAgIchYyMjIw8AgICAgICAgICAgICAgICAgICAgICAgICAgICAgWHjIyMjImMjIw5AgICAgJOjIyMiYyMjIyGBAICAjyMjIyMjFMMAgICAgICAgIBMGwYAgICAgICAgICAgICAgICcIyMjIyMjIyLFAICAgICB3SMjIyMjIyMjCACAgICXYyMjIyMgUstFgYJGTFNeYyMMwICAgICAgICAgICAgICAlmMjIyMjIyMbAICAgICAgIkioyMjIyMjIw1AgICAgRdjIyMjIyMjIyMjIyMjIyMjE0CAgICAgICAgICAgICAgI/jIyMjIyMjEQCAgICAgICAkiMjIyMjIyMSQICAgICAEGFjIyMjIyMjIyMjIyMjIxrAgICAgICAgICAgICAgICLIyMjIyMjIwjAgICAgICAgIGcoyMjIyMjGUCAgICAgICGliHjIyMjIyMjIyMjIx/TAICAgICAgICAgICAgICAhKMjIyMjIx6AAICAgICAgICAiKIjIyMjIx7AgICAgICAgICDjdWa32FiIBzYEMmBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ },
+ {
+ "Name": "StartPage",
+ "Description": "The world's most private search engine",
+ "Alias": "",
+ "Method": "GET",
+ "URLTemplate": "https://www.startpage.com/sp/search?query={searchTerms}",
+ "IconURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADb0lEQVRYhb2VXWgUVxiGv2gtWHrXBqExO2d2z5leWC80ilRKDTHunAPWhEi0gYY2mZkorYm7Z260oCiiFaQ3/RNqG/CvqAheKLSUUgpWqBdCKdbc+XMji4mhmk2MXTdvL9r4U+dsZtasH3x3877v852/IapUuzDHz6HF0/jU1/g10CgEIUq+xoMgxLAf4qIX4ksvj3c6O/FiRa8k1dyMF4IQm/0QV4MQiNkFP4+P+/rw0jOFewN4I9D4PUHwk61xrSePVVWF9+agAo2xqsMfdcnLwU8U7ufQHGhMzkL4dJe9EN3xwrdiga9xq4LZXV/jkK+xsTePZT05LPXzaPvvcBZMOj/EvQ/yWDwzgMZRo4nG0a4+vGrSduYxP9DYF4QoG/QXKoa/349M8O+1ippgb6wlJCIvh25fY8rgs6bS9LuiRJ7GT0SoiwtARORpfG5YhWNGURDifJSoR2NlknAiop5+1Psh7kdczYJR5IcYiRAMJw1/OJDGL1EDdYWGc7R9LyY/+QzlLwYxdfgkcPoscO5H/FYtwMQ9HBmfAMaKwOhfwPBt4GYBuH4ddqQAQBFP1+VqAQCcifADgAaT4HLExyXAfPXM1TSvvTNX6NiQH29bPzC2tr2/uLZ9y/i6joERAHMjJVeGrn79/Q/ncejb09i95yA2fbQHbeu3YsmKjTuTxltc9dqOwv+bOfJno6iRq2ykSKiJVCbbFDc8lWpNM0eORHlZXH5YSVtnO+oPA/mIlVEtMSZfYgt1I8rDFvJWfX3zy5UNMqqFCVU2rESZCXU8lZZvEdHj+1hncXcpE+qg7ci/I8MdBYu78f6KjLv7TSaPYOQ4E3KICfWnLdSdGb935KlY4dMTMaEGZzJN0kzI74hoTiIIW7g7bEeVZg/C/SoJABERNablcsbdC7MFYXEV+6/6JIjIvs2EGmRCFcz7rEYZd0+kuHyPOfKmESLjhlVBTJdlZe1GvibLHPkuE7LLymTVa7Z8nR7b44Xp1sXMUaOG8zBl8WzvM0HEAuXyTebIomElSpaQHTWHaOTStR113wAxmUq7rTWHSHF3AxPqQTSEHGMiu6LmECwjNzEhpwyP1O0UdxfVHoLLbRUeqks1ByAisoQ8YNiK0nMBICKyufzmqbdByHPPDYCI5jIu99lCDTNHFhl3TzQ0rH7lHy2g5RVQKFbLAAAAAElFTkSuQmCC"
+ }
+ ]
+ }
+ }
+}
diff --git a/user.js b/user.js
index 6fab9a6..d156787 100644
--- a/user.js
+++ b/user.js
@@ -20,7 +20,7 @@
user_pref("nglayout.initialpaint.delay", 0);
user_pref("nglayout.initialpaint.delay_in_oopif", 0);
user_pref("content.notify.interval", 100000);
-user_pref("browser.startup.preXulSkeletonUI", false);
+user_pref("browser.startup.preXulSkeletonUI", false); // WINDOWS
/** EXPERIMENTAL ***/
user_pref("layout.css.grid-template-masonry-value.enabled", true);
@@ -28,19 +28,13 @@ user_pref("dom.enable_web_task_scheduling", true);
user_pref("layout.css.has-selector.enabled", true);
/** GFX ***/
-//user_pref("gfx.webrender.precache-shaders", true); // optional
//user_pref("gfx.canvas.accelerated", true); // enable if using a dedicated GPU on WINDOWS
user_pref("gfx.canvas.accelerated.cache-items", 4096);
user_pref("gfx.canvas.accelerated.cache-size", 512);
user_pref("gfx.content.skia-font-cache-size", 20);
/** BROWSER CACHE ***/
-//user_pref("browser.cache.disk.enable", true); // DEFAULT
-//user_pref("browser.cache.disk.smart_size.enabled", false);
-//user_pref("browser.cache.disk.capacity", 8192000);
-//user_pref("browser.cache.disk.metadata_memory_limit", 10000);
-user_pref("browser.cache.memory.capacity", 1048576);
-user_pref("browser.cache.memory.max_entry_size", 65536);
+user_pref("browser.cache.disk.enable", false);
/** MEDIA CACHE ***/
user_pref("media.memory_cache_max_size", 196608);
@@ -58,13 +52,11 @@ user_pref("network.http.max-connections", 1800);
user_pref("network.http.max-persistent-connections-per-server", 10);
user_pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
user_pref("network.websocket.max-connections", 400);
-user_pref("network.http.pacing.requests.min-parallelism", 12);
-user_pref("network.http.pacing.requests.burst", 20);
-user_pref("network.http.connection-retry-timeout", 0);
+user_pref("network.http.pacing.requests.enabled", false);
user_pref("network.dnsCacheEntries", 10000);
user_pref("network.dnsCacheExpiration", 86400);
user_pref("network.dns.max_high_priority_threads", 8);
-user_pref("network.ssl_tokens_cache_capacity", 32768);
+user_pref("network.ssl_tokens_cache_capacity", 20480);
/** SPECULATIVE CONNECTIONS ***/
user_pref("network.http.speculative-parallel-limit", 0);
@@ -82,7 +74,6 @@ user_pref("network.predictor.enable-prefetch", false);
user_pref("browser.contentblocking.category", "strict");
user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
-user_pref("privacy.query_stripping.strip_list", "__hsfp __hssc __hstc __s _hsenc _openstat dclid fbclid gbraid gclid hsCtaTracking igshid mc_eid ml_subscriber ml_subscriber_hash msclkid oft_c oft_ck oft_d oft_id oft_ids oft_k oft_lk oft_sk oly_anon_id oly_enc_id rb_clickid s_cid twclid vero_conv vero_id wbraid wickedid yclid");
user_pref("browser.uitour.enabled", false);
user_pref("privacy.globalprivacycontrol.enabled", true);
user_pref("privacy.globalprivacycontrol.functionality.enabled", true);
@@ -102,7 +93,6 @@ user_pref("security.tls.enable_0rtt_data", false);
/** DISK AVOIDANCE ***/
user_pref("browser.privatebrowsing.forceMediaMemoryCache", true);
user_pref("browser.sessionstore.interval", 60000);
-user_pref("browser.sessionstore.privacy_level", 2);
/** SHUTDOWN & SANITIZING ***/
user_pref("privacy.history.custom", true);
@@ -121,9 +111,6 @@ user_pref("network.IDN_show_punycode", true);
/** HTTPS-FIRST POLICY ***/
user_pref("dom.security.https_first", true);
-/** HTTPS-ONLY MODE ***/
-user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
-
/** PASSWORDS AND AUTOFILL ***/
user_pref("signon.rememberSignons", false);
user_pref("editor.truncate_user_pastes", false);
@@ -208,6 +195,9 @@ user_pref("browser.preferences.moreFromMozilla", false);
user_pref("browser.tabs.tabmanager.enabled", false);
user_pref("browser.aboutConfig.showWarning", false);
user_pref("browser.aboutwelcome.enabled", false);
+user_pref("browser.display.focus_ring_on_anything", true);
+user_pref("browser.display.focus_ring_style", 0);
+user_pref("browser.display.focus_ring_width", 0);
user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS
user_pref("browser.privatebrowsing.enable-new-indicator", false);
user_pref("cookiebanners.service.mode", 2);
@@ -235,9 +225,9 @@ user_pref("extensions.pocket.enabled", false);
/** DOWNLOADS ***/
user_pref("browser.download.useDownloadDir", false);
+user_pref("browser.download.always_ask_before_handling_new_types", true);
user_pref("browser.download.alwaysOpenPanel", false);
user_pref("browser.download.manager.addToRecentDocs", false);
-user_pref("browser.download.always_ask_before_handling_new_types", true);
/** PDF ***/
user_pref("browser.download.open_pdf_attachments_inline", true);
@@ -252,7 +242,7 @@ user_pref("findbar.highlightAll", true);
/****************************************************************************
* SECTION: SMOOTHFOX *
****************************************************************************/
-// visit https://github.com/yokoffing/Betterfox/blob/master/Smoothfox.js
+// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js
// Enter your scrolling prefs below this line:
/****************************************************************************