mirror of
https://github.com/yokoffing/Betterfox.git
synced 2026-06-28 07:31:17 +05:30
Compare commits
8 Commits
8bd2f5d72e
..
152.0
| Author | SHA1 | Date | |
|---|---|---|---|
| f2b656a74b | |||
| 29fc4c4df6 | |||
| 5d03962513 | |||
| 6d10adcba9 | |||
| c9ec39c8a6 | |||
| c97bc06396 | |||
| 392c62a03c | |||
| 0bc76714a9 |
@@ -1,13 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: yokoffing
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: yokoffing
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: yokoffing
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
+34
-2
@@ -130,6 +130,38 @@ user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
|
||||
user_pref("gfx.canvas.accelerated.cache-size", 512); // default=256; Chrome=512; max=2048
|
||||
//user_pref("gfx.canvas.max-size", 32767); // [DEFAULT]
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: JAVASCRIPT OPTIONS *
|
||||
****************************************************************************/
|
||||
// PREF: lower the Baseline JIT compilation threshold
|
||||
// Controls how many times a function runs before Firefox promotes it from the
|
||||
// C++ interpreter to the Baseline JIT compiler. The Baseline JIT compiles each
|
||||
// bytecode instruction into a small piece of machine code and uses Inline Caches
|
||||
// (ICs) to both speed up execution and collect type info for the Ion optimizing JIT.
|
||||
// Lowering this from 100 to 50 promotes "warm" functions to compiled machine code
|
||||
// sooner, which reduces dropped frames while browsing.
|
||||
// [1] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox-chast-1
|
||||
user_pref("javascript.options.baselinejit.threshold", 50); // default=100
|
||||
|
||||
// PREF: raise the IonMonkey (Ion) optimizing-JIT compilation threshold
|
||||
// Controls how many times a function runs before Firefox promotes it from the
|
||||
// Baseline JIT to IonMonkey, the optimizing JIT. Ion applies advanced compiler
|
||||
// optimizations to produce fast code for "hot" functions, at the cost of slower
|
||||
// compilation. The Baseline JIT is quicker to produce but can't cope with the large
|
||||
// amounts of code on heavy websites.
|
||||
// Raising this threshold keeps more code on the faster-to-compile Baseline JIT,
|
||||
// reserving the expensive Ion compilation for only the hottest functions.
|
||||
// [1] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox-chast-1
|
||||
//user_pref("javascript.options.ion.threshold", 1500); // DEFAULT
|
||||
|
||||
// PREF: decrease concurrent JavaScript garbage collection (GC) threads
|
||||
// Sets the divisor in the formula: GC threads = CPU threads ÷ divisor (min 1).
|
||||
// A LOWER value = MORE parallel GC threads. A HIGHER value = FEWER threads.
|
||||
// Example (24-thread CPU): divisor 1 → 24 threads | 2 → 12 | 4 (default) → 6 | 12 → 2
|
||||
// Power users with many cores should LOWER this value, not raise it.
|
||||
// [NOTE] Mozilla's default of 4 is conservative to avoid thread contention on weak hardware.
|
||||
//user_pref("javascript.options.concurrent_multiprocess_gcs.cpu_divisor", 4); // DEFAULT
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: DISK CACHE *
|
||||
****************************************************************************/
|
||||
@@ -306,8 +338,8 @@ user_pref("image.mem.decode_bytes_at_a_time", 32768); // default=16384; chunk si
|
||||
// [1] https://www.mail-archive.com/support-seamonkey@lists.mozilla.org/msg74561.html
|
||||
// [2] https://github.com/yokoffing/Betterfox/issues/279
|
||||
// [3] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox
|
||||
//user_pref("network.buffer.cache.size", 65535); // default=32768 (32 kb); 262144 too large
|
||||
//user_pref("network.buffer.cache.count", 48); // default=24; 128 too large
|
||||
user_pref("network.buffer.cache.size", 65535); // default=32768 (32 kb); 262144 too large
|
||||
user_pref("network.buffer.cache.count", 48); // default=24; 128 too large
|
||||
|
||||
// PREF: increase the absolute number of HTTP connections
|
||||
// [1] https://kb.mozillazine.org/Network.http.max-connections
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[](https://github.com/yokoffing/betterfox/stargazers)
|
||||
|
||||
Do not trust sites that claim to be Betterfox. This page is the only official source.
|
||||
:warning: Do not trust sites that claim to be Betterfox. This page is the only official source.
|
||||
|
||||
# Betterfox
|
||||
[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/).
|
||||
|
||||
+9
-7
@@ -99,7 +99,7 @@ def _get_default_profile_folder(firefox_root):
|
||||
print(f"Reading {config_path}...")
|
||||
|
||||
config_parser = ConfigParser(strict=False)
|
||||
config_parser.read(config_path)
|
||||
config_parser.read(config_path, encoding = "utf8")
|
||||
|
||||
path = None
|
||||
for section in config_parser.sections():
|
||||
@@ -174,12 +174,17 @@ def download_betterfox(url):
|
||||
def extract_betterfox(data, profile_folder):
|
||||
zipfile = ZipFile(data)
|
||||
userjs_zipinfo = None
|
||||
depth = 1 # default to firefox user.js living at root dir
|
||||
if args.browser != "firefox":
|
||||
depth = 2 # ignore the outside
|
||||
for file in zipfile.filelist:
|
||||
if "/zen/" in file.filename and not args.zen:
|
||||
path = file.filename.split("/")
|
||||
if len(path)-1 != depth or (args.browser not in path and depth != 1) :
|
||||
continue
|
||||
if file.filename.endswith("user.js"):
|
||||
userjs_zipinfo = file
|
||||
userjs_zipinfo.filename = Path(userjs_zipinfo.filename).name
|
||||
break
|
||||
|
||||
if not userjs_zipinfo:
|
||||
raise BaseException("Could not find user.js!")
|
||||
@@ -212,18 +217,15 @@ if __name__ == "__main__":
|
||||
|
||||
default_profile_folder = _get_default_profile_folder(firefox_root)
|
||||
|
||||
argparser = ArgumentParser(
|
||||
|
||||
)
|
||||
argparser = ArgumentParser()
|
||||
argparser.add_argument("--overrides", "-o", default=default_profile_folder.joinpath("user-overrides.js"), help="if the provided file exists, add overrides to user.js. Defaults to " + str(default_profile_folder.joinpath("user-overrides.js"))),
|
||||
argparser.add_argument("--zen", "-z", action="store_true", default=False, help="Install user.js for the Zen browser instead. Defaults to False"),
|
||||
|
||||
|
||||
advanced = argparser.add_argument_group("Advanced")
|
||||
advanced.add_argument("--betterfox-version", "-bv", default=None, help=f"Which version of Betterfox to install. Defaults to the latest compatible release for your installed Firefox version")
|
||||
advanced.add_argument("--profile-dir", "-p", "-pd", default=default_profile_folder, help=f"Which profile dir to install user.js in. Defaults to {default_profile_folder}")
|
||||
advanced.add_argument("--repository-owner", "-ro", default="yokoffing", help="owner of the Betterfox repository. Defaults to yokoffing")
|
||||
advanced.add_argument("--repository-name", "-rn", default="Betterfox", help="name of the Betterfox repository. Defaults to Betterfox")
|
||||
advanced.add_argument("--browser", "-b", default="firefox", help="Which browser should Betterfox install to. Defaults to firefox. Available options: firefox, zen, waterfox")
|
||||
|
||||
disable = argparser.add_argument_group("Disable functionality")
|
||||
disable.add_argument("--no-backup", "-nb", action="store_true", default=False, help="disable backup of current profile (not recommended)"),
|
||||
|
||||
@@ -20,6 +20,13 @@
|
||||
/** FASTFOX ***/
|
||||
user_pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
||||
user_pref("browser.sessionstore.interval", 900000); // save session every 15 minutes
|
||||
user_pref("browser.newtab.preload", false); // disable new tab if not using
|
||||
user_pref("nglayout.initialpaint.delay", 50); // delay painting new tabs
|
||||
user_pref("javascript.options.baselinejit.threshold", 50); // default=100
|
||||
//user_pref("javascript.options.ion.threshold", 5000);
|
||||
user_pref("network.buffer.cache.size", 65535);
|
||||
user_pref("network.buffer.cache.count", 48);
|
||||
user_pref("javascript.options.concurrent_multiprocess_gcs.cpu_divisor", 2); // default=4
|
||||
|
||||
/** SECUREFOX ***/
|
||||
user_pref("privacy.trackingprotection.allow_list.convenience.enabled", false); // disable Strict allowlist of convenience features
|
||||
@@ -55,6 +62,8 @@ user_pref("dom.serviceWorkers.privateBrowsing.enabled", false); // disable servi
|
||||
user_pref("privacy.restrict3rdpartystorage.heuristic.navigation", false); // restrict dynamic storage access
|
||||
user_pref("privacy.restrict3rdpartystorage.heuristic.opened_window_after_interaction", false); // restrict dynamic storage access
|
||||
user_pref("security.cert_pinning.enforcement_level", 2); // strict public key pinning
|
||||
user_pref("dom.fs.enabled", false); // FROST
|
||||
user_pref("dom.fs.writable_file_stream.enabled", false); // FROST
|
||||
|
||||
/** PESKYFOX ***/
|
||||
user_pref("devtools.accessibility.enabled", false); // removes un-needed "Inspect Accessibility Properties" on right-click
|
||||
@@ -105,6 +114,7 @@ user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
|
||||
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.enhanced_contrast", 100);
|
||||
//user_pref("browser.display.auto_quality_min_font_size", 0);
|
||||
//user_pref("font.name.serif.x-western", "Roboto Slab"); // serif font
|
||||
//user_pref("font.name.sans-serif.x-western", "Roboto"); // sans-serif font
|
||||
//user_pref("font.name.monospace.x-western", "Fira Code"); // monospace font
|
||||
@@ -121,6 +131,7 @@ user_pref("network.dnsCacheExpiration", 3600); // keep entries for 1 hour; defau
|
||||
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.enhanced_contrast", 100);
|
||||
//user_pref("browser.display.auto_quality_min_font_size", 0);
|
||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", false); // no need for userChrome
|
||||
|
||||
/** DELETE IF NOT macOS ***/
|
||||
@@ -147,5 +158,6 @@ user_pref("app.update.auto", false); // disable auto-installing Firefox updates
|
||||
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.enhanced_contrast", 100);
|
||||
//user_pref("browser.display.auto_quality_min_font_size", 0);
|
||||
user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false);
|
||||
user_pref("privacy.userContext.enabled", false); // disable Container Tabs
|
||||
|
||||
Reference in New Issue
Block a user