hello friends! new(ish)!
Firefox: Difference between revisions
>Galactus m (→Tweaking) |
(pale moon isn't dead wtf) |
||
(117 intermediate revisions by 22 users not shown) | |||
Line 1: | Line 1: | ||
{{cleanup|Add-ons section really outdated}} | |||
'''Firefox''' is a free and open source [[browsers|web browser]] developed and maintained by the Mozilla Foundation. It is known for its high degree of | {{note| Try to keep this page up-to-date by updating the status of the extensions and patches.}} | ||
{{Browser Infobox | |||
|name= Mozilla Firefox | |||
|image= [[file:NuFox.png|64px]] | |||
|type= Free | |||
|layout= Gecko | |||
|website= [https://www.mozilla.org/firefox/ https://www.mozilla.org/en-US/firefox/] | |||
}} | |||
'''Firefox''' is a free and open source [[browsers|web browser]] developed and maintained by the Mozilla Corporation which is owned by the Mozilla Foundation. It is known for its high degree of customizability through add-ons and its adherence to Web standards. | |||
== Official branches == | == Official branches == | ||
''Unfortunately, [https://support.mozilla.org/kb/firefox-36-no-longer-supported the v3.6.x series of Firefox is now unsupported]. It will no longer receive security or stability updates.'' | ''Unfortunately, [https://support.mozilla.org/kb/firefox-36-no-longer-supported the v3.6.x series of Firefox is now unsupported]. It will no longer receive security or stability updates. Please use Pale Moon for those olde-skool aesthetics.'' | ||
Mozilla offers | Mozilla offers five officially compiled branches or channels of Firefox. These are Release, Beta, Dev Edition, Nightly, and [[ESR (Software)|ESR]]. | ||
*The [https://www.mozilla.org/firefox/ | *The [https://www.mozilla.org/firefox/ Release] branch of Firefox is geared towards the the average home or office Web user. It receives a major update every four weeks if all goes according to plan, but security and stability patches are issued as needed in the meantime. | ||
*The [https://www. | *The [https://www.mozilla.org/firefox/beta/ Beta] branch of Firefox is geared towards home users who want to try new features a few weeks early while contributing to Firefox development. It is generally quite stable with most remaining bugs being specific to certain configurations or drivers. In the course of a typical six week beta run, there are between seven and thirteen builds released. | ||
*The [https://www.mozilla.org/firefox/ | *The [https://www.mozilla.org/firefox/developer/ Developer Edition] or alpha branch of Firefox replaced the Aurora branch and is geared towards Web developers and includes extra development tools and a special theme. Some instability and bugs should be expected. | ||
*The [https://www.mozilla.org/firefox/ | *The [https://www.mozilla.org/firefox/nightly/ Nightly] or pre-alpha branch is intended for testing and debugging purposes. It represents the bleeding edge of Firefox development, so the likelihood of encountering instability, security vulnerabilities, and major bugs is high. As the name implies, Nightly typically receives patches on a day-to-day basis and new features as soon as they become ready. | ||
*The [https:// | *The [https://www.mozilla.org/firefox/organizations/ Extended support release or ESR] branch of Firefox is geared towards large organizations who require long-term support for mass deployments, but it is can also be a good option for the technologically illiterate. It remains static for approximately one year after a major release, receiving new code only in the form of security and stability patches. | ||
Regarding experimental features, Mozilla gives you the option to install an extension that allows you to enable them before they come enabled out of the box, if they ever make it to the stable branch. For more information, go to [https://testpilot.firefox.com/ testpilot.com]. | |||
== Notable forks == | == Notable forks == | ||
Line 27: | Line 35: | ||
*[https://gnu.org/software/gnuzilla/ GNU IceCat] is a fork maintained by the GNU Project for those who happen to be of one mind with [[Richard Stallman]]. In addition to removing and replacing the copyrighted or trademarked parts of Firefox, the maintainer has added a couple of minor privacy and security features. | *[https://gnu.org/software/gnuzilla/ GNU IceCat] is a fork maintained by the GNU Project for those who happen to be of one mind with [[Richard Stallman]]. In addition to removing and replacing the copyrighted or trademarked parts of Firefox, the maintainer has added a couple of minor privacy and security features. | ||
*[http:// | *[http://www.palemoon.org/ Pale Moon] is a fork of Firefox [[Extended Support Release|ESR]] dedicated to providing an optimized Firefox with the classic user interface layout of the v3.6.x series and maintaining support for XUL. Pale Moon is offered in both [http://www.palemoon.org/download-ng.shtml 32-bit] and [http://www.palemoon.org/palemoon-x64.shtml 64-bit] builds, and uses a fork of the Gecko rendering engine called Goanna. For a complete list of the differences between Pale Moon and Firefox, see [http://www.palemoon.org/technical.shtml#Firefox_Differences this page]. Note: it's made by a [[furry]] who has a fursona named Moonchild. He has art and has written furry stories. His furry website is [http://www.moonchildproductions.info/ here]. | ||
*[ | *The [https://www.torproject.org/projects/torbrowser.html.en Tor Browser Bundle] is a package designed specifically to visit Onion sites and to browse the Internet through the Tor network. | ||
* | *[https://librewolf-community.gitlab.io/ LibreWolf] Fork of Librefox. | ||
== Add-Ons == | |||
== | === WebExtension support and legacy add-ons === | ||
=== | Starting with Firefox 57, add-ons using XUL were no longer supported. | ||
Some browsers such as Pale Moon and SeaMonkey, however, preserve the support for these legacy add-ons. Luckily, the Pale Moon team have a [https://github.com/JustOff/ca-archive working archive] of (almost) all the legacy add-ons, which you can install and use as an [https://github.com/JustOff/ca-archive/releases add-on] in the aforementioned browsers. | |||
=== Tags === | |||
[[File:LegacyTag.png|x14px]] — Is a legacy add-on, and can only be used on a Firefox fork that supports legacy add-ons (Waterfox, Pale Moon, SeaMonkey). Can be downloaded using the [https://github.com/JustOff/ca-archive Classic Add-ons Archive]. | |||
[[File: | [[File:WebExt.png|x14px]] — Is a WebExtension Add-on. Can be run on any modern Firefox or Firefox fork (Including Waterfox, Pale Moon and SeaMonkey). | ||
=== Notable add-ons === | |||
{{note|some of these listed add-ons may overlap slightly. They are both listed for modularity. Some people like one thing, and some like the other or a third. Pick your poison.}} | |||
{{warning|With Firefox having a new addon engine with Version 57 and above, some of these addons may no longer work!}} | |||
==== Adblocking, privacy, and security ==== | |||
[[File: | [[File:LocalCDN.png|48px]] '''LocalCDN''' [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/ | [https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/ LocalCDN] is an updated fork of Decentraleyes, emulates remote frameworks (e.g. jQuery, Bootstrap, AngularJS) and delivers them as local resource. Prevents unnecessary 3rd party requests to Google, StackPath, MaxCDN and more. Prepared rules for uBlock Origin/uMatrix. | ||
[[File: | [[File:MultiAccountContainer.png|48px]] '''Multi Account Containers''' [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/ | [https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/ Multi Account Containers] is an extension by mozilla that lets you filter your browser's cookies into "groups". | ||
[[File: | [[File:ClearURLs.png|48px]] '''ClearURLs''' [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/ | [https://addons.mozilla.org/en-US/firefox/addon/clearurls/ ClearURLs] is a extension that automatically removes useless tracking elements from URLs | ||
[[File: | [[File:uBlock.png|48px]] '''uBlock Origin''' [[File:LegacyTag.png|x14px]] [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/ | [https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/ uBlock Origin] is a lightweight and low-resource adblocker. Has many filter lists built in, with EasyList, Peter Lowe’s Ad server list, EasyPrivacy, and Malware domains enabled by default. | ||
*Can fully replace NoScript in advanced mode and outperform it, whilst offering more features. | |||
*Able to replace ClearURLs by adding [https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt LegitmateURLShortner list]. | |||
*Not to be confused with 'uBlock', an EXTREMELY outdated fork with some very slight changes to the UI. | |||
*If you feel bad about blocking advertisements, make a deal with yourself: you'll stop blocking ads when major international internet companies stop [http://uk.businessinsider.com/yahoos-advertising-network-is-being-targeted-by-hackers-malwarebytes-says-2015-8?r=US&IR=T serving] [https://blog.malwarebytes.org/malvertising-2/2015/08/large-malvertising-campaign-takes-on-yahoo/ malware]. | |||
*Supports the WebExtensions API. | |||
[[File:uMatrix.png|48px]] '''uMatrix''' [[File:LegacyTag.png|x14px]] [[File:WebExt.png|x14px]] | |||
[[File: | [[File:matrix.png|thumb|uMatrix's fine-grained control]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/ | [https://addons.mozilla.org/en-US/firefox/addon/umatrix/ uMatrix], made by the creator of uBlock, is a high performance matrix-based firewall that supports hosts files, capable of blocking a myriad of objects, complete with per-hostname and global toggles, as well as plenty of privacy oriented features. Able to replace NoScript<sup>1</sup>, policeman, and request policy continued. Can be used with uBlock. | ||
*<sup>1</sup> - Cannot replace NoScript's surrogate script functionality (which is very, VERY rarely used anyway). uBlock has a similar [https://github.com/gorhill/uBlock/wiki/Experimental-filters feature called redirect], whose purpose is to redirect blocked resources to locally-hosted, neutered contents. Deprecated in support of uBlock Origin. | |||
==== Customisability ==== | |||
[ | '''Panorama View''' [[File:WebExt.png|x14px]] | ||
[ | [https://addons.mozilla.org/en-US/firefox/addon/panorama-view/ Panorama View] is a WebExt replacement for tab groups | ||
[ | [[File:Treestyletabs.png|48px]] '''Tree Style Tabs''' [[File:LegacyTag.png|x14px]] [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/ Tree Style Tabs] shows tabs like a tree. | |||
[ | '''New Tab Homepage''' [[File:WebExt.png|x14px]] | ||
[ | [https://addons.mozilla.org/en-US/firefox/addon/new-tab-homepage/ New Tab Homepage] will load your homepage whenever you open a new tab. | ||
[ | '''Stylus''' [[File:WebExt.png|x14px]] | ||
[[ | [https://addons.mozilla.org/en-US/firefox/addon/styl-us/ Stylus] lets you customise websites by setting custom CSS for them. It is a replacement for the previously recommended add-on Stylish, which was brought out by a company and is now [https://addons.mozilla.org/en-US/firefox/addon/styl-us/ spyware that steals browsing history] and more. | ||
[ | '''OneLiner''' [[File:LegacyTag.png|x14px]] | ||
[ | [https://github.com/khuedoan98/one-line-firefox OneLiner] (also exists as "Liner") puts all the different bars at the top of the page, into a single bar (url, tabs, etc all on the same line). This can also be achieved with css. | ||
==== Usability ==== | |||
[[File: | [[File:FxIF.png|48px]] '''WxIF''' [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/ | [https://addons.mozilla.org/en-US/firefox/addon/wxif/ WxIF] is a WebExt port of the legacy add-on FxIF. A tool to view EXIF data in image properties. | ||
[[File: | [[File:Greasemonkey.png|48px]] '''Greasemonkey''' [[File:WebExt.png|x14px]] | ||
[https://addons.mozilla.org | [https://addons.mozilla.org/firefox/addon/greasemonkey/ Greasemonkey] manages [[Browsers#Recommended_User_Scripts | Userscripts]]. | ||
[[File:ViolentMonkey.png|48px]] '''Violentmonkey''' [[File:WebExt.png|x14px]] | |||
[https://addons.mozilla.org/firefox/addon/violentmonkey/ Violentmonkey] manages [[Browsers#Recommended_User_Scripts | Userscripts]] as well as Greasemonkey. | |||
[[File:Tampermonkey.png|48px]] '''Tampermonkey''' [[File:WebExt.png|x14px]] | |||
[https://addons.mozilla.org/firefox/addon/tampermonkey/ Tampermonkey] manages [[Browsers#Recommended_User_Scripts | Userscripts]] as well as Greasemonkey and Violentmonkey. The downside is that it is not Free Software. | |||
[[File: | [[File:Redirector.png|48px]] '''Redirector''' [[File:WebExt.png|x14px]] | ||
[ | [https://addons.mozilla.org/en-us/firefox/addon/redirector/ Redirector] automatically redirects to user-defined urls on a per-hyperlink basis. | ||
[ | [[File:Vimfx.png|48px]] '''VimFx''' [[File:LegacyTag.png|x14px]] | ||
[https://addons.mozilla.org/en-US/firefox/addon/vimfx/ VimFx] offers [[Vim]] bindings without changes in the UI. | |||
[ | |||
[ | '''Vimium-FF''' [[File:WebExt.png|x14px]] | ||
[ | [https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/ Vimium-FF] offers vim bindings via WebExt. However all WebExt extensions offering vim bindings are limited and will not work as well as they should (you will still need the mouse), due to how WebExt/nu-firefox works. | ||
[ | '''Other Vim Binding Options''' [[File:LegacyTag.png|x14px]] [[File:WebExt.png|x14px]] | ||
[ | There is a [https://vim.fandom.com/wiki/Vim_key_bindings_for_web_browsers list] on the vim wiki that goes over all the vim extensions/add-ons. | ||
== Notable patches == | |||
Bugs are explicitly stated. | |||
[[File: | === [https://github.com/perfect7gentleman/pg_overlay/tree/master/www-client/firefox/files/kde-opensuse OpenSUSE-KDE] [[File:Active.png|x14px]] === | ||
This patchset makes trivial changes to Firefox to improve its aesthetic and functionality. | |||
*Adds KDE integration to Firefox. | |||
*Changes your {{ic|general.useragent.locale}} to {{ic|chrome://global/locale/intl.properties}}. | |||
*Adds higher resolution icons. | |||
[https:// | === [https://github.com/perfect7gentleman/pg_overlay/blob/master/www-client/firefox/files/firefox-48.0-pgo.patch PGO] [[File:Stalled.png|x14px]] === | ||
This simple patch enables Profile-Guided Optimization techniques for the [[GCC]] build. PGO builds consist of two passes: the first one builds instrumented binaries, and the second one to rebuild optimized binaries. It might result in a [https://wiki.ubuntu.com/MozillaTeam/PGOBenchmarks slight performance increase of roughly ~5%], for double the compilation time. | |||
= | As it stands, the [https://bugzilla.mozilla.org/show_bug.cgi?id=1064049 clang-pgo.patch] may not be working. | ||
[ | ====Bugs==== | ||
*The Makefile.in file might not have the compile rule called pgo-profile-run<sup>[http://mynixworld.info/2015/03/09/fix-firefox-pgo-linux/ 1]</sup>. | |||
**Solution: add the pgo-profile-run rule to the Makefile.in. | |||
=== DNS over HTTPS and Encrytped SNI === | |||
[[File: | [[File:ESNI.png|thumb|How ESNI makes the internet opaque. Website support may vary.]] | ||
[https:// | Newer Firefox versions support DNS over HTTPS and Encrypted SNI. For an introduction to ESNI read [https://www.eff.org/deeplinks/2018/09/esni-privacy-protecting-upgrade-https this article from the EFF]. | ||
Upsides of DoH: Your ISP knows less about you. | |||
Downsides of DoH: Your DNS resolver knows a lot more about you including your browser and operating system, and can set cookies. (Bet you didn't know). | |||
To enable DoH: | |||
* Set {{ic|network.trr.mode}} to {{ic|2}}. | |||
* Set {{ic|network.trr.uri}} to a DoH compliant server such as {{ic|https://mozilla.cloudflare-dns.com/dns-query}}. | |||
DNS over HTTPS is an ESNI prerequisite. | |||
For ESNI set {{ic|network.security.esni.enabled}} to {{ic|true}}. | |||
[https:// | [[https://www.cloudflare.com/ssl/encrypted-sni/ Test your configuration courtesy of CloudFlare]] | ||
== Ricing == | |||
[https:// | You can edit Firefox's appearance with [[CSS]] (Cascading Style Sheets). To be more general, you can alter ANY web page with CSS. This is achieved with the usage of userstyles. To use and take complete advantage of them, you need a userstyle manager. [https://add0n.com/stylus.html Stylus] is the non-botnet version of Stylish that accepts the same scripts. | ||
A repository of userstyles can be found at [https://userstyles.world/ userstyles.world]. | |||
== | == Config == | ||
Below are options in '''about:config''' worth considering. | Below are options in '''about:config''' worth considering. Instead of doing this manually, consider visiting [https://ffprofile.com/ ffprofile] to do this much easier and install extensions as well. | ||
* dom.storage.enabled FALSE - Disable "client-side session and persistent storage" cookies | * '''dom.storage.enabled''' ''FALSE'' - Disable "client-side session and persistent storage" cookies (bad for 8ch - the replies hyperlinks next to the post number disappears). | ||
* geo.enabled FALSE - Disable location data. | * '''geo.enabled''' ''FALSE'' - Disable location data. | ||
* general.useragent.override - Create as a String value and insert your own useragent. | * '''general.useragent.override''' - Create as a String value and insert your own useragent. | ||
** [http://techblog.willshouse.com/2012/01/03/most-common-user-agents/ Dynamically updated list of common user agents] | ** [http://techblog.willshouse.com/2012/01/03/most-common-user-agents/ Dynamically updated list of common user agents]. | ||
* network.dns.disablePrefetch TRUE - Stop Firefox looking up IP addresses of links of the page you haven't/aren't going to. | * '''network.dns.disablePrefetch''' ''TRUE'' - Stop Firefox looking up IP addresses of links of the page you haven't/aren't going to. | ||
* network.http.pipelining TRUE - Possible speedup for some servers (send multiple files through one connection). | * '''network.http.pipelining''' ''TRUE'' - Possible speedup for some servers (send multiple files through one connection). | ||
* network.http.pipelining.max-optimistic-requests 8 - Total number of pipelines. | * '''network.http.pipelining.max-optimistic-requests''' ''8'' - Total number of pipelines. | ||
* network.http.pipelining.ssl TRUE - Pipeline with HTTPS sites. | * '''network.http.pipelining.ssl''' ''TRUE'' - Pipeline with HTTPS sites. | ||
* network.http.proxy.pipelining TRUE - Pipleline through proxy connections. | * '''network.http.proxy.pipelining''' ''TRUE'' - Pipleline through proxy connections. | ||
* network.http.sendRefererHeader - 0 = never (bad for 8ch), 1 = domain only, 2 = full url (default) | * '''network.http.sendRefererHeader''' - ''0'' = never (bad for 8ch), ''1'' = domain only, ''2'' = full url (default). | ||
* network.prefetch-next FALSE - Don't download pages linked to the current page unless we click the link. | * '''network.prefetch-next''' ''FALSE'' - Don't download pages linked to the current page unless we click the link. | ||
* dom.event.clipboardevents.enabled FALSE - Don't allow webpages to mess with the clipboard. | * '''dom.event.clipboardevents.enabled''' ''FALSE'' - Don't allow webpages to mess with the clipboard. | ||
* dom.disable_window_move_resize TRUE - Don't allow webpages to move or resize the browser window. | * '''dom.disable_window_move_resize''' ''TRUE'' - Don't allow webpages to move or resize the browser window. | ||
* dom.ipc.plugins.flash.subprocess.crashreporter.enabled FALSE - Don't report flash plugin crashes. | * '''dom.ipc.plugins.flash.subprocess.crashreporter.enabled''' ''FALSE'' - Don't report flash plugin crashes. | ||
* media.autoplay.enabled FALSE - Don't autoplay media. | * '''media.autoplay.enabled''' ''FALSE'' - Don't autoplay media. | ||
* media.peerconnection.enabled FALSE - Important for VPN users. Don't allow p2p downloading of media. | * '''media.peerconnection.enabled''' ''FALSE'' - Important for VPN users. Don't allow p2p downloading of media. | ||
* pdfjs.disabled TRUE - Don't run javascript within the builtin | * '''pdfjs.disabled''' ''TRUE'' - Don't run javascript within the builtin PDF viewer. | ||
* reader.parse-on-load.enabled FALSE - disable "reader view" | * '''reader.parse-on-load.enabled''' ''FALSE'' - disable "reader view". | ||
* browser.pocket.enabled FALSE - disable pocket | * '''browser.pocket.enabled''' (or '''extensions.pocket.enabled''') ''FALSE'' - disable pocket. | ||
* network.http.speculative-parallel-limit 0 - don't create connections to links [http://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests you only hover over] | * '''network.http.speculative-parallel-limit''' ''0'' - don't create connections to links [http://news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests you only hover over]. | ||
* dom.push.connection.enabled FALSE - Disable push notifications (FF44+) | * '''dom.push.connection.enabled''' ''FALSE'' - Disable push notifications (FF44+). | ||
* dom.push.enabled FALSE - (as above) | * '''dom.push.enabled''' ''FALSE'' - (as above). | ||
* dom.webnotifications.enabled FALSE - (as above) | * '''dom.webnotifications.enabled''' ''FALSE'' - (as above). | ||
* dom.webnotifications.serviceworker.enabled FALSE - (as above) | * '''dom.webnotifications.serviceworker.enabled''' ''FALSE'' - (as above). | ||
* loop.enabled FALSE - Disable loop/conversation calling features. | * '''loop.enabled''' ''FALSE'' - Disable loop/conversation calling features. | ||
* browser.urlbar.unifiedcomplete FALSE - Disables the "Search With" popup when typing into the location bar. | * '''browser.urlbar.unifiedcomplete''' ''FALSE'' - Disables the "Search With" popup when typing into the location bar. | ||
* media.ffmpeg.enabled FALSE (linux only as of FF44) - Disable mp4 playback through ffmpeg, to stop ffmpeg bugs breaking your | * '''media.ffmpeg.enabled''' ''FALSE'' (linux only as of FF44) - Disable mp4 playback through ffmpeg, to stop ffmpeg bugs breaking your Firefox. | ||
* media.eme.apiVisible FALSE - Stops pages from using a JavaScript library for DRM (Digital Rights Management/ | * '''media.eme.apiVisible''' ''FALSE'' - Stops pages from using a JavaScript library for DRM (Digital Rights Management/ | ||
Digital Restrictions Management) in html video. | Digital Restrictions Management) in html video. | ||
* media.eme.enabled FALSE - (as above) | * '''media.eme.enabled''' ''FALSE'' - (as above). | ||
For a privacy conscious user.js, study https://github.com/crisbrm/user.js for a user.js that comes with minimal breakage, or https://github.com/ | For a privacy conscious user.js, study https://github.com/crisbrm/user.js for a user.js that comes with minimal breakage, or https://github.com/arkenfox/user.js for one with even more emphasis on security (occasionally at the cost of functionality, like when you completely disable DOM storage, for instance), and less emphasis on blending in. | ||
To compare a myriad of privacy-conscious user.js files, use [https://github.com/jm42 jm42's] [https://jm42.github.io/compare-user.js/ compare-user.js] | To compare a myriad of privacy-conscious user.js files, use [https://github.com/jm42 jm42's] [https://jm42.github.io/compare-user.js/ compare-user.js] | ||
Line 194: | Line 229: | ||
* [http://www.logicalincrements.com/firefox/ Falcon's Firefox /g/uide.] | * [http://www.logicalincrements.com/firefox/ Falcon's Firefox /g/uide.] | ||
* [https://gnu.org/software/gnuzilla/addons.html A list of free software add-ons compiled by the GNU Project.] | * [https://gnu.org/software/gnuzilla/addons.html A list of free software add-ons compiled by the GNU Project.] | ||
* [https://ffprofile.com/ ffprofile] A convenient profile creator. Change about:config and install extensions. | |||
[[Category:Browser]] | [[Category:Browser]] |
Latest revision as of 01:23, 2 July 2023
Mozilla Firefox | |
Type | Free |
Layout engine | Gecko |
Website | https://www.mozilla.org/en-US/firefox/ |
Firefox is a free and open source web browser developed and maintained by the Mozilla Corporation which is owned by the Mozilla Foundation. It is known for its high degree of customizability through add-ons and its adherence to Web standards.
Official branches
Unfortunately, the v3.6.x series of Firefox is now unsupported. It will no longer receive security or stability updates. Please use Pale Moon for those olde-skool aesthetics.
Mozilla offers five officially compiled branches or channels of Firefox. These are Release, Beta, Dev Edition, Nightly, and ESR.
- The Release branch of Firefox is geared towards the the average home or office Web user. It receives a major update every four weeks if all goes according to plan, but security and stability patches are issued as needed in the meantime.
- The Beta branch of Firefox is geared towards home users who want to try new features a few weeks early while contributing to Firefox development. It is generally quite stable with most remaining bugs being specific to certain configurations or drivers. In the course of a typical six week beta run, there are between seven and thirteen builds released.
- The Developer Edition or alpha branch of Firefox replaced the Aurora branch and is geared towards Web developers and includes extra development tools and a special theme. Some instability and bugs should be expected.
- The Nightly or pre-alpha branch is intended for testing and debugging purposes. It represents the bleeding edge of Firefox development, so the likelihood of encountering instability, security vulnerabilities, and major bugs is high. As the name implies, Nightly typically receives patches on a day-to-day basis and new features as soon as they become ready.
- The Extended support release or ESR branch of Firefox is geared towards large organizations who require long-term support for mass deployments, but it is can also be a good option for the technologically illiterate. It remains static for approximately one year after a major release, receiving new code only in the form of security and stability patches.
Regarding experimental features, Mozilla gives you the option to install an extension that allows you to enable them before they come enabled out of the box, if they ever make it to the stable branch. For more information, go to testpilot.com.
Notable forks
Due to the free and open source nature of its code base, Firefox has given rise to several forks.
- GNU IceCat is a fork maintained by the GNU Project for those who happen to be of one mind with Richard Stallman. In addition to removing and replacing the copyrighted or trademarked parts of Firefox, the maintainer has added a couple of minor privacy and security features.
- Pale Moon is a fork of Firefox ESR dedicated to providing an optimized Firefox with the classic user interface layout of the v3.6.x series and maintaining support for XUL. Pale Moon is offered in both 32-bit and 64-bit builds, and uses a fork of the Gecko rendering engine called Goanna. For a complete list of the differences between Pale Moon and Firefox, see this page. Note: it's made by a furry who has a fursona named Moonchild. He has art and has written furry stories. His furry website is here.
- The Tor Browser Bundle is a package designed specifically to visit Onion sites and to browse the Internet through the Tor network.
- LibreWolf Fork of Librefox.
Add-Ons
WebExtension support and legacy add-ons
Starting with Firefox 57, add-ons using XUL were no longer supported. Some browsers such as Pale Moon and SeaMonkey, however, preserve the support for these legacy add-ons. Luckily, the Pale Moon team have a working archive of (almost) all the legacy add-ons, which you can install and use as an add-on in the aforementioned browsers.
Tags
— Is a legacy add-on, and can only be used on a Firefox fork that supports legacy add-ons (Waterfox, Pale Moon, SeaMonkey). Can be downloaded using the Classic Add-ons Archive.
— Is a WebExtension Add-on. Can be run on any modern Firefox or Firefox fork (Including Waterfox, Pale Moon and SeaMonkey).
Notable add-ons
Adblocking, privacy, and security
LocalCDN is an updated fork of Decentraleyes, emulates remote frameworks (e.g. jQuery, Bootstrap, AngularJS) and delivers them as local resource. Prevents unnecessary 3rd party requests to Google, StackPath, MaxCDN and more. Prepared rules for uBlock Origin/uMatrix.
Multi Account Containers is an extension by mozilla that lets you filter your browser's cookies into "groups".
ClearURLs is a extension that automatically removes useless tracking elements from URLs
uBlock Origin is a lightweight and low-resource adblocker. Has many filter lists built in, with EasyList, Peter Lowe’s Ad server list, EasyPrivacy, and Malware domains enabled by default.
- Can fully replace NoScript in advanced mode and outperform it, whilst offering more features.
- Able to replace ClearURLs by adding LegitmateURLShortner list.
- Not to be confused with 'uBlock', an EXTREMELY outdated fork with some very slight changes to the UI.
- If you feel bad about blocking advertisements, make a deal with yourself: you'll stop blocking ads when major international internet companies stop serving malware.
- Supports the WebExtensions API.
uMatrix, made by the creator of uBlock, is a high performance matrix-based firewall that supports hosts files, capable of blocking a myriad of objects, complete with per-hostname and global toggles, as well as plenty of privacy oriented features. Able to replace NoScript1, policeman, and request policy continued. Can be used with uBlock.
- 1 - Cannot replace NoScript's surrogate script functionality (which is very, VERY rarely used anyway). uBlock has a similar feature called redirect, whose purpose is to redirect blocked resources to locally-hosted, neutered contents. Deprecated in support of uBlock Origin.
Customisability
Panorama View is a WebExt replacement for tab groups
Tree Style Tabs shows tabs like a tree.
New Tab Homepage will load your homepage whenever you open a new tab.
Stylus lets you customise websites by setting custom CSS for them. It is a replacement for the previously recommended add-on Stylish, which was brought out by a company and is now spyware that steals browsing history and more.
OneLiner (also exists as "Liner") puts all the different bars at the top of the page, into a single bar (url, tabs, etc all on the same line). This can also be achieved with css.
Usability
WxIF is a WebExt port of the legacy add-on FxIF. A tool to view EXIF data in image properties.
Greasemonkey manages Userscripts.
Violentmonkey manages Userscripts as well as Greasemonkey.
Tampermonkey manages Userscripts as well as Greasemonkey and Violentmonkey. The downside is that it is not Free Software.
Redirector automatically redirects to user-defined urls on a per-hyperlink basis.
VimFx offers Vim bindings without changes in the UI.
Vimium-FF offers vim bindings via WebExt. However all WebExt extensions offering vim bindings are limited and will not work as well as they should (you will still need the mouse), due to how WebExt/nu-firefox works.
There is a list on the vim wiki that goes over all the vim extensions/add-ons.
Notable patches
Bugs are explicitly stated.
OpenSUSE-KDE
This patchset makes trivial changes to Firefox to improve its aesthetic and functionality.
- Adds KDE integration to Firefox.
- Changes your
general.useragent.locale
tochrome://global/locale/intl.properties
. - Adds higher resolution icons.
PGO
This simple patch enables Profile-Guided Optimization techniques for the GCC build. PGO builds consist of two passes: the first one builds instrumented binaries, and the second one to rebuild optimized binaries. It might result in a slight performance increase of roughly ~5%, for double the compilation time.
As it stands, the clang-pgo.patch may not be working.
Bugs
- The Makefile.in file might not have the compile rule called pgo-profile-run1.
- Solution: add the pgo-profile-run rule to the Makefile.in.
DNS over HTTPS and Encrytped SNI
Newer Firefox versions support DNS over HTTPS and Encrypted SNI. For an introduction to ESNI read this article from the EFF.
Upsides of DoH: Your ISP knows less about you.
Downsides of DoH: Your DNS resolver knows a lot more about you including your browser and operating system, and can set cookies. (Bet you didn't know).
To enable DoH:
- Set
network.trr.mode
to2
.
- Set
network.trr.uri
to a DoH compliant server such ashttps://mozilla.cloudflare-dns.com/dns-query
.
DNS over HTTPS is an ESNI prerequisite.
For ESNI set network.security.esni.enabled
to true
.
[Test your configuration courtesy of CloudFlare]
Ricing
You can edit Firefox's appearance with CSS (Cascading Style Sheets). To be more general, you can alter ANY web page with CSS. This is achieved with the usage of userstyles. To use and take complete advantage of them, you need a userstyle manager. Stylus is the non-botnet version of Stylish that accepts the same scripts. A repository of userstyles can be found at userstyles.world.
Config
Below are options in about:config worth considering. Instead of doing this manually, consider visiting ffprofile to do this much easier and install extensions as well.
- dom.storage.enabled FALSE - Disable "client-side session and persistent storage" cookies (bad for 8ch - the replies hyperlinks next to the post number disappears).
- geo.enabled FALSE - Disable location data.
- general.useragent.override - Create as a String value and insert your own useragent.
- network.dns.disablePrefetch TRUE - Stop Firefox looking up IP addresses of links of the page you haven't/aren't going to.
- network.http.pipelining TRUE - Possible speedup for some servers (send multiple files through one connection).
- network.http.pipelining.max-optimistic-requests 8 - Total number of pipelines.
- network.http.pipelining.ssl TRUE - Pipeline with HTTPS sites.
- network.http.proxy.pipelining TRUE - Pipleline through proxy connections.
- network.http.sendRefererHeader - 0 = never (bad for 8ch), 1 = domain only, 2 = full url (default).
- network.prefetch-next FALSE - Don't download pages linked to the current page unless we click the link.
- dom.event.clipboardevents.enabled FALSE - Don't allow webpages to mess with the clipboard.
- dom.disable_window_move_resize TRUE - Don't allow webpages to move or resize the browser window.
- dom.ipc.plugins.flash.subprocess.crashreporter.enabled FALSE - Don't report flash plugin crashes.
- media.autoplay.enabled FALSE - Don't autoplay media.
- media.peerconnection.enabled FALSE - Important for VPN users. Don't allow p2p downloading of media.
- pdfjs.disabled TRUE - Don't run javascript within the builtin PDF viewer.
- reader.parse-on-load.enabled FALSE - disable "reader view".
- browser.pocket.enabled (or extensions.pocket.enabled) FALSE - disable pocket.
- network.http.speculative-parallel-limit 0 - don't create connections to links you only hover over.
- dom.push.connection.enabled FALSE - Disable push notifications (FF44+).
- dom.push.enabled FALSE - (as above).
- dom.webnotifications.enabled FALSE - (as above).
- dom.webnotifications.serviceworker.enabled FALSE - (as above).
- loop.enabled FALSE - Disable loop/conversation calling features.
- browser.urlbar.unifiedcomplete FALSE - Disables the "Search With" popup when typing into the location bar.
- media.ffmpeg.enabled FALSE (linux only as of FF44) - Disable mp4 playback through ffmpeg, to stop ffmpeg bugs breaking your Firefox.
- media.eme.apiVisible FALSE - Stops pages from using a JavaScript library for DRM (Digital Rights Management/
Digital Restrictions Management) in html video.
- media.eme.enabled FALSE - (as above).
For a privacy conscious user.js, study https://github.com/crisbrm/user.js for a user.js that comes with minimal breakage, or https://github.com/arkenfox/user.js for one with even more emphasis on security (occasionally at the cost of functionality, like when you completely disable DOM storage, for instance), and less emphasis on blending in.
To compare a myriad of privacy-conscious user.js files, use jm42's compare-user.js
External links
- Panopticlick compliant guide
- Falcon's Firefox /g/uide.
- A list of free software add-ons compiled by the GNU Project.
- ffprofile A convenient profile creator. Change about:config and install extensions.