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:

Firefox Sync is now built in – sync tabs, bookmarks, and history from your computer to your phone, no add-on required!

The new Find In Page command is available through the site menu (or by pressing Control+F on a hardware keyboard).

You can now share links through Twitter, Facebook, Google Reader, or email. (The final version of this feature will also let you send links using native Android or Maemo apps.)

Fennec alpha can use your phone's address book to make it easy to enter phone numbers and email adresses into web forms. (This works on Maemo now; support for Android will be added later.)

We're adding multi-touch gestures. Pinch zoom has landed for alpha; later releases will also include multi-touch swipe gestures to go to the top or bottom of the current page, or navigate between pages.

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.

Maemo users can use the trunk repo to stay up to date with the latest nightly build.

For Android users, the Fennec for Android wiki page has pointers to the latest nightly build, plus a list of known bugs and compatible hardware. (A number of Android blogs have linked recently to random TryServer builds and out-of-date blog posts. Please go to the wiki page instead to get the latest information.)

If you don't have a compatible Maemo or Android device, you can always download nightly Fennec builds for Mac/Windows/Linux and try out Fennec on your desktop or laptop.

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!