|
|
An overview of the Minimo (Mini Mozilla) project
2004-05-19
Foreword -- This article by Minimo project leaders Doug Turner and Chris Hofmann provides an overview of a relatively new project to produce a fully functional, embeddable version of the popular Mozilla browser. Enjoy! . . .
Mozilla, the browser, is arguably one of the best desktop browsers. Mozilla is used in many desktop applications: Netscape 7, CompuServe, AOL for Mac, Ximian GNOME, Galeon, and Nautilus. There also have been a few ports to make Mozilla run on various devices such as the Nokia Media Terminal and the AOL/Gateway. With the release of Minimo, a slimmed down version of Mozilla, we offer a minimalist browser that may be the best browser in the embedded space. Minimo has two aims. First and foremost, Minimo is for embedders. The application layer of Minimo is small, and offers only the required pieces that a browser should have. This application layer will most likely be removed and replaced with an embedders application logic and UI. In this sense, Minimo is just a configuration of the Mozilla browser that is targeted at the Linux device space. The second aim is to show off the Minimo. We have been releasing an application for the GPE Palmtop Environment on the Familiar distribution. Minimo does not require any GPE specific libraries or functionality. We chose GPE as a vehicle because it is well supported and quite easy to install on many of the IPAQ devices. Requirements: Memory usage and toolkits
Figure 1 shows memory usage of Minimo against an automated page loader test. The page loader loads forty popular websites during a cycle and we run this test for five cycles. There are no shortcuts -- during each load, we download the page and render the complete content. (Some tests shortcut the drawing cycle to produces impressive page load times.) As you can see, we effectively level out at 25MB of RSS. ![]() Figure 1: Minimo memory usage (Click to enlarge) Under the hood, the Mozilla functionality is isolated in a GTKWidget. This makes it quite easy for any developer familiar with GTK to use Minimo. Other toolkits are a possibility. Many commercial deployments are using QT. There has been work to make Mozilla work with QT, but currently there is no one exclusively working this. Problems on small devices One of the problems that all devices that display web pages have is a very small screen. There have been many proposed solutions to this problem. We believe that the two most promising are CSS (Cascading Style Sheets) manipulation and direct magnification. Minimo provides what is known as Small Screen Rendering (SSR) that uses CSS to massage web pages into a format that looks better on small displays. On most web pages this works great. The page is reduced so that there is no horizontal scrollbar, allowing the content to be scrolled in one direction. Main content is usually moved to the top to allow you to see what is most important without having to scroll all over the page. The second promising solution is the ability to scale a web page. Currently, most browsers (even on the desktop), only have a way to increase the font size of a page. So, when you “zoom” in a page, you are merely increasing the size of the text. An alternative to this is to do the actual scaling of all elements on a page. This will allow you to zoom out of a page and see the entire content, then with a click of the pointer, zoom in on the most interesting part of the page. Competition Our target for Minimo is a Linux device with around 64 MB of physical memory. As we mentioned above, Minimo runs at around 25MB of RSS. Above this, you will need a Linux distribution, GTK, and X Windows. We have been using Familiar and GPE with much success in this configuration. We have run the same tests using Opera and Pocket IE on 32MB device form factors, and neither can make it though the page load test based on their lack of browser content and standards support, or they just simply run out of memory trying to display the pages. 64MB is really the form factor that is needed to create any useful browser for handheld devices; and in that space we look very good next to the competition. From discussions we have had with device makers it appears that most of the next generation cell phones and PDA devices will provide the kind of spec's you see in the current devices like the iPAQ with 64 MBs, so we are encouraged that the future is bright for Minimo being used in a variety of different handheld products. What’s next We have just completed the first three milestones of the project where the focus has been:
Related Stories:
|