Forum Discussion
What were the main reason(s) Microsoft chose Chromium over Firefox?
I just saw a post on my Twitter from EdgeDev and they said they contributed so much to the project. with hashtag #Opensource
Open source is good but Chromium is not the only open source engine, There is Firefox, fully open source and it uses Gecko layout engine. it's been around way longer than Chromium, in fact it is one of the first engines that was ever created.
So I'm both curious and really interested to know the logic and reason that why Microsoft chose Chromium instead of Firefox.
hopefully we will see some official responses here too in addition to others 🙂
I insist that these reasons are mostly from a business and technical point of view.
1. Integration
Its rare to find any applications using embedded Gecko.
XUL is Mozilla's UI markup language, similar to HTML.
Gecko has always been rather tightly bound with Firefox/XUL. If you did not want to build your interface in XUL then the embedder was carrying around a bit of extra code that was complicated. There have been some various attempts at making Gecko an embeddable interface independent engine.
Although In recent years, Mozilla has greatly been reducing the usage of XUL in Firefox.
I think Mozilla is right not to invest in embeddable Gecko. Even if they succeeded; on a technical level, Gecko + Xulrunner = pretty huge code base. And if they manage to get Servo into production anytime soon it would just be a waste of time anyway.
https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Embedding_Mozilla/FAQ/Embedding_Gecko
It's something that even Mozilla recommends against.
Due to limited developer time and resources, embedding seems to have gone largely out of focus and thus Gecko is indeed harder to embed than WebKit.
Servo aims to be more embeddable but the API is still in work. (more info in the next section)
2. Stability/Reliability
https://en.wikipedia.org/wiki/Servo_(software)
The link you've provided clearly states that Servo's "CEF support never reached a usable state and support was removed from Servo in early 2018".
But it does not necessarily mean that Servo is deprecated or an abandoned project.
https://servo.org/
https://github.com/servo/servo/wiki/Roadmap <== This should be sufficient
As you can see the project is under active development and aims to replace major components of Gecko with the ones written in Rust.
https://wiki.mozilla.org/Oxidation
3. Familiarity/Compatibility
While Firefox's extension store might be one of the best, its something inevitable that chrome has the most amount of extensions available and most newer extensions are mostly limited to chrome.
most of those 'newer' extensions are developed by the same people who don't read or care about web standards in general.
4. Monopoly
Like I have previously mentioned, while Chromium is a free and open source project developed by Google, modifying the source code shouldn't go unnoticed. Besides, it goes through many reviews and isn't instantly merged into their Stable branch which Chrome is built on.
I'm not saying that monopolies are good, but even Google's "dictations" are Open Standards and that is nowhere as bad as closed sourced ones (IE).
And browser built upon the same platform (Chromium) are not Forced to follow Google's standards, if They have significant Marketshare they can do what google did with Webkit. Fork it.
and regarding UA sniffing, most browser capabilities (tech's) could be 'spoofed' in a similar way.
27 Replies
- Akshay_ManeIron Contributor
MS probably decided against it because:
If they're doing this for better web compatibility, WebKit/Blink is the obvious choice, sadly. Some of Microsoft's web products don't fully support Firefox, but do support Chromium.
Chromium is more easily embedded, which may help them put it into a UWP app and the UWP API.
Chromium has a slightly more permissive license for MS to do proprietary things with it if they want to.
Would've been nice though.
Akshay_Mane wrote:MS probably decided against it because:
If they're doing this for better web compatibility, WebKit/Blink is the obvious choice, sadly. Some of Microsoft's web products don't fully support Firefox, but do support Chromium.
Chromium is more easily embedded, which may help them put it into a UWP app and the UWP API.
Chromium has a slightly more permissive license for MS to do proprietary things with it if they want to.
Would've been nice though.
Thanks, these sound great too, specially number 3!
- tomscharbachBronze Contributor
HotCakeX "So I'm both curious and really interested to know the logic and reason that why Microsoft chose Chromium instead of Firefox."
Microsoft hasn't, as far as I know, issued any statements or advisories about why Microsoft chose Blink (Chrome) instead of Gecko (Firefox), but it did issue a number of statements indicating that Microsoft's motive in replacing IE/Edge was to improve compatibility and simplify web-based design/deployment.
It seems to me that if compatibility and simplification were the drivers, then the reason why Microsoft chose Blink is almost a no-brainer. Cross-platform, Blink-based browsers have about a 65-70% market share (slowly rising), Webkit-based browsers have about a 15-20% market share (more or less stable but irrelevant to the Windows market) and Gecko-based browsers have about a 5-10% market share (slowly eroding).
The well-stated technical issues Thraetaona raised (integration and stability) are important and might well have been a determining factor if the contest between Blink and Gecko was close (and would be sufficient reason to choose Blink over Gecko in that event), but I don't think that it got to that point. I think that Blink was the inevitable choice given Microsoft's stated goals.
The market bit Microsoft badly when Microsoft introduced Edge using a non-standard engine (Edge quickly turned into a niche product), and once bitten, twice shy.
- ThraetaonaIron Contributor
From a technical and business perspective it was better to choose Blink over Gecko due to several reasons
1. Integration; It's harder to embed Gecko compared to Blink. (There's a reason everyone's going with Webkit/Blink) And since Microsoft acquired Github along with Electron, which is already using Chromium's engine at its core, improving and integrating the new Chromium-based edge should result in Electron apps being both faster and smaller in size.
Its worth mentioning that Progressive Web Apps are the upcoming alternatives to Electron. Microsoft already added support for PWAs in Edge, now they should work with other browsers vendors to add missing functionality, like file system access.
2. Stability/Reliability; With Servo around and major rewrites of the Gecko's components in Rust already in-progress, Gecko wouldn't really be a viable option
3. Familiarity; Chrome has the most amount of extensions available, something the classic edge has always lacked, building upon Chromium's Foundation should make the transition from other web browsers easier and smoother for the end-users.
4. Compatibility; Because of chromium's massive marketshare, most of web contents are built/optimized with chrome in mind.
Many sites are created and run by developers who haven’t read and don’t care about web standards; this is why all the effort to create a real standards-compliant browser fail, They either have to create fixes (hacks) for nearly every site (Almost Impossible) or switch to chromium.
Less browser diversity = Less targets to test for
Although having a monopoly in the market should generally be bad, chromium, unlike IE is not closed source and can always be forked.
The real question after a while should be: why would anyone choose to use a different browser other than the pre-installed one that is equal, if not better?
Hope this Helps!
- Spoiler
Thraetaona wrote:From a technical and business perspective it was better to choose Blink over Gecko due to several reasons
1. Integration; It's harder to embed Gecko compared to Blink. (There's a reason everyone's going with Webkit/Blink) And since Microsoft acquired Github along with Electron, which is already using Chromium's engine at its core, improving and integrating the new Chromium-based edge should result in Electron apps being both faster and smaller in size.
Its worth mentioning that Progressive Web Apps are the upcoming alternatives to Electron. Microsoft already added support for PWAs in Edge, now they should work with other browsers vendors to add missing functionality, like file system access.
2. Stability/Reliability; With Servo around and major rewrites of the Gecko's components in Rust already in-progress, Gecko wouldn't really be a viable option
3. Familiarity; Chrome has the most amount of extensions available, something the classic edge has always lacked, building upon Chromium's Foundation should make the transition from other web browsers easier and smoother for the end-users.
4. Compatibility; Because of chromium's massive marketshare, most of web contents are built/optimized with chrome in mind.
Many sites are created and run by developers who haven’t read and don’t care about web standards; this is why all the effort to create a real standards-compliant browser fail, They either have to create fixes (hacks) for nearly every site (Almost Impossible) or switch to chromium.
Less browser diversity = Less targets to test for
Although having a monopoly in the market should generally be bad, chromium, unlike IE is not closed source and can always be forked.
The real question after a while should be: why would anyone choose to use a different browser other than the pre-installed one that is equal, if not better?
Hope this Helps!
" It's harder to embed Gecko compared to Blink."
Source for that?
"With Servo around and major rewrites of the Gecko's components in Rust already in-progress, Gecko wouldn't really be a viable option"
I would take a look at here first
https://en.wikipedia.org/wiki/Servo_(software)
Servo intended to re-implement the Chromium Embedded Framework (CEF) API. This would have allowed Servo to be used as a drop-in replacement for Chromium in applications using CEF, and would have positioned Servo as a competitor to Chromium in these cases.
3. Firefox has been around longer than Chromium and their add-on store is at the very least as rich as Chrome extension store, if not richer. quality over quantity. though I'm not even sure Firefox has lower number of addons compared to Chrome extension store.
4. Chromium, controlled by Google, creates monopoly. they sometimes even dictate web standards which is the rights of a totally different organization.
it's in fact for this very reason why Firefox would be a better option, because it wouldn't give more power to Google.
- ThraetaonaIron Contributor
I insist that these reasons are mostly from a business and technical point of view.
1. Integration
Its rare to find any applications using embedded Gecko.
XUL is Mozilla's UI markup language, similar to HTML.
Gecko has always been rather tightly bound with Firefox/XUL. If you did not want to build your interface in XUL then the embedder was carrying around a bit of extra code that was complicated. There have been some various attempts at making Gecko an embeddable interface independent engine.
Although In recent years, Mozilla has greatly been reducing the usage of XUL in Firefox.
I think Mozilla is right not to invest in embeddable Gecko. Even if they succeeded; on a technical level, Gecko + Xulrunner = pretty huge code base. And if they manage to get Servo into production anytime soon it would just be a waste of time anyway.
https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Embedding_Mozilla/FAQ/Embedding_Gecko
It's something that even Mozilla recommends against.
Due to limited developer time and resources, embedding seems to have gone largely out of focus and thus Gecko is indeed harder to embed than WebKit.
Servo aims to be more embeddable but the API is still in work. (more info in the next section)
2. Stability/Reliability
https://en.wikipedia.org/wiki/Servo_(software)
The link you've provided clearly states that Servo's "CEF support never reached a usable state and support was removed from Servo in early 2018".
But it does not necessarily mean that Servo is deprecated or an abandoned project.
https://servo.org/
https://github.com/servo/servo/wiki/Roadmap <== This should be sufficient
As you can see the project is under active development and aims to replace major components of Gecko with the ones written in Rust.
https://wiki.mozilla.org/Oxidation
3. Familiarity/Compatibility
While Firefox's extension store might be one of the best, its something inevitable that chrome has the most amount of extensions available and most newer extensions are mostly limited to chrome.
most of those 'newer' extensions are developed by the same people who don't read or care about web standards in general.
4. Monopoly
Like I have previously mentioned, while Chromium is a free and open source project developed by Google, modifying the source code shouldn't go unnoticed. Besides, it goes through many reviews and isn't instantly merged into their Stable branch which Chrome is built on.
I'm not saying that monopolies are good, but even Google's "dictations" are Open Standards and that is nowhere as bad as closed sourced ones (IE).
And browser built upon the same platform (Chromium) are not Forced to follow Google's standards, if They have significant Marketshare they can do what google did with Webkit. Fork it.
and regarding UA sniffing, most browser capabilities (tech's) could be 'spoofed' in a similar way.
- alteanBrass Contributor
Thraetaona And what's is going to happen if Edge starts take big chunk of marketshare from Google Chrome? I understand that Chromium is open-source but quite under Google control. They might decide to add some code giving some advantage to Chrome instead of other Chromium-based browsers. Not to mention their popular approach to make Youtube, Gmail and other services to work only/better/faster under Chrome. Using Vivaldi for example had issues with many websites even tho based on Chromium and they changed user agent to Chrome, I think.
altean wrote:Thraetaona And what's is going to happen if Edge starts take big chunk of marketshare from Google Chrome? I understand that Chromium is open-source but quite under Google control. They might decide to add some code giving some advantage to Chrome instead of other Chromium-based browsers. Not to mention their popular approach to make Youtube, Gmail and other services to work only/better/faster under Chrome. Using Vivaldi for example had issues with many websites even tho based on Chromium and they changed user agent to Chrome, I think.
So true.