Disil's stuff

Make Firefox perform better with these advanced tweaks!

Firefox is still a good browser if not the best in the current time. What differs is Firefox using Gecko engine, while other is based on Chromium/Blink engine.

By accessing about:config, you can tweak almost all settings on Firefox, even breaking the browser. I will not be responsible for any kind of crash with settings changed here, also this breaks Firefox warranty. The only way to fix this is to create a new profile, and you will lose any customizations, history, and bookmarks. Of course, changes provided here are already used by me, and my browser still stays intact. But who knows?

1. Enable First Party Isolation

In short, with First Party isolation enabled, cookies can no longer communicate with the other part (like web code), so advertisers can’t telemetry them. Read more about it here. To enable them, go to about:config and set privacy.firstparty.isolate to true.

Note: this will log you out from all websites you’ve signed in. Also, this feature will break some niche websites, watch out.

2. True Smooth Scrolling

Current smooth scrolling in Firefox seems janky sometimes. A user called aveyo in reddit has created a custom user.js code to make the scrolling more acceptable (and like Chromium). You can customize it to fit your liking, but unfortunately you need to do that with non-gui options. Follow these steps to get ‘real smooth scrolling’:

// ** Scrolling Options ********************************************************
// based on natural smooth scrolling v2 by aveyo
// this preset will reset couple extra variables for consistency
//         Pref                                              Value                 Original
user_pref("apz.allow_zooming",                               true);            ///     true
user_pref("apz.force_disable_desktop_zooming_scrollbars",   false);            ///    false
user_pref("apz.paint_skipping.enabled",                      true);            ///     true
user_pref("apz.windows.use_direct_manipulation",             true);            ///     true
user_pref("dom.event.wheel-deltaMode-lines.always-disabled", true);            ///    false
user_pref("general.smoothScroll.currentVelocityWeighting", "0.12");            ///   "0.25"
user_pref("general.smoothScroll.durationToIntervalRatio",    1000);            ///      200
user_pref("general.smoothScroll.lines.durationMaxMS",         100);            ///      150
user_pref("general.smoothScroll.lines.durationMinMS",           0);            ///      150
user_pref("general.smoothScroll.mouseWheel.durationMaxMS",    100);            ///      200
user_pref("general.smoothScroll.mouseWheel.durationMinMS",      0);            ///       50
user_pref("general.smoothScroll.mouseWheel.migrationPercent", 100);            ///      100
user_pref("general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS", 12);   ///      120
user_pref("general.smoothScroll.msdPhysics.enabled",                  true);   ///    false
user_pref("general.smoothScroll.msdPhysics.motionBeginSpringConstant", 200);   ///     1250
user_pref("general.smoothScroll.msdPhysics.regularSpringConstant",     200);   ///     1000
user_pref("general.smoothScroll.msdPhysics.slowdownMinDeltaMS",         10);   ///       12
user_pref("general.smoothScroll.msdPhysics.slowdownMinDeltaRatio",  "1.20");   ///    "1.3"
user_pref("general.smoothScroll.msdPhysics.slowdownSpringConstant",   1000);   ///     2000
user_pref("general.smoothScroll.other.durationMaxMS",         100);            ///      150
user_pref("general.smoothScroll.other.durationMinMS",           0);            ///      150
user_pref("general.smoothScroll.pages.durationMaxMS",         100);            ///      150
user_pref("general.smoothScroll.pages.durationMinMS",           0);            ///      150
user_pref("general.smoothScroll.pixels.durationMaxMS",        100);            ///      150
user_pref("general.smoothScroll.pixels.durationMinMS",          0);            ///      150
user_pref("general.smoothScroll.scrollbars.durationMaxMS",    100);            ///      150
user_pref("general.smoothScroll.scrollbars.durationMinMS",      0);            ///      150
user_pref("general.smoothScroll.stopDecelerationWeighting", "0.6");            ///    "0.4"
user_pref("layers.async-pan-zoom.enabled",                   true);            ///     true
user_pref("layout.css.scroll-behavior.spring-constant",   "250.0");            ///   "250.0"
user_pref("mousewheel.acceleration.factor",                     3);            ///       10
user_pref("mousewheel.acceleration.start",                     -1);            ///       -1
user_pref("mousewheel.default.delta_multiplier_x",            100);            ///      100
user_pref("mousewheel.default.delta_multiplier_y",            100);            ///      100
user_pref("mousewheel.default.delta_multiplier_z",            100);            ///      100
user_pref("mousewheel.min_line_scroll_amount",                  0);            ///        5
user_pref("mousewheel.system_scroll_override.enabled",       true);            ///     true
user_pref("mousewheel.system_scroll_override_on_root_content.enabled", false); ///     true
user_pref("mousewheel.transaction.timeout",                  1500);            ///     1500
user_pref("toolkit.scrollbox.horizontalScrollDistance",         4);            ///        5
user_pref("toolkit.scrollbox.verticalScrollDistance",           3);            ///        3

Then save the file. Restart Firefox and get ready for real smooth scrolling! If scrolling is broke after doing this, remove the code from the appropriate file.

3. Toolbar tweaks

Want the title bar to follow Windows accent? Or you may want the compact mode back? Or a tool that will make your math assignment easier… math conversion at URL bar? Copy this code to User.js:

// Integrated calculator at urlbar
    user_pref("browser.urlbar.suggest.calculator", true);

// Integrated unit convertor at urlbar
    user_pref("browser.urlbar.unitConversion.enabled", true);

// Restore Compact Mode - 89 Above
    user_pref("browser.compactmode.show", true);

4. Reduce memory usage

about:home can be cached so it’ll load faster when you start Firefox. Go to about:config and set browser.startup.homepage.abouthome_cache.enabled to true. Limiting multiprocess (e10s) will also help a lot. Go to about:config and set dom.ipc.processCount to 1.

5. Stop “insecure” nag window

When you’re downloading a file, by default Firefox will check from Google Safe browsing list (which is useless) and will block download from http. The file will still be checked with antivirus that you have. To disable this ‘download block dialog’, go to about:config and type browser.safebrowsing.downloads. Disable all of them that can be disabled (from true to false), so it will look like this

Firefox window opened showing search results of browser.safebrowsing.downloads settings and all of the value are set to false.

That’s it for this post. Thank you for reading my blog, and see you next time!

#apps #windows