Gifts Under $30 Gifts Under $50 iPhone Emergency SOS Saves Man MyHeritage 'Time Machine' Guardians of the Galaxy 3 Trailer White Bald Eagle Indiana Jones 5 Trailer Black Hole's 1,000 Trillion Suns
Want CNET to notify you of price drops and the latest stories?
No, thank you

Why Mozilla believes Firefox on Windows RT is a bust

Mozilla could bring Firefox to Windows Metro. But without access to system services that IE10 gets, it would be hobbled, and Mozilla would be shut out of a new PC segment.

Mozilla's Asa Dotzler
Mozilla's Asa Dotzler

Technically, Microsoft hasn't banned non-IE browsers in Windows RT, the forthcoming Windows 8 version for machines with ARM processors. But as Mozilla sees it, Microsoft may as well have.

Why? Because Microsoft permits only its own software to use a restricted set of Windows interfaces. This means Firefox and other browsers don't get access to the same application programming interfaces (APIs), which in turn means they don't get the same abilities and will effectively be crippled, said Mozilla spokesman and longtime participant Asa Dotzler.

"Without these APIs, it is not possible to build a modern Web browser," Dotzler told CNET. For example, he said, there is no way to run Web pages' JavaScript fast.

The issue came to a head this week when Mozilla began a publicity campaign intended to persuade Microsoft to accommodate other browsers on Windows RT. Mozilla isn't alone: Google shares its concerns and is a potentially powerful ally.

Opera, which like Mozilla is a veteran of earlier browser wars and lived through years during which Microsoft's Internet Explorer was the dominant browser, declined to comment. Microsoft and Apple didn't comment on the matter.

New Mozilla challenges
Mozilla is fighting to give Firefox a place on Windows RT during a challenging time for the nonprofit. In its market stronghold, personal computers, it is challenged by a resurgent IE and the rise of Google Chrome.

That's a familiar competitive battleground, but the fast-growing new smartphone and tablet markets bring new difficulties. On iOS, Apple bars browsers that don't use the WebKit browsing engine of its own Safari. Google permits other browsers on Android, but Firefox isn't pre-installed and doesn't show up in mobile browser usage statistics.

Virtually all iOS, Android, and Windows Phone devices today use ARM processors, a sharp contrast to the x86 chips used in Windows, Mac, and Linux PCs. Windows RT will run on ARM processors, benefiting from those chips' low power consumption and attendant usefulness in mobile devices. But Windows RT won't be just for Windows tablets; Microsoft is taking a hybrid approach in which tablets can behave like traditional PCs, too.

Thus, in fighting to give Firefox a place on Windows RT, Mozilla is trying to prevent being squeezed out of a new category of computing devices.

"The problem is that over the future, ARM will increasingly be the processing architecture for what we think of as laptops," said Harvey Anderson, Mozilla's general counsel. "In five years, they could be 15 or 20 percent of the market. Maybe a few years more, and we're back to a Windows environment that only has one browser."

With Windows RT, it appears Microsoft is trying to build a controlled environment more like iOS than the comparative free-for-all of Windows on x86.

For example, Windows RT will only be available pre-installed on hardware. It will only be able to run software downloaded via the Windows Store or Windows Update. Its Metro version of IE, like mobile Safari, bans all browser plug-ins such as Adobe Systems' Flash Player. And -- to Mozilla's distress -- there are limits on what third-party software can do.

That Microsoft might try to emulate Apple's recipe for mobile success shouldn't come as a surprise. But Microsoft, having endured major antitrust cases in the United States and Europe relating to its monopoly, is in a different position with Windows than Apple is with iOS, Mozilla argues.

"It does remind me of iOS, but I think it's a little different here given that Microsoft has a monopoly market share on the desktop as a whole," Anderson said. "There's a different set of obligations that for historical reasons Microsoft has to deal with. They made a good product, but there's a different standard that applies to them."

Thus, Mozilla is trying to hold Microsoft to 12 principles for promoting choice and competition on Windows that the company issued in the wake of its antitrust woes. The first of these principles focused on software installation:

