Third Party Browsers Blocked on Windows 8 for ARM?
It seems Microsoft is making it difficult for third parties to create browsers for Windows 8 tablets. A blog post on Mozilla’s website claims that Firefox will not be able to bring a proper version of Firefox to Windows 8 tablets due to restrictions by Microsoft. Since then Google has also chimed in with the same concerns.
Restrictions on tablet platforms aren’t unheard of, but this move is still a little odd. It is due to restrictions on iOS devices that the only browsers available for it use WebKit, so why is Mozilla concerned about Windows tablets but not the iPad? Turns out there are some very good reasons. Before we go into those, let us see how these restriction affect Firefox in the first place.
Two Kinds
It is well known by now that there will be two kinds of applications in Windows 8. The first kind of apps, the kind we are well versed with, are the normal applications we use every day, Paint.net, uTorrent, Steam, even Microsoft Office among the millions of others.
With Windows 8, Microsoft is introducing a new kind of application. These new Metro applications are heavily inspired by Microsoft’s Windows Phone 7 interface, and are optimized for touch.
These applications will not work on Windows 7 or older versions of Windows, and they will also only be available from the Windows Store. These applications are sandboxed, and restricted in many ways.
Now browsers are complex applications. It is difficult to write a well performing browser that can work within the restrictions imposed by Metro. Browsers nowadays are hardware accelerated, and have complex JIT JavaScript engines such as Chrome’s V8 or Firefox’s TraceMonkey / JägerMonkey / IonMonkey. These need to preform operations that are prohibited for Metro applications. Without a JIT engine, browser JavaScript performance would take a step back many years. This makes it infeasible for there to be a pure Metro-based browser.
You might be thinking, doesn’t Windows 8 come with Internet Explorer 10, which runs just fine on in Metro mode? Furthermore, Internet Explorer 10 boasts — even the Metro version — of all the features we have mentioned above that are restricted by Metro.
Special Privileges
Fact is, since Internet Explorer 10 is developed by Microsoft themselves, they have the ability to counter the restriction they have themselves placed on applications in Metro. As such their own browser can run in Metro mode while still using APIs and performing operations prohibited for Metro applications.
If you are concerned that this is an abuse of power, don’t worry just yet. This is of course a matter of some concern, but to explicitly get around this contentious issue Microsoft allows for a third kind of application, a hybrid of Metro and traditional desktop applications.
This type of application is only permitted for building web browsers. Internet Explorer is such an application, and once Windows 8 comes out, you will see other Metro-based browsers emerge which take advantage of this ability.
There is still a catch though. For a browser to work in Metro mode, it need to be the default browser of the system, and support Metro. In other words Metro mode will also only permit one browser. So if you install Firefox and set it as default, you can no longer use Internet Explorer in Metro mode. Likewise if you have Internet Explorer set as the default browser, Firefox will no longer launch in Metro mode, even though it supports it — well it doesn’t support it yet.
It all seems fine till now, perhaps a little contrived, but workable. This issue raised by Mozilla and Google has to with Windows on ARM.
Windows on ARM
With Windows 8 Microsoft is embracing the ARM architecture, making it possible for Windows to run on ARM-based devices.
While Windows 8 on ARM is pretty much the same as Windows 8 on traditional x86 / x86_64 chipsets, it does come with a number of additional restrictions. First of all, Windows 8 on ARM will not support the classic desktop type applications at all. The classic desktop will still be there for copying files around and browsing your computer, but it will not be possible to run any non-Metro applications even if they are compiled for ARM.
Did we say it won’t be possible to run non-Metro applications? What we mean is, you won’t be able to run non-Metro applications unless you are Microsoft. Of course these restriction don’t apply to Microsoft themselves.
Microsoft’s will still have a version of Office 2012 for Windows 8, and this will not be a Metro application, but a proper desktop application running on Windows 8 tablets. This means LibreOffice’s efforts to compete with Microsoft Office 2012 on tablets will be crippled by the fact that they will just not have the level of system access that Microsoft does.
Also, Internet Explorer 10 will run on Windows 8 tablets in Metro mode without the kind of restrictions that will affect other applications developed for Metro. In fact even if other browser vendors create crippled browsers for Metro, they can not be made the default browser, making them painful to use.
This is essentially Microsoft using their position as the creator of a platform to empower their own products. Sadly, this isn’t out of the ordinary considering that Apple restricts third party runtimes on iOS, killing any prospect of a third-party browser on the platform. Windows is a different beast though.
Why Windows is a Different Case
First of all, unlike iOS, Windows will not be restricted to the hardware developed by a single vendor. Secondly, Windows on ARM is just Windows 8, running on ARM chipsets. Unlike iOS and OSX, which are significantly different, Window 8 and Windows 8 for ARM aren’t different operating systems, in fact they can run the same Metro apps. Also important is the fact that there is only one version of Windows for ARM. This isn’t a Windows for tablets that we are talking about, it is Windows for ARM.
ARM chipsets are becoming increasingly capable, and you will find them in servers and notebooks as well. Just like we have ARM tablets, there will undoubtedly be x86-based tablets. Those will run a less restricted version of Windows 8. So why should a version of Windows be arbitrarily restricted based on architecture? Why can’t Microsoft create a similar workaround for ARM as they have for x86?
This is especially strange coming from Microsoft which has already been convicted for doing similar things with IE and Windows in the past. On ARM Microsoft’s operating system does not have a monopoly, or even a presence as of now. However considering that Windows is the same OS whether on x86 or ARM, this move is a little surprising, and a matter of concern.
Mozilla and Google have already weighed in in this matter, and they are obviously not happy with these restrictions.
If Microsoft does choose to stick to the no third-party browsers on ARM policy, other browser will have a hard time competing on tablets since they will be crippled with poor performance compared to the modern Internet Explorer 10 browser.