Web browsers, Windows RT and the EU: what it's really about

As you no doubt already know, Microsoft has had a number of spats with the European Union this past summer. While they sorted out the disappearance of the browser ballot screen on Windows 7 SP1 and Windows 8, a more recent issue still remains. However, this issue is not with Windows 8 as such, but, rather, Microsoft's newest operating system: the confusingly named Windows RT. While this OS may look the same as Windows 8 on the covers, underneath it actually runs on the ARM processor architecture and cannot run desktop apps.

Recently, Mozilla and Google both raised a complaint to the EU that they won't be allowed to run their desktop Web browser apps on Windows RT. While perfectly legitimate arguments have been raised for why their complaints are invalid (e.g. the fact that Windows RT is not Windows 8, so it has no market share), there is more to this debate than what most people understand.

I wanted to write this article to help people understand exactly what Mozilla and Google are actually complaining about, because there is one technical aspect of Windows 8 and Windows RT that I have never seen any of the press mention. Windows 8 has two types of apps, right? The new Windows 8 apps/Windows Store apps/WinRT API-based apps/Immersive apps/Metro style apps/Mordern UI apps (or whatever Microsoft would like to call them next) and the old desktop apps. Wrong! There is a third type app, and this is one that Microsoft doesn't want to mention much because most developers won't be able to make this type of app anyway. It's called a "Metro style-enabled Desktop Browser" (which is clearly the most long-winded and unimaginative name for an app-type ever, and I don't want to think of how much longer it will be once they get round to rename it to something without the word "Metro").

Metro style-enabled Desktop Browsers

Now before I go into detail on what a "Metro style-enabled Desktop Browser" is, let's be clear on something: Mozilla and Google don't care less about putting the desktop version of their apps on Windows RT. All they want is to be able to let users install the Metro style versions of Firefox and Chrome on Windows RT.

I remember when the Windows 8 Developer Preview was first announced at Build 2011 Now, being a not-for-profit, Mozilla like to do their software development out in the open, so I was able to watch as the Moz Devs looked all over the new app platform to see how they could get Firefox to work on it. They showed excitement at the possibility of re-writing parts of Firefox in the new WinRT APIs. But during their research, they realised that the WinRT APIs had certain limitations that prevented them from putting Firefox on Windows 8. They couldn't use things like JIT compilation, which is basically something they use to make Web pages with heavy use of JavaScript run faster. They also couldn't have multiple background processes running inside one app. Loads of limitations like these kept cropping up during their research, despite the fact that the old APIs for making desktop apps -- the Win32 APIs -- allowed them to do this.

But then, that raised a question: Why is it that Internet Explorer 10's Metro style app is able to do these things and yet the Moz Devs couldn't? The answer to this question was not revealed until the Windows 8 Consumer Preview was released in January 2012, when Microsoft published a whitepaper called Developing a Metro style enabled Desktop Browser. While the document didn't give every detail, it explained exactly how browser vendors would be able to make a Metro style version of their desktop browsers without sacrificing any of the advanced features they had with the old Win32 APIs. It explained that it would work in exactly the same way as IE10: by making a Metro style-enabled Desktop Browser.

So what is a Metro style-enabled Desktop Browser? It's basically a hybrid of Metro style apps and desktop apps. It lets browser vendors use the Win32 API for all of the special features they need, while also letting them use the WinRT APIs for implementing the Metro UI features like live tiles, the splash screen, the app bar and the Share Charm.

However, there was a catch. The Metro-style version of a Web browser can only be used if it is set as the default browser. This is why IE10's live tile becomes an ordinary desktop tile when you set a different browser as the default browser. But why would Microsoft have this restriction? The reason is simple: Metro style-enabled Desktop Browser have special privileges that no other apps can enjoy. Microsoft can't let other Metro-style apps pretend that they are Metro style-enabled Desktop Browsers just so that they can access these special functions.

Metro style-enabled Desktop Browsers also have an important limitation: because they are still desktop apps underneath, they cannot be installed directly from the Windows Store. They must be installed the traditional way.

What about the EU?

So it's quite clear that Mozilla and Google have no issue with implementing their browsers on Windows 8; they have just as many capabilities as IE10. But on Windows RT, it's a different story. The fact is that you will not be able to install Metro versions of Firefox and Chrome on Windows RT. Is it because Microsoft doesn't want you to install third-party Web browsers on Windows RT, as with Apple and iOS? No. The reason why is because Metro style-enabled Desktop Browsers are still part-desktop app, and Microsoft doesn't allow any type of desktop app to be installed on Windows RT. While I'm sure they would want to allow browser vendors to install Metro style-enabled Desktop Browsers on Windows RT in order to get the EU off their backs, the only way they can is by enabling the installation of any desktop app, which is clearly not the ideal solution.

So if the EU rule that Microsoft must allow browser vendors to install Metro style-enabled Desktop Browsers on Windows RT, Sinofsky and the gang will be left with a puzzle: How can they allow Metro style-enabled Desktop Browsers to be installed on Windows RT without allowing other third-party apps on the desktop?

In conclusion, I hope that helped to give you now have a better understanding of this debate is really about.

If you're interested in my opinion, I agree that the EU doesn't have the right to force Microsoft to allow different browsers to run on Windows RT, because it's a different operating system that currently has no market share. On the other hand, iOS has a huge market share, yet the EU don't seem to have a problem with the fact that everyone is limited to using Safari*. That said, I believe everyone should have a choice of Web browsers on all of their devices, so I'm not complaining about the anti-trust investigation if it means we could have better browser choice on Windows RT.

*Yes, I know that you can install Chrome on iOS, but the Chrome app only has Chrome's front-end UI. Underneath, the app still uses Safari's browser engine, WebKit. Chrome on desktops and Android uses a modified version of WebKit with Google's own JavaScript engine. This is why you don't see Firefox with the Gecko engine or Opera with its Presto engine on iOS.