Mozilla on Android

mozilla on android

I attended the Mozilla on Android impromptu meeting at the London office yesterday. Although I was quite tired I found it all really informative and quite enjoyed the presentations. Since it was all organised in a very quick/improvised way, many people couldn’t attend, so I’ll quickly go through what they covered in case anyone is/was interested.

First Lucas Rocha gave a quick overview on the state of the art of Firefox for Android, including previous bluffs and successes, such as for example shipping initially with XUL-based UI and then learning from the feedback and rewriting that part to be native, etc. He also showed some stats which looked like Firefox for Android grows, all the time (yay!), and a list of confirmed upcoming features and another list of speculative upcoming features. He also brought to our attention that some of the recent additions had entirely been contributed by volunteers–people who decided to /act/ and did it, shipping code. As he said, “we’re open and we mean it”. I liked that sentence!

Next was Mark Finkle telling us about GeckoView, the new component-not-so-much-system-library that has been semi-extracted from the larger Firefox for Android project. I first heard about it in this post in the mobile-firefox-dev list.

It was quite enlightening to hear about the internals of Gecko in Android–the architecture, the semantics and how the whole thing is tied together. He explained why GeckoView can’t be a drop-in replacement for WebView, the (old) WebKit-based view that Android apps can use for rendering HTML content in apps, as Firefox is “a vertical thing that does everything” (more or less). So it keeps tracks of sessions, creates a profile, etc, which makes it a bit sub-optimal for things such as rendering HTML, or drawing a game, etc, inside embedded views. So why are they doing GeckoView? Research!

There was a quick interlude for drinks and pizza, and it was quick because Lucas kept track of it and hushed us back to our seats.

Finally Margaret Leibovic explained how to develop add-ons for Firefox for Android. Since they moved to native UI, the existing XUL-based desktop add-ons don’t work interchangeably, which is something I hadn’t realised yet. Although I’ve never built an add-on, so that explains why!

They provide a simple skeleton to get started; you can also use the included scripts to package and deploy the add-on, which is useful.

She also demonstrated using the new fancy debugging tools that enable you to debug everything (a debugger to debug them all and in the darkness bind them…?) including the remote UI and the add-ons chrome (chrome, in this context, being the interface, not anything to do with the Chrome browser).

Afterwards we were shown again the famous Bill Walker’s How much code did the developer rewrite? video (yay!) demonstrating the capabilities of WebRT i.e. the Web Runtime running and installing the same app as native in different platforms: desktop Firefox in several operating systems, mobile Firefox and Firefox OS. This video was already shown at the Summit, but I can’t find it online!

There was also a bit of free discussion on the future of web apps vs native apps that Lucas tried to guide, although I’m not sure if he managed, or whether he guided us where he wanted us to be. The discussion pretty much ended with Anne complaining that televisions don’t need big CPUs–they should just be a screen! (so you get an idea of how far away the discussion steered!).

It was time to go home. I thought it would be about 20, maybe 21-ish. It was way past 22h. No wonder I was feeling so sleepy and tired, but I was glad to finally have met Margaret, who’s always happy to get all the (software) bugs I can send, and even encourages me to find more! :-)

Note: I forgot to add that these talented guys are going to be at DroidCon UK, so if you’re attending DroidCon and interested in Firefox, you should totally look for them! I see a session by Lucas Rocha on Bringing Firefox to Android, so there you go.