February 29, 2012

Building Firefox for Windows 8 Metro

A number of people have been asking how we intend to build Firefox for the Windows 8 "Metro" environment, and whether or not it would be a separate product from Firefox for Windows 8 "Classic" environment. Here's where we're going with this:

Windows 8 Consumer Preview introduces a new programming paradigm called Metro style. Metro style apps offer a clean, polished user experience that push app experiences to the forefront, and immerse the user in a full screen environment that's tailored to the user's hardware and context. Windows 8 Consumer Preview also continues to offer desktop app experiences as found in previous versions of Windows. In Windows 8 Consumer Preview, the browser that the user sets as the "default" for handling web pages and associated protocols may be designed to access both the Metro style experience as well as the traditional desktop experience. This type of browser is called a "Metro style enabled desktop browser". This guide describes how to create such a browser. The information in this document applies specifically to browsers that will be made available to end-users as the default viewer for the http:// protocol and associated web pages and protocols on the x86/64 architecture.

That's from Microsoft's Developing a Metro style enabled desktop browser [DOC] documentation. The document goes on to describe a "Metro style enabled desktop browser" as:

A desktop browser that chooses to participate in the new Metro style experience when the user has expressed preference for the browser to do so. Such a browser can provide HTML5 rendering for webpages and service HTTP / HTTPS requests. By definition, such a browser has full access to Win32 APIs for rendering HTML5, including the ability to use multiple background processes, JIT compiling, and other distinctly browser-related functionality (like background downloading of files).

So what else does this document say and what will we be building? First, it describes a development path that should give us system-level parity with IE 10. IE 10 is not a traditional Metro-style app. It is actually sort of a hybrid program that bridges both the Classic and Metro environments and is built using both the WinRT and win32 APIs. This is something that the browser vendors discovered last year and it's been our assumption, validated by the document above, that us third-party browsers would be afforded the same capabilities.

Second, we should be able to build a single product, that when installed into the Classic environment via traditional means -- a download from www.mozilla.org, will be able to become both the default browser in the Classic environment and in the new Metro environment. We'll, of course, have a Metro-specific front-end that fits in with the new environment, but we will not have to deploy two completely different browsers.

Third, if we do our job, Firefox on Windows 8 Metro should be every bit as capable and integrated with the system as Internet Explorer.

Microsoft had an awful big head start with IE 10 but now that we know what's possible, we hope to close that gap. There are still a lot of questions to answer (what language will we use for the Metro front end? can we integrate web apps with Windows contracts? will any of this transfer to the ARM version of Windows, etc.) and quite a bit of work ahead of us, but we've already started our proof of concept work and we're committed to bringing a kick-ass Firefox experience to Windows 8 Metro.

If you're a programmer or a designer interested in helping build the next generation of Windows Firefox, drop me a line at asa@mozilla.org.

Posted by asa at 5:21 PM


reactions, thoughts, comments, etc.

only one question remains: firefox on windows on arm devices.

is microsoft allowed to block that? what does EU/DoJ has to say about that???

Posted by: tom jones | March 1, 2012 4:11 AM

Good that you guys are getting onto a native metro UI faster than you did with Vista/7. The native looking UI didn't really appear until Firefox 4. (the Firefox 3.x series look awful on Aero)

Shame that metro is just awful to use on a desktop. I've been trying to use it, I really have.. it took me ten minutes to figure out how to restart/shutdown.. if that isn't a bad sign I don't know what is.

I really hope metro is optional (as in you can disable it and use a classic start menu etc) in the final release of windows 8, because using it on a desktop pc with a mouse and keyboard is an exercise in frustration.

Posted by: Mark Casey | March 1, 2012 8:38 AM

Thanks for the update, Asa.

Posted by: RyanVM | March 1, 2012 3:20 PM

Remember personal info?