By Nathan Willis
With Firefox, Mozilla has maintained dominance in the open source web browser market for years - on the desktop. But, as phones and other pocket-sized devices increase in power, extending that reach poses a new challenge. Mozilla competes against closed source, third-party browsers like Opera Mini and platform-specific, preinstalled browsers like Maemo's MicroB.
Mozilla has met that challenge head-on with its Fennec project , combining the full desktop web experience with the distinctive UI requirements and functionality of mobile devices. Since its launch in 2008, Fennec has proven itself impressive enough that now, as it turns 1.0, it is being re-branded Firefox for Mobile.
Mozilla set out a very clear vision for Fennec: to bring the full web browsing experience to handheld devices and to integrate it completely with the handheld form factor. A stripped-down browser would not do, because users expect to be able to access the same sites on the go as they do at home or at work, and they expect them to work the same way.
Mobile browsers also have different user interface requirements - relying more on touchscreen and gesture input than desktop browsers - and users expect a mobile browser to integrate into the mobile operating system in different ways, supporting location awareness, initiating phone calls from web pages, tying into the device's address book, and supporting maps and directions.
Additionally, the Fennec team also wanted to acknowledge that the mobile device was almost never a user's sole browsing platform, so Fennec needed to support easy-to-use synchronization of bookmarks, form data, saved passwords, history, and other information. Finally, Mozilla's interest in promoting the open web extends beyond the rendered page itself, so Fennec had to support the same plugins and extensibility that make Firefox a popular platform on PCs.
If all this strikes you as a tall order, it is. To simplify development, the team decided to target Nokia's Maemo mobile platform first; Maemo is Linux-based and arguably the most desktop-Linux-like of any of the Linux mobile phone stacks. It uses standard libraries like GStreamer, D-Bus, Qt, any others. The first public release of Fennec was made for Nokia N800 and N810 tablets in February 2009, with milestone releases every few months that followed.
In November 2009, the Fennec Beta 5 was released and re-branded Firefox for Mobile. That was followed by a series of release candidate (RC) builds before the official 1.0 release on January 28, 2010.
Second to Maemo on the list of priority operating systems was Windows Mobile. The Windows Mobile builds lag slightly behind Maemo and are currently in 1.0-alpha release status, available for phones that use Windows Mobile 6. Android-powered phones are next.
The Fennec project reports that testing on Android is already underway; however, no public releases have yet been made. Efforts are also underway to port Fennec to the Symbian-powered S60 platform used by many high-end Nokia phones, but that project has not reached the stage where public builds are available.
For now, if you have a supported Maemo or Windows Mobile device, you can install Firefox for Mobile in one of three ways. On your Maemo device's existing web browser, you can visit the Mozilla Mobile download site  and click on the Download link.
Windows Mobile users can visit the Fennec project site and download the installer for their phones. Alternatively, you can visit the Firefox for Mobile page  and enter the phone number of your device. Doing this will send a download link directly to your phone via text message.
At first glance, Firefox for Mobile looks just like any other mobile browser: URL bar at the top, easy-to-tap Go and Close buttons, friendly start page. Things get more interesting, though, when you see what's just off the screen to either side.
Put your finger down and drag it to the right; this unveils the tab bar (Figure 1). Open tabs are displayed in a vertical list down the left-hand side as thumbnail-sized screen shots. Given the availability of space, this makes switching between them easier than trying to cram page titles into a few valuable pixels.
To close a tab, touch the red X button, open a new tab with the button in the bottom left-hand corner, and, if you have the Mozilla Weave synchronization extension installed, access tabs saved in other browsers from the other button to the right.
Drag your finger to the left to reveal the bookmark and forward/backward navigation buttons, as well as the "gear" button that opens the configuration pane (Figure 2). From the configuration pane, you can set your browsing preferences and manage downloads, as well as search for, install, and configure add-ons.
Like the newest versions of Firefox on the desktop, Firefox for Mobile lets you find and install add-ons such as extensions, media plugins, and search engines from within the add-ons manager itself - no need to browse the add-ons website. Unlike the desktop browser, though, the mobile interface groups all of your installed add-ons into a single list rather than sorting them by add-on type.
The Awesomebar helps you access your recent history as you type, and the security and identity features keep you properly informed of encryption status, certificate verification, and reported attack sites.
Firefox for Mobile also includes full plugin support for Flash and other embedded media. This has a downside, of course, given its potential effect on the CPU and data download plans on a mobile handset, so you might want to do without it in some circumstances. The Preferences pane makes it easy to deactivate all media plugins with the flip of a switch.
But don't get confused by the terminology. Plugins are just in-page media support; the toggle does not deactivate all of your extensions, which are the add-ons that give new functionality to the browser.
On Maemo, Nokia's MicroB is an excellent browser, but after using Firefox for Mobile for a few days, you will quickly come to appreciate the ability to keep multiple sites open in tabs instead of separate windows and the ability to jump back and forth in your browsing history without reloading full pages. Since Firefox introduced them, tabs have become indispensable on the desktop - they soon will in the handheld browser, too.
In keeping with the "same web on the desktop and on the go" philosophy that guided much of Firefox for Mobile's development, Mozilla has developed its Weave synchronization service  with explicit support for mobile browsing in mind. Consequently, the Weave extension has been available for mobile builds ever since the days of the early Fennec pre-releases.
In case you are not familiar with it, Weave lets you synchronize profile information - bookmarks, saved passwords, browsing preferences, history, even tabs - between multiple Firefox installations, through an account on Mozilla's remote Weave server.
Given its sensitive nature, all information is encrypted on the client side. Weave lets you set different synchronization preferences for different computers, so you can keep some browsers completely in sync, but only sync the bookmarks on others.
The Weave add-on is one of the "recommended" add-ons for Firefox for Mobile (Figure 3). You can download it within the add-ons manager and enter your Weave account information. One shortcoming of the mobile extension, however, is that the current release cannot set up a new account for use with the Mozilla Weave server. To do that, you will need to use the Weave extension on a desktop browser. However, because the main point is synchronization, you will probably already be using Firefox on another computer.
When you install the Weave extension, click on the Options button to show the text entry form and enter your Mozilla Weave account name, password, and encryption passphrase (Figure 4). When you click on Connect, Weave will start synchronizing to the server.
To see your bookmarks in the mobile browser, open the tab bar and click on the new tab button. This will bring up a clickable list of recent browsing history, buttons for the installed search engines, and a See all bookmarks option. When Weave synchronizes your bookmark collection with your other Firefox instances, it is smart enough to know that on a space-limited screen like Firefox for Mobile, you might not want to scroll through hundreds of bookmarks every time. Thus, it keeps bookmarks that have been added via the mobile device separate and puts the synchronized bookmarks into a folder (Figure 5).
As mentioned previously, synchronized tabs from other computers are also available through a button on the tab bar. Synchronized tabs do not load automatically on browser startup, which saves you considerable lag time and data charges if you like to keep score of tabs open on the desktop.
Saved username and password information synchronized through Weave will function just like locally saved passwords. Firefox for Mobile takes steps to help you through the potentially tricky touch-navigate form entry process anyway, such as zooming in on entry boxes and providing simple Next and Previous buttons to step through the fields.
Other synchronized information, such as preferences, are not as critical in Firefox for Mobile because the browser does not offer the same options as its desktop counterparts. Still, with the framework in place, more will come. Of particular note is the ability to synchronize extensions, dictionaries, and plugins between browsers.
This level of synchronization requires that the add-on in question is available on every platform, of course, but the prospect of not having to install the same set of extensions manually on multiple machines is a welcome one.
Weave is still new, of course, and is undergoing changes. The mobile version offers you fewer options than the desktop client at present, but that will certainly change as the add-on and server service mature.
For now, however, much as with tabbed browsing, automatically having access to your bookmarks and saved passwords while on the go is a sea change in mobile browsing convenience that you might have to experience to fully appreciate.
Firefox's extensibility is one of the factors that makes it so popular - extensions exist to modify the look and behavior of just about every facet of the browser, to give it entirely new functionality, and to integrate more tightly with important sites and services.
Firefox for Mobile is no exception. Extension developers have access to the same elements and APIs of the browser as they do on the desktop, along with new functionality provided by integration with the mobile phone operating system. As with Firefox and Thunderbird, extensions are hosted, tracked, and ranked at the Mozilla Add-ons for Mobile website . Firefox for Mobile has far fewer than the older applications - around 60 at present - but many are already worth checking out.
Several highly rated extensions that originated on the desktop Firefox are already available for the mobile browser, such as Adblock, which erases web ads and related annoyances; NoScript, which selectively disables active content; and Shareaholic, which integrates working with link sharing and social networking sites.
Original extensions are beginning to appear that modify Firefox for Mobile's interface and behavior - an implicit feedback mechanism that over the years has improved Firefox usability greatly. For example, Fennec Gestures is an extension that adds support for additional touch-screen interactions for zooming, stepping forward and back in the browsing history, and more. Also, Hold4Tab makes is simpler to open a link in a new tab, something that is currently difficult to do.
Even more interesting are the extensions that add functionality by tying in to the underlying mobile phone operating system. Several location-driven extensions are already available, such as the location-aware search NearMe, as well as FireFound, which helps locate your phone if you have misplaced it.
Developers can find detailed information on writing extensions for Firefox for Mobile on the official Mozilla wiki site . Most of the methods used are the same as for desktop Firefox, but the mobile browser also includes some form-factor-specific differences, particularly around the XUL used to design the extension's interface.
Additionally, developers should take into account that file I/O and other operations that might be negligible performance hits on the desktop can cause more noticeable slowdowns on a resource-slim mobile device.
If you are already a Windows Mobile, N900, or Nokia Internet Tablet owner, download Firefox for Mobile today and see what a full-featured web browser in the palm of your hand is like. You might wonder how you ever got along without it, especially after setting up Weave synchronization to keep your phone fully in sync with your desktop.
If you're not in that group, however, you can experiment with builds for Android and Symbian by visiting the Fennec project to get a taste of what's to come. Or, you can download one of Fennec's "desktop" builds to run the browser on Linux, Windows, or Mac OS X. It's not quite the same experience, but you can still marvel at the sleek user interface and compact design. Maybe you can even pitch in to help bring the full power of Firefox to these underserved platforms as well.
 Fennec project page: https://wiki.mozilla.org/Mobile/Fennec
 Firefox download page: http://www.firefox.com/
 Mobile download page: http://www.mozilla.com/mobile/
 Mozilla Weave: https://services.mozilla.com/
 Add-ons for mobile: https://addons.mozilla.org/mobile/
 Resources for extension authors: https://wiki.mozilla.org/Mobile/Fennec/Extension