While there are many web browsers, they're almost all wrappers around
the only three actively developed full engines. Those are:
Gecko (source code):
Developed by Mozilla for Firefox. While it
previously powered several other browsers, at this point it looks like the Tor Browser and
Waterfox are the
only ones still tracking Gecko.
On iOS, all browsers, including Firefox and Chrome, are powered by
WebKit. This is an Apple requirement
(2.5.6), and is controversial.
Blink,
part of Chromium
(source
code): Beginning as a fork of WebKit, it's primarily developed by
Google for Chrome. It also
powers Edge, Brave, Silk, Vivaldi,
Opera,
and most other browser projects (some via QtWebEngine). If someone
introduces a new browser and doesn't talk about its engine, it's very
likely they are using Blink.
You could also make the case for two others:
Flow: A
clean-slate closed-source browser and engine, designed to make
effective use of parallelism. This matters most on highly
resource-constrained devices, and if you have a Raspberry Pi you can
download and play with their demo. The reason I am
not including this engine above (yet!) is that while it's made
impressive progress, including handling Google
Docs, it's still a ways from done; the demo page has "we're not
quite ready to start receiving reports for rendering issues just yet,
these are mostly down to missing features, so as we add them you'll
see those issues steadily disappear over time." You can see which
features they have and haven't implemented on the web-platform-tests
dashboard. To get a very rough sense of where it stands today we
can compare the proportion of web platform tests that pass in each
browser:
Chrome
97%
Firefox
96%
Safari
94%
Flow
24%
Goanna / UXP:
A pre-Quantum
fork of Gecko, developed for Pale
Moon. There doesn't seem to be an official SCM: palemoon.org/sourcecode
links to a snapshot
archive and an archived
GitHub repo. It looks like it was on repo.palemoon.org
until sometime between May and October 2021 (wayback).
Probably ~2021-08-25, since that's the final
public commit. Based on the timing, probably deleted it as part of the MyPallicensingblowup? They
don't seem to participate in web-platform-tests. This
looks like a fork that has fallen well behind Firefox (ex: no web
components or nullish coalescing), and I expect we'll see them fall
further behind and either shut down or rebase on top of one of the
actively maintained engines.
I've heard some concern that we're losing browser engine diversity as
the web platform grows and it becomes harder to build and maintain
something that supports it fully. While I do think the size of the
web platform could have that effect, I'm not seeing it yet. Some of
this is that there just haven't ever been that many competitive browser
engines. In the late 90s, we had three (powering Netscape, IE, and
Opera) and then four (KHTML) in the early 2000s. In 2003 Safari
(WebKit) forked from KHTML, making five. For three months in 2013 we
had six, between Chrome forking WebKit to make Blink (April) and Opera
discontinuing Presto for Blink (July). In 2016 KHTML development fell
off, with consumers switching to first WebKit and then Blink, bringing
us down to four. In 2020 Edge switched from their own engine to
Blink, bringing us down to three. And now with Flow we'll probably be
back to four soon.
While there are many web browsers, they're almost all wrappers around the only three actively developed full engines. Those are:
Gecko (source code): Developed by Mozilla for Firefox. While it previously powered several other browsers, at this point it looks like the Tor Browser and Waterfox are the only ones still tracking Gecko.
WebKit (source code): Beginning as a fork of KHTML, it's primarily developed by Apple for Safari. It also powers GNOME Web (Epiphany) and Otter.
On iOS, all browsers, including Firefox and Chrome, are powered by WebKit. This is an Apple requirement (2.5.6), and is controversial.
Blink, part of Chromium (source code): Beginning as a fork of WebKit, it's primarily developed by Google for Chrome. It also powers Edge, Brave, Silk, Vivaldi, Opera, and most other browser projects (some via QtWebEngine). If someone introduces a new browser and doesn't talk about its engine, it's very likely they are using Blink.
You could also make the case for two others:
Flow: A clean-slate closed-source browser and engine, designed to make effective use of parallelism. This matters most on highly resource-constrained devices, and if you have a Raspberry Pi you can download and play with their demo. The reason I am not including this engine above (yet!) is that while it's made impressive progress, including handling Google Docs, it's still a ways from done; the demo page has "we're not quite ready to start receiving reports for rendering issues just yet, these are mostly down to missing features, so as we add them you'll see those issues steadily disappear over time." You can see which features they have and haven't implemented on the web-platform-tests dashboard. To get a very rough sense of where it stands today we can compare the proportion of web platform tests that pass in each browser:
Goanna / UXP: A pre-Quantum fork of Gecko, developed for Pale Moon. There doesn't seem to be an official SCM: palemoon.org/sourcecode links to a snapshot archive and an archived GitHub repo. It looks like it was on repo.palemoon.org until sometime between May and October 2021 (wayback). Probably ~2021-08-25, since that's the final public commit. Based on the timing, probably deleted it as part of the MyPal licensing blowup? They don't seem to participate in web-platform-tests. This looks like a fork that has fallen well behind Firefox (ex: no web components or nullish coalescing), and I expect we'll see them fall further behind and either shut down or rebase on top of one of the actively maintained engines.
I've heard some concern that we're losing browser engine diversity as the web platform grows and it becomes harder to build and maintain something that supports it fully. While I do think the size of the web platform could have that effect, I'm not seeing it yet. Some of this is that there just haven't ever been that many competitive browser engines. In the late 90s, we had three (powering Netscape, IE, and Opera) and then four (KHTML) in the early 2000s. In 2003 Safari (WebKit) forked from KHTML, making five. For three months in 2013 we had six, between Chrome forking WebKit to make Blink (April) and Opera discontinuing Presto for Blink (July). In 2016 KHTML development fell off, with consumers switching to first WebKit and then Blink, bringing us down to four. In 2020 Edge switched from their own engine to Blink, bringing us down to three. And now with Flow we'll probably be back to four soon.
Comment via: facebook