Hands on: Fennec alpha 1 puts Firefox on your handheld

Mozilla released the first alpha of Mobile Firefox, codenamed Fennec. Ars …

Mozilla has announced the availability of the first Mobile Firefox alpha release. The project, which is codenamed Fennec, aims to bring the desktop Firefox browsing experience to mobile devices like MIDs and phone handsets. This early alpha release delivers a compelling user interface and demonstrates the impressive scope of the browser's potential on diminutive devices, but suffers from performance limitations and instability that reflect the need for significant refinement before it's mature enough for mainstream adoption.

I tested the Fennec alpha on my Nokia N810 running Diablo, the latest stable version of the Maemo platform. Mozilla is currently using the Nokia Internet Tablet devices as the reference platform for public testing of Fennec. Users who do not own one of the Nokia devices can also download a version that runs in a window on regular desktop computers, much like an XULRunner application.

User interface

The Fennec user interface, which is largely designed for touchscreen devices, is simple and moderately elegant. The top toolbar displays a URL input box with a refresh button and a button to launch the browser bookmark list dialog. When the user begins editing the contents of the URL textbox, Fennec will display an autocompletion window, much like the "AwesomeBar" in the Firefox 3 desktop browser. The completion window also includes buttons that will perform searches at Google and other sites with the contents of the URL box as a query.

The rest of the user interface is accessible through a gesture-based sliding system. When the user rolls a finger across the screen and pulls to the right, the tabbing sidebar will be displayed on the left-hand side. The tab bar displays thumbnail representations of open web pages rather than listing the page titles. Each thumbnail is overlaid with a close button in the top left corner, and new tabs can be created by clicking the plus button at the bottom of the list.

Unlike the desktop Firefox browser, Fennec doesn't support reordering tabs and doesn't appear to support multiple windows. It also has no mechanism for managing tab overflow. The button for opening new tabs descends lower on the screen each time a new tab is opened and eventually disappears off of the bottom of the screen. The N810 can do up to five tabs in normal mode and six tabs when displayed in fullscreen mode. If the user creates six tabs in fullscreen mode, then the bottom one will be obscured in regular mode. The memory constraints of the N810 make it unlikely that the user will ever be able to comfortably exceed four tabs, so this might not be a particularly relevant limitation in practice.

The right-hand sidebar has several toolbar buttons. The top one, which is a star button for bookmarking pages, works exactly like the star in the Firefox 3.0 URL bar. Bookmarking mostly works, but bookmark folders aren't fully implemented yet. Beneath the star, there are back and forward buttons for navigating through the browser's history. There is currently no history list interface and the back/forward buttons do not display a list. Page history is being preserved, however, because you can still see items from the browsing history in the autocompletion dialog.

The button at the very bottom of the right-hand sidebar provides access to an extended sidebar pane that provides access to browser extensions, downloads, and preferences. The extension and download panes look identical to their respective dialog windows from the desktop browser. The preferences pane, however, has been redesigned and simplified so that it has a more finger-friendly interface and a limited set of options.

The sliding gesture paradigm that is used to toggle the visibility of the sidebars is very interesting in principle, but it tends to be a bit frustrating in practice. I often found the sidebars appearing arbitrarily when I was attempting to scroll down the page by dragging. I'm almost sold on the concept, but I think that the implementation still needs some refinement and sensitivity improvements before it will be a real winner. I also noted some inconsistencies in dragging behavior.

When the user drags straight up, the top toolbar with the URL text box will usually disappear off the top screen, much like how it works on the iPhone browser. But when the user has a sidebar open and does the same dragging behavior, the URL bar will remain in place and only the page will be scrolled. If the URL bar has been scrolled off of the screen and the user slides in a sidebar, the URL bar will pop into place instantly. Some users might consider that a usability win, but the inconsistencies felt jarring to me. I also encountered a few instances where the top of the page would get stuck, obscured behind the URL bar.

Fennec's advantages

Although the current user interface still needs some work, a big advantage of Mozilla's approach is that using XUL makes it highly mutable and extremely conducive to rapid prototyping, experimentation, and extensibility. This strength is used in some very smart ways in the first alpha, and it will enable the developers to make a much richer user interface than would otherwise be possible with only native controls. It also opens the door for third-party developers to build and extend on it in innovative ways.

Extensions that have been designed for the desktop version of Firefox will not be directly usable on Fennec because of the significant differences in interface design, but it should be much easier to port a desktop Firefox extension to Fennec than it would be to port them to Nokia's current microB browser.

In addition to standard browsing capabilities, Fennec also offers some features that are specifically relevant on mobile devices. These include support for zooming, the W3C Geolocation Specification, and infrastructure for initiating calls by clicking on a phone number. On the N810, the user can control the zoom level by pressing the plus and minus shoulder buttons on the device.

I attempted to use Apple's SunSpider benchmarking suite to test Fennec's performance, but it was too intensive and caused Fennec to display several "Unresponsive Script" errors. It could not complete the benchmark, and I had to force quit the browser. I encountered similar errors on JavaScript-heavy web sites such as Slashdot. The browser also crashed several times when loading various web sites.

In addition to poor stability and JavaScript performance issues on the N810, Fennec's user interface is also not sufficiently responsive. It tends to feel very sluggish, and I often found myself waiting impatiently while I was pulling out sidebars and trying to switch between tabs. It's definitely less responsive than the simplistic pre-alpha version of Fennec that we viewed in our previous test back in April.

Mozilla Mobile director Jay Sullivan has addressed these issues in a blog entry. He says that the primary focus so far has been on the user experience and on building an interface concept that will shine on mobile devices. Now that the interface has started to come together nicely, he says that Mozilla's next major focus will be on performance improvements. Mozilla's high-speed TraceMonkey JavaScript engine, which is still under heavy development, could also help address some of the problems.

"Fennec, the code name for the mobile version of Firefox, has reached its first alpha release for the Nokia Maemo platform. As is the Mozilla way, we've been doing our development in the open, and this is our ninth released milestone for Fennec. We made the decision to label it 'alpha' because we believe there's enough in place that it's worth broadening awareness to get more eyeballs on it and engage localizers, add-on developers, testers and others," Sullivan wrote. "The focus now is on performance and responsiveness. We're digging into optimizations, and there are performance projects happening in every area: the Fennec front end, layout, graphics, JavaScript, networking and more."

Despite the numerous problems and limitations that I encountered while testing Fennec, the project is clearly evolving at a rapid pace, and the release still performs well enough to fit within the bounds of what I'd consider acceptable for a first alpha release. This version isn't ready for mainstream users yet, but it's definitely worth testing for those who are interested in getting a first look at Mozilla's vision for mobile browsing.

The Fennec alpha release is available for download from Mozilla's FTP server. The download links and additional information can be found in the official release notes. For additional information, see Mark Finkle's blog entry about the release, and the previously mentioned blog entry written by Sullivan.