From 36200e6b3d62afaf56958ee013f47b57b7ebb091 Mon Sep 17 00:00:00 2001 From: Foster Hangdaan Date: Sun, 13 Aug 2023 14:53:02 -0400 Subject: [PATCH] Initial commit --- .editorconfig | 8 +++ LICENSE.txt | 21 ++++++++ README.org | 17 +++++++ user.js | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 181 insertions(+) create mode 100644 .editorconfig create mode 100644 LICENSE.txt create mode 100644 README.org create mode 100644 user.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..dd7255e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..545f36e --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Foster Hangdaan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.org b/README.org new file mode 100644 index 0000000..c152733 --- /dev/null +++ b/README.org @@ -0,0 +1,17 @@ +#+title: Foster's Firefox User.js + +* What is a =user.js= File? + +A =user.js= is a configuration file to control Firefox settings. + +* This Project + +This is my personal user.js for configuring Firefox based on [[https://github.com/arkenfox/user.js][ArkenFox's user.js]]. The goal is to enhance privacy by reducing the number of unsolicited requests made by Firefox. To achieve this, many settings related to telemetry, studies, geolocation, and experiments are disabled. + +Only a subset of the configurations from Arkenfox are implemented and many of the experimental options are excluded. As a result, this version should not cause any breakages. If you are looking for a more comprehensive privacy configuration, then I suggest going with the Arkenfox version instead. + +* Installation + +Before you begin, I suggest making a backup of your entire Firefox profile folder. Refer to [[https://support.mozilla.org/en-US/kb/profiles-where-thunderbird-stores-user-data][Mozilla's Profiles support article]] on how to find the location of the profile folder. + +Copy the =user.js= file in the root directory of this repo to your profile folder then restart Firefox. diff --git a/user.js b/user.js new file mode 100644 index 0000000..7169968 --- /dev/null +++ b/user.js @@ -0,0 +1,135 @@ +/** + * ______ _ _ + * | ____| | | | Author: Foster Hangdaan + * | |__ | |__| | Website: https://www.fosterhangdaan.com + * | __| | __ | Email: foster@hangdaan.email + * | | | | | | GPG Fingerprint: DBD3 8E38 4B9E 1F4F 19F9 5BAE E48D 7F49 A852 F112 + * |_| |_| |_| GPG Public Key: https://static.fosterhangdaan.com/foster-pubkey.asc + * + * Foster Hangdaan's user.js for Firefox. + * Based on Arkenfox's user.js. + * + * Repository: https://code.fosterhangdaan.com/foster/firefox-userjs + * License: MIT + * +**/ + +/* 0000: disable about:config warning ***/ +user_pref("browser.aboutConfig.showWarning", false); + +/*** [SECTION 0100]: STARTUP ***/ +/* 0102: set startup page [SETUP-CHROME] + * 0=blank, 1=home, 2=last visited page, 3=resume previous session + * [NOTE] Session Restore is cleared with history (2811), and not used in Private Browsing mode + * [SETTING] General>Startup>Restore previous session ***/ +user_pref("browser.startup.page", 3); +/* 0103: set HOME+NEWWINDOW page + * about:home=Firefox Home (default, see 0105), custom URL, about:blank + * [SETTING] Home>New Windows and Tabs>Homepage and new windows ***/ +user_pref("browser.startup.homepage", "about:blank"); +/* 0104: set NEWTAB page + * true=Firefox Home (default, see 0105), false=blank page + * [SETTING] Home>New Windows and Tabs>New tabs ***/ +user_pref("browser.newtabpage.enabled", false); +/* 0105: disable sponsored content on Firefox Home (Activity Stream) + * [SETTING] Home>Firefox Home Content ***/ +user_pref("browser.newtabpage.activity-stream.showSponsored", false); // [FF58+] Pocket > Sponsored Stories +user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); // [FF83+] Sponsored shortcuts +/* 0106: clear default topsites + * [NOTE] This does not block you from adding your own ***/ +user_pref("browser.newtabpage.activity-stream.default.sites", ""); + +/*** [SECTION 0200]: GEOLOCATION / LANGUAGE / LOCALE ***/ +/* 0201: use Mozilla geolocation service instead of Google if permission is granted [FF74+] + * Optionally enable logging to the console (defaults to false) ***/ +user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); + // user_pref("geo.provider.network.logging.enabled", true); // [HIDDEN PREF] +/* 0202: disable using the OS's geolocation service ***/ +user_pref("geo.provider.ms-windows-location", false); // [WINDOWS] +user_pref("geo.provider.use_corelocation", false); // [MAC] +user_pref("geo.provider.use_gpsd", false); // [LINUX] +user_pref("geo.provider.use_geoclue", false); // [FF102+] [LINUX] +/* 0210: set preferred language for displaying pages + * [SETTING] General>Language and Appearance>Language>Choose your preferred language... + * [TEST] https://addons.mozilla.org/about ***/ +user_pref("intl.accept_languages", "en-US, en"); +/* 0211: use en-US locale regardless of the system or region locale + * [SETUP-WEB] May break some input methods e.g xim/ibus for CJK languages [1] + * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=867501,1629630 ***/ +user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF] + +/*** [SECTION 0300]: QUIETER FOX ***/ +/** RECOMMENDATIONS ***/ +/* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/ +user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF] +/* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/ +user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); +/* 0322: disable personalized Extension Recommendations in about:addons and AMO [FF65+] + * [NOTE] This pref has no effect when Health Reports (0331) are disabled + * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to make personalized extension recommendations + * [1] https://support.mozilla.org/kb/personalized-extension-recommendations ***/ +user_pref("browser.discovery.enabled", false); + +/** TELEMETRY ***/ +/* 0330: disable new data submission [FF41+] + * If disabled, no policy is shown or upload takes place, ever + * [1] https://bugzilla.mozilla.org/1195552 ***/ +user_pref("datareporting.policy.dataSubmissionEnabled", false); +/* 0331: disable Health Reports + * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data ***/ +user_pref("datareporting.healthreport.uploadEnabled", false); +/* 0332: disable telemetry + * The "unified" pref affects the behavior of the "enabled" pref + * - If "unified" is false then "enabled" controls the telemetry module + * - If "unified" is true then "enabled" only controls whether to record extended data + * [NOTE] "toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2] + * [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html + * [2] https://medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/ +user_pref("toolkit.telemetry.unified", false); +user_pref("toolkit.telemetry.enabled", false); // see [NOTE] +user_pref("toolkit.telemetry.server", "data:,"); +user_pref("toolkit.telemetry.archive.enabled", false); +user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+] +user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+] +user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+] +user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter +user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+] +/* 0333: disable Telemetry Coverage + * [1] https://blog.mozilla.org/data/2018/08/20/effectively-measuring-search-in-firefox/ ***/ +user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF] +user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF] +user_pref("toolkit.coverage.endpoint.base", ""); +/* 0334: disable PingCentre telemetry (used in several System Add-ons) [FF57+] + * Defense-in-depth: currently covered by 0331 ***/ +user_pref("browser.ping-centre.telemetry", false); +/* 0335: disable Firefox Home (Activity Stream) telemetry ***/ +user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); +user_pref("browser.newtabpage.activity-stream.telemetry", false); + +/** STUDIES ***/ +/* 0340: disable Studies + * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to install and run studies ***/ +user_pref("app.shield.optoutstudies.enabled", false); +/* 0341: disable Normandy/Shield [FF60+] + * Shield is a telemetry system that can push and test "recipes" + * [1] https://mozilla.github.io/normandy/ ***/ +user_pref("app.normandy.enabled", false); +user_pref("app.normandy.api_url", ""); + +/** CRASH REPORTS ***/ +/* 0350: disable Crash Reports ***/ +user_pref("breakpad.reportURL", ""); +user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+] + // user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+] [DEFAULT: false] +/* 0351: enforce no submission of backlogged Crash Reports [FF58+] + * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports ***/ +user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [DEFAULT: false] + +/** OTHER ***/ +/* 0360: disable Captive Portal detection + * [1] https://www.eff.org/deeplinks/2017/08/how-captive-portals-interfere-wireless-security-and-privacy ***/ +user_pref("captivedetect.canonicalURL", ""); +user_pref("network.captive-portal-service.enabled", false); // [FF52+] +/* 0361: disable Network Connectivity checks [FF65+] + * [1] https://bugzilla.mozilla.org/1460537 ***/ +user_pref("network.connectivity-service.enabled", false);