1
0
mirror of https://github.com/yokoffing/Betterfox.git synced 2026-06-12 15:40:48 +05:30

Compare commits

..

4 Commits

Author SHA1 Message Date
yokoffing 6ef4cdbbe7 135.0 (#361) 2025-02-25 17:43:16 -05:00
Michael Weems 9c1d652299 Update install.py (#369)
Updating to Check Location of Firefox Install
2025-02-25 17:30:05 -05:00
yokoffing 09dd87a3ab v132-133 (#350) 2024-12-09 14:25:38 -05:00
Cat d70e3cdebe Updated install.py _get_default_profile_folder (#346) 2024-12-09 14:21:25 -05:00
7 changed files with 69 additions and 36 deletions
+13 -11
View File
@@ -3,7 +3,7 @@
* Fastfox *
* "Non ducor duco" *
* priority: speedy browsing *
* version: 131 *
* version: 135 *
* url: https://github.com/yokoffing/Betterfox *
***************************************************************************************/
@@ -109,7 +109,7 @@ user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
// [2] https://github.com/yokoffing/Betterfox/issues/153
// [3] https://github.com/yokoffing/Betterfox/issues/198
//user_pref("gfx.canvas.accelerated", true); // [DEFAULT FF133+]
user_pref("gfx.canvas.accelerated.cache-items", 4096); // default=2048; Chrome=4096
//user_pref("gfx.canvas.accelerated.cache-items", 8192); // DEFAULT FF135+; Chrome=4096
user_pref("gfx.canvas.accelerated.cache-size", 512); // default=256; Chrome=512
user_pref("gfx.content.skia-font-cache-size", 20); // default=5; Chrome=20
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1239151#c2
@@ -144,7 +144,7 @@ user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
// More efficient to keep the browser cache instead of having to
// re-download objects for the websites you visit frequently.
// [1] https://www.janbambas.cz/new-firefox-http-cache-enabled/
//user_pref("browser.cache.disk.enable", true); // DEFAULT
user_pref("browser.cache.disk.enable", false);
// PREF: disk cache size
// [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=913808,968106,968101
@@ -210,8 +210,9 @@ user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
//user_pref("browser.cache.disk.max_priority_chunks_memory_usage", 40960); // DEFAULT (40 MB)
// PREF: how often to validate document in cache
// [1] https://searchfox.org/mozilla-release/source/modules/libpref/init/StaticPrefList.yaml#1092-1096
// 0 = once-per-session
// 1 = each-time
// 2 = never
// 3 = when-appropriate/automatically (default)
//user_pref("browser.cache.check_doc_frequency", 3); // DEFAULT
@@ -230,7 +231,7 @@ user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
// 0 = do not compress (default)
// 1 = minimal compression
// 9 = maximal compression
user_pref("browser.cache.jsbc_compression_level", 3);
//user_pref("browser.cache.jsbc_compression_level", 3);
// PREF: strategy to use for when the bytecode should be encoded and saved [TESTING ONLY]
// -1 makes page load times marginally longer when a page is being loaded for the first time, while
@@ -541,12 +542,13 @@ user_pref("network.predictor.enabled", false);
user_pref("layout.css.grid-template-masonry-value.enabled", true);
// PREF: Prioritized Task Scheduling API [NIGHTLY]
// [1] https://blog.mozilla.org/performance/2022/06/02/prioritized-task-scheduling-api-is-prototyped-in-nightly/
// [2] https://medium.com/airbnb-engineering/building-a-faster-web-experience-with-the-posttask-scheduler-276b83454e91
// [3] https://github.com/WICG/scheduling-apis/blob/main/explainers/prioritized-post-task.md
// [4] https://wicg.github.io/scheduling-apis/
// [5] https://caniuse.com/mdn-api_taskcontroller
user_pref("dom.enable_web_task_scheduling", true);
// [1] https://github.com/yokoffing/Betterfox/issues/355
// [2] https://blog.mozilla.org/performance/2022/06/02/prioritized-task-scheduling-api-is-prototyped-in-nightly/
// [3] https://medium.com/airbnb-engineering/building-a-faster-web-experience-with-the-posttask-scheduler-276b83454e91
// [4] https://github.com/WICG/scheduling-apis/blob/main/explainers/prioritized-post-task.md
// [5] https://wicg.github.io/scheduling-apis/
// [6] https://caniuse.com/mdn-api_taskcontroller
//user_pref("dom.enable_web_task_scheduling", true);
/****************************************************************************
* SECTION: TAB UNLOAD *
+4 -3
View File
@@ -3,7 +3,7 @@
* Peskyfox *
* "Aquila non capit muscas" *
* priority: remove annoyances *
* version: 131 *
* version: 135 *
* url: https://github.com/yokoffing/Betterfox *
* credit: Some prefs are reproduced and adapted from the arkenfox project *
* credit urL: https://github.com/arkenfox/user.js *
@@ -102,7 +102,7 @@ user_pref("browser.privateWindowSeparation.enabled", false);
//user_pref("browser.search.widget.inNavBar", true);
// PREF: new tab page wallpapers
user_pref("browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled", true);
//user_pref("browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled", true); // [DEFAULT FF132+]
/****************************************************************************
* SECTION: COOKIE BANNER HANDLING *
@@ -165,7 +165,7 @@ user_pref("full-screen-api.warning.timeout", 0); // default=3000
// [2] https://reddit.com/r/firefox/comments/wvs04y/comment/ilklzy1/?context=3
//user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
//user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
//user_pref("gfx.font_rendering.cleartype_params.force_gdi_classic_for_families", "");
//user_pref("gfx.font_rendering.cleartype_params.force_gdi_classic_for_families", ""); // DEFAULT FF135+
//user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false);
// Some users find these helpful:
//user_pref("gfx.font_rendering.cleartype_params.gamma", 1750);
@@ -204,6 +204,7 @@ user_pref("browser.urlbar.trending.featureGate", false);
// PREF: disable urlbar suggestions
//user_pref("browser.urlbar.addons.featureGate", false); // [FF115+]
//user_pref("browser.urlbar.fakespot.featureGate", false); // [FF130+] [DEFAULT: false]
//user_pref("browser.urlbar.mdn.featureGate", false); // [FF117+] [HIDDEN PREF]
//user_pref("browser.urlbar.pocket.featureGate", false); // [FF116+] [DEFAULT: false]
//user_pref("browser.urlbar.weather.featureGate", false); // [FF108+] [DEFAULT: false]
+2
View File
@@ -74,6 +74,7 @@ The `user.js` — a configuration file that controls Firefox settings — is cur
* [GhoSTORIES with Franz & Pete](https://anchor.fm/ghostories/episodes/S2E6-We-Talking-Ghostery-Dawn----Again-er0q02/a-a4o5vmh) | 17:0518:40 (Feb 2021)
### Articles
* [Español] [Firefox is an excellent browser, but this small modification makes it much faster and more private](https://www.genbeta.com/a-fondo/firefox-excelente-navegador-esta-pequena-modificacion-hace-mucho-rapido-privado-asi-funciona-betterfox) (Jan 2025)
* [Browsers for Daily Use](https://anhkhoakz.neocities.org/blog/browsers-for-daily-using/#firefox-but-hardened) (Jan 2024)
* [Avoiding Manifest V3 Escaping the Ad-Pocalypse](https://www.xbitlabs.com/avoiding-manifest-v3/) (Dec 2023)
* [German] [Pulse Browser Review: Firefox fork with Turbo tweaks and Opera sidebar](https://www.computerbild.de/artikel/cb-Tipps-Software-Pulse-Browser-Review-ein-Firefox-Fork-mit-Seitenleiste-wie-bei-Opera-35644139.html#:~:text=Noch%20mehr%20Speed%2DFeatures) (Apr 2023)
@@ -107,6 +108,7 @@ If you like the project, leave a :star: (top right) and become a [stargazer](htt
## Credit
* Betterfox mirrors the ongoing work provided by [arkenfox](https://github.com/arkenfox/user.js). Additionally, this repository includes content reproduced or adapted from other sources. Credit for overlapping material goes to the original authors.
* 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.
* Thanks to [Denperidge](https://github.com/Denperidge) for adding [`install.py`](https://github.com/yokoffing/Betterfox/blob/main/install.py) for advanced users in v.131.
* 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.
+17 -8
View File
@@ -3,7 +3,7 @@
* Securefox *
* "Natura non contristatur" *
* priority: provide sensible security and privacy *
* version: 131 *
* version: 135 *
* url: https://github.com/yokoffing/Betterfox *
* credit: Most prefs are reproduced and adapted from the arkenfox project *
* credit urL: https://github.com/arkenfox/user.js *
@@ -21,10 +21,10 @@
// [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
user_pref("browser.contentblocking.category", "strict"); // [HIDDEN]
//user_pref("privacy.trackingprotection.enabled", true); // enabled with "Strict"
//user_pref("privacy.trackingprotection.pbmode.enabled", true); // DEFAULT
//user_pref("browser.contentblocking.customBlockList.preferences.ui.enabled", false); // DEFAULT
user_pref("browser.contentblocking.category", "strict"); // [HIDDEN]
//user_pref("privacy.trackingprotection.socialtracking.enabled", true); // enabled with "Strict"
//user_pref("privacy.socialtracking.block_cookies.enabled", true); // DEFAULT
//user_pref("privacy.trackingprotection.cryptomining.enabled", true); // DEFAULT
@@ -61,10 +61,14 @@ user_pref("browser.contentblocking.category", "strict"); // [HIDDEN]
// [TEST - instagram embed] https://www.ndtv.com/entertainment/bharti-singh-and-husband-haarsh-limbachiyaa-announce-pregnancy-see-trending-post-2646359
// [TEST - tweet embed] https://www.newsweek.com/cryptic-tweet-britney-spears-shows-elton-john-collab-may-date-back-2015-1728036
// [TEST - tiktok embed] https://www.vulture.com/article/snl-adds-four-new-cast-members-for-season-48.html
// [TEST - truthsocial embed] https://www.newsweek.com/donald-trump-congratulates-patrick-brittany-mahomes-new-baby-2027097
// [1] https://www.reddit.com/r/firefox/comments/l79nxy/firefox_dev_is_ignoring_social_tracking_preference/gl84ukk
// [2] https://www.reddit.com/r/firefox/comments/pvds9m/reddit_embeds_not_loading/
user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com"); // MANUAL
user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com"); // MANUAL
//user_pref("urlclassifier.trackingSkipURLs", "embed.reddit.com"); // MANUAL
// originals:
user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com"); // MANUAL
user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com"); // MANUAL
//user_pref("extensions.webcompat.smartblockEmbeds.enabled", true); // NIGHTLY-ONLY
// PREF: lower the priority of network loads for resources on the tracking protection list [NIGHTLY]
// [1] https://github.com/arkenfox/user.js/issues/102#issuecomment-298413904
@@ -110,6 +114,7 @@ user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.
// [6] https://github.com/arkenfox/user.js/issues/1281
// [7] https://hacks.mozilla.org/2022/02/improving-the-storage-access-api-in-firefox/
//user_pref("network.cookie.cookieBehavior", 5); // DEFAULT FF103+
//user_pref("network.cookie.cookieBehavior.optInPartitioning", true); // [ETP FF132+]
//user_pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled", true); // DEFAULT
// PREF: Network Partitioning
@@ -122,7 +127,7 @@ user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.
// [3] https://blog.mozilla.org/security/2021/01/26/supercookie-protections/
//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" [DEFAULT: true FF123+]
//user_pref("privacy.partition.network_state.ocsp_cache", true); // [DEFAULT: true FF123+]
//user_pref("privacy.partition.bloburl_per_partition_key", true); // [FF118+]
// enable APS (Always Partitioning Storage) [FF104+]
//user_pref("privacy.partition.always_partition_third_party_non_cookie_storage", true); // [DEFAULT: true FF109+]
@@ -473,6 +478,9 @@ user_pref("browser.sessionstore.interval", 60000); // 1 minute; default=15000 (1
//user_pref("privacy.cpd.siteSettings", false);
//user_pref("privacy.clearHistory.siteSettings", false);
// PREF: purge session icon in Private Browsing windows
user_pref("browser.privatebrowsing.resetPBM.enabled", true);
/******************************************************************************
* SECTION: SHUTDOWN & SANITIZING *
******************************************************************************/
@@ -1298,15 +1306,16 @@ user_pref("permissions.default.geo", 2);
//user_pref("extensions.update.enabled", false);
// PREF: disable search engine updates (e.g. OpenSearch)
// Prevent Firefox from adding back search engines after you removed them.
// [NOTE] This does not affect Mozilla's built-in or Web Extension search engines.
//user_pref("browser.search.update", false);
user_pref("browser.search.update", false);
// PREF: remove special permissions for certain mozilla domains [FF35+]
// default = resource://app/defaults/permissions
user_pref("permissions.manager.defaultsUrl", "");
// PREF: remove webchannel whitelist
user_pref("webchannel.allowObject.urlWhitelist", "");
//user_pref("webchannel.allowObject.urlWhitelist", ""); // [DEFAULT FF132+]
/******************************************************************************
* SECTION: TELEMETRY *
@@ -1373,7 +1382,7 @@ user_pref("browser.tabs.crashReporting.sendReport", false);
// PREF: enforce no submission of backlogged crash reports
// [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
//user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [DEFAULT FF132+]
/******************************************************************************
* SECTION: DETECTION *
+27 -5
View File
@@ -32,7 +32,7 @@ Limitations:
Building into an exe (on Windows):
- pipx install pyinstaller (note: you can try without pipx, but this didn't work for me)
- Run:
- CMD: `pyinstaller --onefile --name install-betterfox install.py && move %cd%\dist\install-betterfox.exe %cd% && del install-betterfox.spec && rmdir /S /Q build && rmdir dist`
- CMD: `pyinstaller --onefile --name install-betterfox install.py && move %cd%\\dist\\install-betterfox.exe %cd% && del install-betterfox.spec && rmdir /S /Q build && rmdir dist`
- BASH: `pyinstaller --onefile --name install-betterfox install.py && && mv dist/install-betterfox.exe . && rm install-betterfox.spec && rm -rf ./build/ && rmdir dist`
(Sorry, didn't want to add a .gitignore solely for the install script)
- Done!
@@ -66,12 +66,25 @@ def _get_default_profile_folder():
config_parser = ConfigParser(strict=False)
config_parser.read(config_path)
path = None
for section in config_parser.sections():
if "Default" in config_parser[section]:
if config_parser[section]["Default"] == "1":
print("Default detected: " + section)
return FIREFOX_ROOT.joinpath(config_parser[section]["Path"])
section_default_value = config_parser[section]["Default"]
if section_default_value:
print("Default detected from section: " + section)
# Confirm whether a 0 value is possible, keep fallback until then
if section_default_value == "0":
continue
if section_default_value == "1":
path = config_parser[section]["Path"]
else:
path = section_default_value
break
if path is not None:
return FIREFOX_ROOT.joinpath(path)
else:
raise Exception("Could not determine default Firefox profile! Exiting...")
def _get_releases(repository_owner, repository_name):
releases = []
@@ -110,7 +123,16 @@ def _get_latest_compatible_release(releases):
if firefox_version in release["supported"]:
return release
return None
def _get_firefox_version(bin="firefox"):
try:
ver_string = check_output([bin, "--version"], encoding="UTF-8")
return ver_string[ver_string.rindex(" ")+1:].strip()
except FileNotFoundError:
default_path = str(DEFAULT_FIREFOX_INSTALL.joinpath("firefox"))
if bin != default_path: # Avoid infinite recursion
return _get_firefox_version(default_path)
else:
raise Exception("Firefox binary not found. Please ensure Firefox is installed and the path is correct.")
def backup_profile(src):
dest = f"{src}-backup-{datetime.today().strftime('%Y-%m-%d-%H-%M-%S')}"
+1 -1
View File
@@ -75,7 +75,7 @@ user_pref("browser.bookmarks.max_backups", 0); // minimize disk use; manually ba
user_pref("view_source.wrap_long_lines", true); // wrap source lines
user_pref("devtools.debugger.ui.editor-wrapping", true); // wrap lines in devtools
user_pref("browser.zoom.full", false); // text-only zoom, not all elements on page
user_pref("pdfjs.sidebarViewOnLoad", 2); // force showing of Table of Contents in sidebar for PDFs (if available)
//user_pref("pdfjs.sidebarViewOnLoad", 2); // force showing of Table of Contents in sidebar for PDFs (if available)
user_pref("layout.word_select.eat_space_to_next_word", false); // do not select the space next to a word when selecting a word
//user_pref("browser.tabs.loadInBackground", false); // CTRL+SHIFT+CLICK for background tabs; Settings>General>Tabs>When you open a link, image or media in a new tab, switch to it immediately
user_pref("browser.tabs.loadBookmarksInTabs", true); // force bookmarks to open in a new tab, not the current tab
+4 -7
View File
@@ -10,7 +10,7 @@
/****************************************************************************
* Betterfox *
* "Ad meliora" *
* version: 131 *
* version: 135 *
* url: https://github.com/yokoffing/Betterfox *
****************************************************************************/
@@ -21,12 +21,11 @@
user_pref("content.notify.interval", 100000);
/** GFX ***/
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);
/** DISK CACHE ***/
user_pref("browser.cache.jsbc_compression_level", 3);
user_pref("browser.cache.disk.enable", false);
/** MEDIA CACHE ***/
user_pref("media.memory_cache_max_size", 65536);
@@ -53,7 +52,6 @@ user_pref("network.predictor.enable-prefetch", false);
/** EXPERIMENTAL ***/
user_pref("layout.css.grid-template-masonry-value.enabled", true);
user_pref("dom.enable_web_task_scheduling", true);
/****************************************************************************
* SECTION: SECUREFOX *
@@ -82,6 +80,7 @@ user_pref("browser.privatebrowsing.forceMediaMemoryCache", true);
user_pref("browser.sessionstore.interval", 60000);
/** SHUTDOWN & SANITIZING ***/
user_pref("browser.privatebrowsing.resetPBM.enabled", true);
user_pref("privacy.history.custom", true);
/** SEARCH / URL BAR ***/
@@ -125,8 +124,8 @@ user_pref("browser.safebrowsing.downloads.remote.enabled", false);
/** MOZILLA ***/
user_pref("permissions.default.desktop-notification", 2);
user_pref("permissions.default.geo", 2);
user_pref("browser.search.update", false);
user_pref("permissions.manager.defaultsUrl", "");
user_pref("webchannel.allowObject.urlWhitelist", "");
/** TELEMETRY ***/
user_pref("datareporting.policy.dataSubmissionEnabled", false);
@@ -154,7 +153,6 @@ user_pref("app.normandy.api_url", "");
/** CRASH REPORTS ***/
user_pref("breakpad.reportURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false);
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
/** DETECTION ***/
user_pref("captivedetect.canonicalURL", "");
@@ -181,7 +179,6 @@ user_pref("browser.profiles.enabled", true);
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("browser.compactmode.show", true);
user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS
user_pref("browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled", true);
/** COOKIE BANNER HANDLING ***/
user_pref("cookiebanners.service.mode", 1);