Computer manufacturers and customers are free to add any software to personal computers that run Windows... Ultimately, users are free to choose which software they prefer to use.

The principles apparently have disappeared from Microsoft's Web site, but a Wayback Machine from the Internet Archive preserved a copy.

Another principle addressed the APIs software can use:

All the interfaces within Windows called by any other Microsoft product, such as the Microsoft Office system or Windows Live, will be disclosed for use by the developer community generally. That means anything that Microsoft products can do in terms of how they plug into Windows, competing products will be able to do as well.

Techno-politics aside, Microsoft has good reasons for a more locked-down environment, some of them detailed in a 8,663-word blog post by Windows chief Steven Sinofsky in February. Here's one key section about why Microsoft doesn't want to grant Mozilla its desired access to deeper Windows services:

If we enabled the broad porting of existing code we would fail to deliver on our commitment to longer battery life, predictable performance, and especially a reliable experience over time. The conventions used by today's Windows apps do not necessarily provide this, whether it is background processes, polling loops, timers, system hooks, startup programs, registry changes, kernel mode code, admin rights, unsigned drivers, add-ins, or a host of other common techniques. By avoiding these constructs, WOA [Windows on ARM, now branded Windows RT] can deliver on a new level of customer satisfaction: your WOA PC will continue to perform well over time as apps are isolated from the system and each other, and you will remain in control of what additional software is running on your behalf, all while letting the capabilities of diverse hardware shine through.

What Firefox needs
Firefox's new problems stem from Microsoft's decision to adopt a new Windows interface called Metro. It also appears on Windows Phone 7 and Xbox 360, providing some consistency across Microsoft products.

Firefox logo

Metro looks different, dumping the traditional Windows start menu and instead letting people launch apps and monitor their status through rectangular tiles. Metro also is designed to be used through touch interfaces, not just with a mouse and keyboard.

But Metro also works differently under the covers. Where the classic Windows interface draws upon a collection of operating system APIs called Win32, Metro uses a new set called WinRT. (Yes, Windows RT is different from WinRT.)

On x86 systems, Win32 is alive and well through the classic mode, so Firefox has no trouble there. But on x86 systems using Metro, Mozilla initially faced the API restrictions that would have barred Firefox.

In that case, Microsoft yielded and accommodated other browsers by letting them use the Win32 APIs even though they were Metro apps -- just like IE does.

Microsoft has been intransigent when it comes to being this accommodating under Windows RT, though, Anderson said. However, IE10, the browser that will ship with Windows 8 and Windows RT, does get access to these Win32 APIs, even in Metro, and even on Windows RT.

Missing APIs
Dotzler detailed some of what Firefox can't do without the APIs:

Of particular concern are the APIs that IE has access to which Microsoft is denying other browsers, including VirtualAlloc / HeapAlloc and friends, CreateNamedPipe, ConnectNamedPipe, DisconnectNamedPipe, CreateProcess, and various others.

These APIs allow for things like making memory executable, a prerequisite for building a JIT [just-in-time compiler]. Without a JIT, it will be impossible to build a modern browser. These APIs also allow for things like spawning additional processes, and communicating between them -- something we use to isolate plug-ins for security and stability purposes and other browsers, including IE, use to isolate tabs and windows for security and stability purposes.

A just-in-time compiler is one key area here. Its job is to look at JavaScript code on a Web page and "compile" it into native instructions that can a computer can execute rapidly. In contrast, stepping line by line through a JavaScript program as it runs is a vastly slower process.

JITs are used in modern browsers, and not just Firefox. Among the JavaScript engines that use JITs are Chrome's V8, Opera's Carakan, and Safari's Nitro, and IE's Chakra.

JavaScript execution has become so important for Web pages and Web apps that all the major browsers have branded their JavaScript engines.

Being able to launch new computing processes also is important with browsers that isolate different operations into different compartments. Chrome uses this extensively with tabs, for example.

Thus, Firefox on Metro on Windows RT is theoretically possible. But without the API access IE gets, there just wouldn't be any reason to use it.