# Recommended Extentions: ## uBlock Origin https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/ ### Settings Make sure the following options are _off_: - `Disable pre-fetching` _Rationale: Not doing this will significantly slow down navigation, as Firefox won't prefetch any content before clicking._ ## JSLibCache https://addons.mozilla.org/en-US/firefox/addon/jslibcache/ ### Settings Make sure the following options are _on_: - `Allow header modification` _Rationale: Otherwise many Javascript libraries won't be fetched from local storage - as they have parameters on their URLs in the HTML code. This isn't going to break any website.`_ Make sure to copy the uBlock rules provided, to your uBlock settings, to avoid uBlock interfering: 1) Go to the `uBlock rules` 2) copy them 3) Open uBlock's `Dashboard` 4) Go to the `My rules` tab 5) Paste them & hit `Save`, then `Commit` ## Cache Longer https://addons.mozilla.org/en-US/firefox/addon/cache-longer/ Set and forget. _Rationale: Increases the time items will be stored in the browser cache. This increasing the chance that network ressources won't need to be fetched. As NVMe/SSD storage is cheap and lightning fast compared to network requests, this has the potential to improve load times significantly._ # Recommended Browser settings ## Normal Browser settings 1) Go to about:preferences#privacy 2) Select `Custom` 3) deactivate all filters in this section 4) Scroll down to `Security` -> `Deceptive Content and Dangerous Software Protection` 5) Disable `Block dangerous and deceptive content` _Rationale: Those filters use a lot of CPU time to process, and are not very helpful - except for newbies. The `Dangerous Software` filters may actually even block downloads the user want to fetch, that's why it is recommended to disable these._ ## `about:config` settings ### General tweaks ``` network.captive-portal-service.enabled = false # don't try to find captive portals network.notify.checkForProxies = false # don't try to find proxies ``` ### Browser cache ``` browser.cache.disk.capacity = 8192000 # Increase cache size on disk to 8 GB browser.cache.disk.smart_size.enabled = false # force a fixed max cache size on disk browser.cache.frecency_half_life_hours = 18 # lower cache sweep intervals browser.cache.max_shutdown_io_lag = 16 # let the browser finish more io on shutdown browser.cache.memory.capacity = 2097152 # fixed maximum 2 GB in memory cache browser.cache.memory.max_entry_size = 327680 # maximum size of in memory cached objects browser.cache.disk.metadata_memory_limit = 15360 # increase size (in KB) of "Intermediate memory caching of frequently used metadata (a.k.a. disk cache memory pool)" ``` ### GFX rendering tweaks: ``` gfx.canvas.accelerated = true gfx.canvas.accelerated.cache-items = 32768 gfx.canvas.accelerated.cache-size = 4096 layers.acceleration.force-enabled = false gfx.content.skia-font-cache-size = 80 gfx.webrender.all = true gfx.webrender.compositor = true gfx.webrender.compositor.force-enabled = true gfx.webrender.enabled = true gfx.webrender.precache-shaders = true gfx.webrender.program-binary-disk = true gfx.webrender.software.opengl = true image.mem.decode_bytes_at_a_time = 65536 image.mem.shared.unmap.min_expiration_ms = 120000 layers.gpu-process.enabled = true layers.gpu-process.force-enabled = true image.cache.size = 10485760 media.memory_cache_max_size = 1048576 media.memory_caches_combined_limit_kb = 3145728 media.hardware-video-decoding.force-enabled = true media.ffmpeg.vaapi.enabled = true ``` ### Increase predictive network operations ``` network.dns.disablePrefetchFromHTTPS = false network.dnsCacheEntries = 20000 network.dnsCacheExpiration = 3600 network.dnsCacheExpirationGracePeriod = 240 network.predictor.enable-hover-on-ssl = true network.predictor.enable-prefetch = true network.predictor.preconnect-min-confidence = 20 network.predictor.prefetch-force-valid-for = 3600 network.predictor.prefetch-min-confidence = 30 network.predictor.prefetch-rolling-load-count = 120 network.predictor.preresolve-min-confidence = 10 ``` ### Faster SSL ``` network.ssl_tokens_cache_capacity = 32768 # more TLS token caching (fast reconnects) ``` ### Disable network seperations ``` fission.autostart = false # disable enhanced protection between threads/processes of the browser (which uses LOADS of memory to do) privacy.partition.network_state = false # don't seperate the network state (e.g. the cache) by top level domains) ``` ### Reduce the number of processes ``` dom.ipc.processCount = 1 dom.ipc.processCount.webIsolated = 1 ``` _Rationale: By default Firefox launches as many processes as you got CPU cores. This is highly counter productive, as this leads to much more memory usage as necessary. In addition switching tabs may now result not only in having to load the content back from the swap into memory, but also swapped in duplicated libraries etc._ # Finishing touches: - Restart firefox Go to about:support then scroll down to "Places Database" and select "Verify Integrity". This will rewrite the database. Scroll up again and select "Clear startup cache" on the right side. - Restart firefox # Nice to have extensions ## I don't care about cookies https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-about-cookies/ Set and forget. ## Bypass Paywalls Clean https://addons.mozilla.org/en-US/firefox/addon/bypass-paywalls-clean/ Automatically bypass some paywalls. Downside: Needs often new permissions, if an update adds a site to the supported list. - You'll get notified with an ! mark on your "hamburger menu" icon. ## Consent-O-Matic https://addons.mozilla.org/en-US/firefox/addon/consent-o-matic/ Set and forget. ## Cookie AutoDelete https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/ Go to settings and make sure the following are _off_: - Show Notification After Automatic Cleanup - Enable Support for Container Tabs ## SponsorBlock - Skip Sponsorships on YouTube https://addons.mozilla.org/en-US/firefox/addon/sponsorblock/ Configure skip categories to your likings. # Changelog ## 2023-07-07 - add browser.cache.disk.metadata_memory_limit - Remove "cache cleaning" from finishing touches (as it's not really necessary and confuses people) ## 2023-04-15 - set layers.acceleration.force-enabled to false (as it may increase CPU usage) ## 2023-02-26 - Remove uBlock Origin's `Disable hyperlink auditing` unckecking recommendation (no idea why I've added that) - Organize Settings for Add-Ons under headlines - Improve explanation of how to apply JSLibCache's uBlock rules - Add _Rationale_ to some settings, to avoid that people have to google - Fix `browser.cache.frecency_half_life_hours` - Minor changes/fixes to formatting - Reduce process counter down to one