Asa Dotzler, Product Director for Firefox at Mozilla, has written a blog post saying that "Microsoft is trying to lock out competing browsers when it comes to Windows running on ARM chips." In a follow-up post, he elaborated on the problems the Firefox team is facing in porting the browser to the Windows 8 ARM platform.

On the x86 version of Windows 8, there are three different models of developing software for the platform. In the "Classic" mode, applications, for all intents and purposes, behave the same as they have in Windows 7. So-called "Metro apps" are simpler and do not allow access to many advanced APIs that are necessary for creating a browser port with the same capabilities as the traditional desktop version of the application. The third mode is labelled as "Metro style desktop enabled browsers". Since Internet Explorer is the only browser on Windows 8 that is allowed to be written as a Classic application, Mozilla was forced to write the x86 Windows 8 version of Firefox under the third category.

The problem Dotzler brings up is that, for non-Microsoft software, only Metro-style apps are allowed on the ARM version of Windows 8. In a comment on his post, Dotzler explained that the Metro applications are subject to a number of restrictions. For example, Metro applications cannot do things like making memory writeable and creating additional processes. Firefox uses both these techniques; having writable memory enables just in time compilers for fast JavaScript and additional processes allows tabs to run more securely in their own process. But since Mozilla can only write the ARM version of Firefox as a Metro style application, Firefox would be a second class citizen – Internet Explorer, which can use all the abilities available to it as a Classic application, would be a lot more powerful.

Meanwhile, Google has backed up Mozilla, saying that it shares the concerns that the Firefox team has expressed. A Windows 8 ARM port of Chrome would face the same limitations if Microsoft persists in allowing third-party browsers to only be implemented as Metro applications.

See also:

(fab)