I’ve been using Firefox almost exclusively since at least October 2002, when it was known as Phoenix 0.3. It is the only modern browser developed by a non-profit foundation with the goal of keeping the Internet an open platform. It is fast, it usually needs less memory than other browsers (especially with many tabs open), it has pretty good developer tools and it is officially supported on Windows, macOS and Linux, as well as Android and iOS – there are also inofficial ports for other operating systems like FreeBSD, NetBSD and illumOS.
Unfortunately, its market share kept decreasing since the release of Google Chrome, and I think there are some areas where it falls behing other browsers, from a technical perspective.
Multiprocess web content
Firefox recently added support for running web content in separate processes. Unlike Chrome or Safari, it doesn’t run each tab in a separate process (this would be needed for better sandboxing and interactivity, but it increases memory consumption). Firefox currently uses 1 or 2 web content processes, which should at least allow the browser to remain responsive if something bad happens in a tab.
Unfortunately, as I discovered while investigating a memory leak in Jenkins CI, Firefox completely stops responding, making it impossible to close the problematic tab – I had to kill Firefox using the process manager of the operating system before it could trigger an out-of-memory event. Chrome and Safari remain responsive the whole time, and closing the “bad” tab works immediately, without any issues.
Firefox used to have an advantage on older computers due to using less memory than Chrome. That seems to have changed during the last few releases: while the Firefox memory usage slightly increased, Chrome now needs 100-200 MB less than Firefox, with the same set of open pages. Maybe Google’s efforts to reduce memory consumption in Chrome are producing visible results.