WebKit and Chromium are hard forks. The former is a fork of KHTML, and the latter is a hard fork of the former. However, in recent years I’ve only seen soft forks, and as for hard forks, I’ve only seen one with Pale Moon, which hard forked Gecko and named it Goanna due to disagreements with the direction the Mozilla Project was taking.
But why wouldn’t any organization make a hard fork, whether of WebKit, Chromium, Firefox, or another browser not based on the three mentioned above?
Because developing and maintaining a browser is extremely hard and expensive. It’s easier and cheaper to just soft fork a browser, still depending on it, and then make all the changes that are needed.
What a lot of people are forgetting to mention here, is that the reason why maintaining a browser is so hard is because Google keeps updating the standards, and has the resources to do so, while Firefox struggles to keep up.
Remember, Google Chrome is Google’s OS. Like Microsoft has Windows, and Apple has MacOS. This is why web standards include support for USB, GPU, and other esoteric use cases. It’s in Google’s best interest for users to use web apps to do things instead of desktop apps, since that means they are likely using Chrome, within Google’s control. And Google has a perverse incentive to keep evolving these standards so that other browsers struggle to keep up, and their browsers feel outdated and feature lacking relative to Chrome.
On the specific case of Firefox - its code not only is huge complex but also a bit of a mess. There were efforts many years ago to do a Qt port of Firefox but they found out it was really hard to decouple the Gecko engine from the UI part. That’s why you can’t find 3rd party “frontends” using the Gecko engine, but only what would be Firefox forks with extra steps, cosmetic changes and so on, but nothing really substantial - big changes in Firefox would break them.
One of the reasons I’m really looking forward to Servo development is for this reason.
What’s Servo? 🤔
a browser written entirely in rust, should be fun on redoxos when it matures (all rust operating system with a mini kernel)
A playable character from the Sims 2 expansion “Makin’ Money”
Modern web browser hard to maintain and develop. Really hard.
Arent Browsers almost as complicated as OSes?
Possibly more complicated than OSes.
(Depends on the browser, and possibly what counts as the scope of the “OS.” For example, you could be comparing GNU/Linux+wayland+KDE to Netscape 1.0, or you could be comparing modern Firefox to QDOS.)
Remember, a modern web browser contains a Javascript VM, which arguably makes it an OS in and of itself.
Money that could be better used on other projects.
FOSS exists, which is where people do things for no money, just because they think it will help people
A modern webbrowser has more loc than the operaring system running it.
I don’t think that’s quite right. The Linux kernel, Firefox and Chromium all sit around 30 millions lines of code, last I checked, so if you add the rest of the operating system, it should still have more lines of code than the browser.
But yes, similar order of magnitude.
There is
ladybugladybird*Ladybird
which is however not a fork, either hard or soft, of anything
Xd
Because there’s no good reason to do that that justifies the cost and effort.
Hard forks are generally fairly rare, e.g. you could ask the same about the Linux kernel…
Security is hard, having timely compatible patches is priceless.
keep in mind that the web specifications are incredibly complex. by some counts it’s probably the most complex program most people will ever use. to be clear, that count includes a lot of stuff that has never been implemented. but even so, you would have to read and implement a substantial subset of these to make a web browser. even if you hard fork an existing browser, you have to deal with every new bug and security issue and feature and every new spec the w3c puts out. it’s a huge fucking mess.
There are too many forks already lol. And none of the forks have the features I want anyway. It’s also expensive.











