Matt Brubeck

12 Aug 2010

Fennec 2.0 update: The road to alpha

Update (October 2010): We’ve changed the version number of the next mobile Firefox release from 2.0 to 4.0. I’ve updated this article to use the new version.

The Mozilla Mobile team has been quiet lately. We’re making a lot of under-the-hood changes for the next version of Fennec (Firefox for mobile), and have been focused on getting basic functionality working again after some major platform changes.

Now things are starting to stabilize, and we are gearing up for an alpha release in just a few weeks. There are still noticeable bugs in our current builds, but it is possible to use them now for testing, add-on development, and regular web browsing (if you don’t mind occasional crashes).

Under the hood

The biggest back-end change in Fennec 4.0 is Electrolysis (a.k.a “e10s”). By moving content rendering and JavaScript into a separate process, e10s allows the Fennec UI to stay responsive while pages are loading. This required us to rewrite large parts of the Fennec UI and platform code, a process that is finally approaching completion.

After the alpha release, the next big platform changes will be related to Layers. Fennec currently handles panning and zooming by dividing pages into “tiles” and rendering them on HTML canvas elements. This works, but it is complicated and not as fast as we’d like. The new layers system will let us replace Fennec’s custom tile management with hardware-accelerated rendering and compositing built into the Firefox 4.0 platform.

Features

We have a bunch of new features planned for the Fennec UI. A few of these have already started to land, so you can try them in nightly builds or the upcoming alpha:

The design of these features is not yet final, so their look and feel may change significantly before the final release.

Android

Fennec 1.0 and 1.1 were for available only for Nokia’s Maemo operating system. Fennec 4.0 will run on the Google Android platform, as well as Maemo and its successor MeeGo.

Fennec for Android is brand new, but it is progressing fast. Most of the blocking bugs for alpha 1 have been fixed in the last few days, and the very latest nightly builds are usable for regular browsing, though still rough in places.

Some of our most visible Android bugs were related to keyboard and input method support. Jim Chen’s IME rewrite fixed a lot of these bugs, including a crash on startup with the popular Swype keyboard. There are still a few keyboard bugs left to fix before alpha 1.

Other Android changes, like alert-bar notifications and a new visual theme, will appear in our beta releases this fall.

Add-ons

For Fennec add-ons, the biggest change coming is Electrolysis. Any add-on code that interacts with web content through the DOM must now be in a separate script that runs in the content process. Mark Finkle has written a very useful Electrolysis guide for add-on authors.

In Fennec 1.1 we added the site menu and context menu. Fennec 4 will have improved APIs for add-on authors to add new items to either of those menus. Documentation of the new APIs is coming soon.

Nightly builds

Alpha 1 will go into code freeze as soon as the remaining a1 blocker bugs are fixed. If you want to start testing or developing for Fennec 4 even sooner, you can download a nightly build today. Just remember this is still pre-alpha software, and you should expect bugs.

If you have questions, feedback, or bug reports, file them under Fennec in Bugzilla, or come to the #mobile channel on irc.mozilla.org to chat with us!