Are Browser Renderers an OS Component?
They say that you know a technology gets adopted if people don't notice it anymore. My guess is that both Microsoft and Apple are thinking that browser rendering engines are such technologies. I think they are mistaken.
For all intents and purposes, we currently have four major browsers: Chrome, Safari, Firefox, and Edge (and yes, I have placed them in order of importance).
Here's what StatCounter has to say about the desktop market share of browsers:
Chrome is the undisputed market leader. While Firefox and IE are higher than Safari, I'd say Safari is more important -- it is what you get by default on the Mac and the only true browser on iOS. IE is dead and useless -- it is there for support of legacy, but doesn't get any love or attention.
And then we've got Edge, which just doesn't succeed in growing in adoption...
which brings me to two recent stories.
1. Windows 10, Edge, Chrome, and the Windows Store
Windows 10 has its own Windows Store. And Windows Store has rules, which at times are similar to that of the Apple iOS App Store. Specifically:
- Apps need to have some intrinsic value in them
- Apps that render webpages must use the Edge rendering engine
On iOS, all browser apps must be built on top of the embedded WebKit implementation. And WebKit is the rendering engine for the Safari browser.
Now Microsoft is doing the same for Windows 10, at least when the apps are installed only via its Windows Store. The catch here is that browsers aren't the same. Especially not when it comes to cutting edge technologies such as WebRTC.
Today, WebRTC is supposedly available on all four major browsers. But:
- Chrome implements Plan B, with plans to move to Unified Plan. Still, almost all apps built for WebRTC on browsers target Chrome first
- Firefox is fine, but simulcast is a pain I am told. And it does Unified Plan while Chrome does Plan B
- Edge doesn't do WebRTC's data channel at all at the moment
- Safari doesn't support VP8 at all, and fails to run most production scenarios well at the moment
Having Apple ban browsers from its AppStore meant that until recently you could only run native WebRTC applications on iOS, since WebKit on iOS just didn't have WebRTC in it. And now that it does, it still isn't ready for prime time if you're trying to achieve some kind of interoperability across all browsers for anything other than the simplest 1:1 scenario.
And you can't just install Chrome or Firefox on iOS and be done with it. They are but skins on top of Apple's WebKit implementation. Google is ready to make concessions here and build a Chrome skin on top of WebKit on iOS simply because of the iPhone's huge popularity and the fact that there's no other way for Google to have a browser on the iPhone.
Now, we've got the same from Microsoft. And due to that, Google decided to build an application for the Windows Store with the sole purpose of getting people to install their Chrome application -- out of the Windows Store. Which obviously got Microsoft to ban that app.
Google won't be getting Chrome over the Edge renderer any time soon -- not with the low market share that Edge has at the moment, and not with the fact that at least today people are just fine installing stuff from outside the Windows Store.
It's also important to remember that Chrome is a major vehicle for Google to bring its innovations to the Web. Technologies such as WebP and WebM for image and video processing, WebRTC, SPDY that turned into HTTP/2... and the list goes on. Giving in to Microsoft and Edge means losing this advantage.
Will that hold water a year or two down the road, as Microsoft will likely start closing installation alternatives out of the Windows Store? Time will tell.
2. Hangouts on Firefox
Since the day WebRTC came to life, the question was asked: Does Google Hangouts even use WebRTC?
In July 2014, Google rolled out Hangouts to Chrome without plugins. It made use of WebRTC. Hangouts on all other browsers still required a plugin installation. At least until today.
The news of late, is that Hangouts now runs perfectly well on Firefox -- without any plugin or additional installation:
— Tsahi Levent-Levi (@tsahil) December 20, 2017
This required work and effort from both the Mozilla Firefox team and Google's Hangouts/WebRTC team.
Unsurprisingly, Safari and Edge still aren't supported. These are the exact two browser vendors that are forcing their browser renderers in their gated application stores.
The notion that HTML5 rendering and browsing should be part and parcel of the operating system, and something that shouldn't be meddled with by developers, is an important one. But I think we're a tad early to accept it yet. My guess, is that concessions should be made. At least between the large browser vendors.
We're all losers in this game at the moment.