~ ~ ~ ~ ~ ~ ~ ~ ~

July 7, 2022

Chromium vs. Firefox - Why the Flamewars?

If you are interested at all in the web and the development of the web as time goes on, you are probably acutely aware of the occasional wars you will see on development and computer-focused websites, such as Hacker News, about Chromium vs. Firefox.

There is a good reason for this, and keep in mind as you read this post, that I use and enjoy both of these web platforms - and if you aren't aware of this issue, we're not talking about the individual browsers here (though this can factor in) - instead, we're talking about the base engines that power those browsers.

This isn't about Chrome vs. Firefox - but about Blink vs. Gecko, their underlying rendering engines. Without these, your browser wouldn't be able to understand and parse the webpages that are sent to it.

I'm generally of the opinion that everyone should use what works for them, and ignore what others' opinions of their software choices might be. However, there is some interesting nuance to this conversation that certainly shouldn't be ignored.

I have been seeing this conversation popping up more and more on development sites and the fediverse, so I thought I'd write up a little piece about it.

Who Cares About Rendering Engines?

It really comes down to a simple concept that comes back around to the choice around browsers. The main thing you should understand about this concept is that while there are a healthy selection of browsers out there right now, a good majority of them are powered by Chromium and the Blink engine. The argument is that this gives Google a large amount of power in the future of the web and how things develop around web standards.

Think about it - what browser do you use? I'm willing to bet it's Chrome, as 3.2 billion people currently use Chrome as their main, everyday browser. If you use several other browsers, though, you are - in a way - also using Chrome, but with some customizations.

You see, Google Chrome - the browser - is built on top of Chromium, Google's open-source web browser project. The Chromium browser itself is free and open-source software, and is one of the browsers I use in my day-to-day life. Google takes the Chromium code and adds in their "Googley" bits, such as Sync and their other Google-centric components, and this becomes Chrome.

Anyone else in the world is free to take the Chromium code and build their own browser on top of it, and plenty have. Here are just a few popular browsers that are built on top of Chromium, aside from Chrome:

Those are just a few of the biggest - there have been plenty of other projects from smaller companies and developers that have risen and fallen over the years. Even the Electron application framework is also built on top of Chromium, allowing anyone to build cross-platform applications with web technologies, and many have, including the VS Code and Atom code editors, Slack and Discord desktop applications, and more, to name a few of the most popular offerings.

This sounds all well and good, right? Why not celebrate these platforms that allow anyone to have a framework to build on top of? Does Firefox not offer a similar option? Let's look into each of these questions a little more in-depth.

What About Firefox?

Firefox is an excellent project, and has been a free and open-source web browser since its inception all way back in 2004. I have used Firefox ever since I was first aware of what it was. While it is not the only browser I use, I always love the time I spend in Firefox, and it usually ends up being the main browser I reach for.

The thing is, Firefox usage has declined by quite a bit, and this is not a great sign for the project, because its engine - Gecko - is arguably the last remaning independent engine around. While the internet would continue to chug along if something happened to Gecko, it would mean that there was pretty much only one choice for rendering engines and web platforms - and that would be Blink/Chromium.

Keeping Firefox alive means that there more chairs available at the table for helping shape web standards, and also keeps other players in check. One notable example here is the big Manifest v3 issue, which is Google's new browser extensions standard, and at present, it severely handicaps ad-blocking extensions and other privacy and security-focused extensions.

While the older Manifest v2 standard is about to be going away on Chrome (and likely most other Chromium-based browsers), Mozilla plans to support Manifest v2 (notably the `blocking webRequest` portion needed for ad-blockers and other extensions), along with v3, on Firefox - giving developers more choice on how they code and users more choice on what they can use.

A short aside, with all of the Manifest v3 stuff going on, I will be ceasing supporting my ad and tracker blocking extension, Nightshade Barriers, on Chromium-based browsers, but I will still be supporting it going forward on Firefox.
It's not fun having to kill the extension on Chromium-based browsers, but I'm only one person with a ton of other side-projects and projects I'm building in concert with my company, and I don't feel like I will have the time to maintain trying to hack around v3's new extensions.

This is one example of how having more than one engine and platform around is a good thing. There are a few notable forks of Firefox that you can check out as well, if you'd like - though there haven't been as many notable ones as those which have been built around Chromium.

These are just a few options, and other, smaller ones exist out there as well. It is always cool to see another browser choose to base off of Firefox instead of Chromium.

It is important to note that Safari, Apple's browser, is also a separate engine from Blink or Gecko, and it is called WebKit. However, Blink itself is a fork of WebKit, which is itself a fork of KHTML, so the difference is rather neglible.

Who Cares if Your Browser is Powered by Blink?

Well, your everyday user who has never known anything but Chrome and doesn't use many extensions or follow the web very closely might not, but a ton of web advocates, users, and developers care about this issue.

While Chromium itself is an open-source project that anyone else can fork or contribute code to, there are a few problems:

The ending sentence on the second point is a crucial one to keep in mind - and this is coming from someone who supports and tries to only use free and open-source software where possible: While the spirit of free and open-source software is the ethical and proper way to go, it is still important to remember that someone else still ultimately makes a decision on what code goes into codebases that we don't own, and we have to be okay with that, and use or contribute to alternative projects if we don't agree with the direction a certain one is going.

Closing Thoughts

I am not one of these people that hates Chromium, and many people don't like it just because it's Chromium. I like the Chromium project and I use the browser every day, as well as a few browsers based on it, such as Brave. I say these things only to relay folks' very valid concerns, as there was once a monopoly held on the web by another player at one point - Microsoft, with Internet Explorer. Nowadays, however, Microsoft has killed IE and joined the Chromium platform with their Edge browser, and Google's platform has instead become the dominating browser platform on the internet.

I use all sorts of browsers and champion a free and diverse web - so next time you see someone online talking about the Chromium and Firefox issue, you now have a little more clarity if you didn't before, and hopefully you can see why this is something that is worth having a conversation about.