Work Starts on Metro Firefox - The Birth of the MetroTop App
Written by Mike James   
Monday, 12 March 2012
Until now programmers have been working on two types of app for Windows 8 - Metro/WinRT and Desktop/Win32. Now we have a third type, a cross between the two that can be called MetroTop apps because they mix the two systems.

This new kind of MetroTop app can make use of the Win32 API and the Metro UI as provided by WinRT. It really does sit between the two frameworks. This type of app is needed because it provides the only sensible way to allow a browser to work under WinRT. In other words, Microsoft had to create this hybrid in order for IE10's incarnation as a Metro app to have access to the Win32 API.

Now Mozilla is  starting work on building a Metro version of Firefox and they too have to take the MetroTop approach to the problem.


According to Mozilla developer Brian Bondy in a blog entry :

Unlike Metro applications, Metro style enabled desktop browsers have the ability to run outside of the Metro sandbox. Meaning not only can we build a browser, but we can build a powerful browser which gives an experience equal to that of a classic Desktop browser.

Metro style enabled desktop browsers have access to most Win32 API and the entire new WinRT API.

There is an oddity about the MetroTop mode of operations - it seems to be only permitted to browsers and only to the default browser. Presumably this is a security measure to make sure that the number of apps that can occupy this privileged niche is limited to one, or at least one at a time.

The only Microsoft documentation on the matter states:

Metro style enabled desktop browser. 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). Desktop browsers typically run at medium or low integrity level.



The technical details of what Mozilla plans are also interesting:

We will be using the Windows Runtime C++ Template Library (WRL) which is similar to C++ / ATL.

Mozilla also seems to be considering using C++/CX, which is the most direct way to work with WinRT in that it produces native code and is customized with new commands to make this easy. Rather than adopting XAML, the team plans to use the existing XUL code and render it directly to DirectX, although exactly how to do this still seems to be something to discover.


The whole situation seems remarkably confused, given that Windows 8 is supposed to be a consumer preview. From the developer's point of view, Windows 8 looks more like a work in progress than anything approaching a finished product.

More Information

Developing a Metro style enabled Desktop Browser

Further Reading

Mozilla Plans Metro Firefox For Windows 8

Windows 8's Private API - WOA For Developers

C++ Going Native - Inside C+/CX design

Building and using C++ WinRT components



kotlin book



or email your comment to:


To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Google+, Twitter, Linkedin or Facebook or sign up for our weekly newsletter.


Paul Allen's Living Computer Museum Going, Going, Gone

The Seattle-based Living Computer Museum, founded in 2012 by Paul Allen to preserve vintage and heritage computers for posterity has closed and its collection will be sold at auction by Christies in S [ ... ]

Let Oracle's Coding Assistant Do The Grunt Work

Oracle is getting into the coding assistants game. The aptly named "Oracle Code Assist" is going to be optimized for Java, SQL, and Oracle Cloud-based applications.

More News


Last Updated ( Monday, 12 March 2012 )