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.

windows8logo

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.

 

firefoxicon

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.

windows8logo

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

 

 

blog comments powered by Disqus

 

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.

Banner


Deep Learning Chess
17/12/2014

Usually chess playing programs take a search approach to finding good moves, but why not see if a deep neural network can do the job without the need to hand tune game algorithms.



Duktape Embeddable JavaScript Engine
11/12/2014

JavaScript is everywhere, but what if you want it as a scripting language in your own app or device? Duktape might be what you need. It is open source and has just reached version 1. 


More News

 

Last Updated ( Monday, 12 March 2012 )
 
 

   
RSS feed of news items only
I Programmer News
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.