Fennec – Here Comes AMO

Last night, support for Fennec on AMO was pushed live. A big thank you to Mike Morgan and crew for making this happen. There are no recommended Fennec add-ons yet, so you need to search for them. Here are some results, based on the two add-ons I know support Fennec and are on AMO:

Extending this mobile browser is now fully operational!

XUL, Meet HTML – It’s All Good

One of the opportunities I had at MozCamp was to get caught up on the stuff happening in Thunderbird & Calendar. They have a goldmine of great data, functionality and UX possibilities. During some of the sessions and a small ad-hoc discussion, the use of HTML in XUL to create compelling, interesting and useful user interfaces came up. Thunderbird 3 will be using HTML to enhance to appearance and functionality of message display. Calendar might be using HTML to do the same for displaying tasks, IIRC. The examples I saw looked great.

I got the feeling that the designers and developers thought that using so much HTML in XUL was, in some way, anti-XUL. NO WAY! It’s my opinion that using HTML in this way – enhancing a user interface – shows the power of XUL. The ability to seamlessly mix different markup languages is quite impressive. How many other UI markup languages can do that?

The use of HTML, SVG and specifically, <canvas> in XUL is not new. You’ll find many examples of add-ons and applications that go beyond XUL to create elements of the UI. XUL itself uses HTML as a foundation for implementing widgets.

Here are some examples from previous posts on using HTML, SVG and <canvas> in XUL. Start spicing up your XUL UI today.

Fennec – Size Does Matter

Some of the feedback we received from Fennec Alpha 1 (and we have received a lot, thank you!) has been about the download and “on disk” size. Fennec is based on XULRunner, Mozilla’s runtime platform. Therefore, when you install Fennec, you’re installing the XULRunner dependency too. Fennec is ~ 1MB in footprint size, while XULRunner is ~ 25MB.

Yes, Fennec’s overall size is a bit big for a mobile browser. But it is a full blown browser, with all the web support of a desktop browser. It also supports the same add-on system as desktop Mozilla applications, like Firefox, Thunderbird and Songbird.

There’s another benefit of having XULRunner installed on the device: Any other XUL-based application can use the XULRunner runtime, without needing to install anything extra. Applications like Chatzilla, XULMine, XULExplorer and Prism could be installed and launched using the shared XULRunner. Keep in mind, Fennec thinks it “owns” that XULRunner and will update it when it needs too.

So, if you installed Fennec A1 and want to create your own XUL-based apps on a mobile device, you have an up-to-date runtime to build on. Here’s a simple way to get started with XULRunner (on mobile too).

EU MozCamp 2008 & Me

I am headed to Barcelona to take part in Mozilla Europe’s MozCamp 2008 conference. I’ll be presenting sessions on XULRunner, Fennec Add-ons & Embedding Gecko. If you’re interested in any of these sessions and have topics you’d like to see covered, let me know. Commenting here or adding items to the wiki pages are goods ways to do that.

I also plan to hang around the Prism session, presented by Matt Gertner. Prism has some cool features brewing. I hope we get a new release (with samples) out soon.

Mozilla Embedding API – Status

The Mozilla Embedding project has been adding small chunks to the new API. The code is now hosted in an incubator repository, with plans of moving code to the main Mozilla tree when it’s ready. Some of the new additions and things we’re working on include:

  • Easy access to the underlying XPCOM interfaces
  • Basic navigation support
  • Executing JavaScript in the web page context
  • New GTK+ widget for Windows (contributed by Tristan Van Berkom)
  • Render web page to image (coming soon)

Pelle added the beginnings of a “Code Snippets” section to the Wiki. We plan on expanding that soon. The first snippets show how to access the DOM of the web page from the embedding host application.

Here’s a short list of tasks we plan to work on soon. If any of these interest you, join us. We hang out on Mozilla IRC in the #embedding channel. Your feedback is important.

Contribute: Get code, File bugs

XUL Explorer – Updated!

XUL Explorer is a small tool I started a while ago to allow me to quickly create and preview short snippets of XUL. At the same time, I used the process of building XUL Explorer as a use case to help me discover and learn various parts of the Mozilla platform. With the help of some great contributors, it’s been extended beyond simply previewing XUL.

As a tool, XUL Explorer has been serving me well, but I have been wanting to refine it as an application. As I continue to discover how to use the Mozilla platform to it’s fullest, I want to push those concepts back into XUL Explorer. Therefore, I give you XUL Explorer 1.0a1pre, with the following changes:

  • Proper build system – Project is now using the Mozilla build system which makes building on all three platforms a breeze.
  • Auto-update system – The built-in Mozilla auto-update mechanism has been enabled. The application will periodically check for updates on my server and download/apply them as needed.
  • Updated XULRunner – The bundled XULRunner runtime is now based on the 1.9.0.x branch (same as Firefox 3.0.x). Now you can play with the new XUL elements and platform features.
  • Updated DOM Inspector and Venkman – XUL Explorer now bundles the newest versions (from the 1.9.0.x branch) of these extensions. Using the Mozilla build system makes this simple too
  • A couple small bug fixes and UI tweaks

With the build system changes, I can finally start taking localizations in a manageable fashion. If anyone has a translation you’d like me to add, file a bug here.

Install Windows, OS X (Intel) and Linux versions from here.

A big thanks to Dave Townsend and Matt Gertner for providing some great samples and documentation. Also, the work I have been doing on Prism and Fennec has been helping me expand my knowledge of the Mozilla platform too.

Fennec Alpha1 & Add-ons

One of the reasons we released Fennec A1 with desktop versions was to allow add-on developers to start hacking on Fennec add-ons. As long as the add-on contains no binary compiled code, it should run on any platform – including mobile devices. Developers can build and debug Fennec add-ons using the desktop builds, without needing an actual device.

As I previously posted, making a Fennec add-on is no different than making an add-on for any Mozilla-based application, such as Firefox, Thunderbird or Songbird. Fennec is a different application – add-ons for Firefox will not Just Work in Fennec. I started documenting the process of building Fennec add-ons. I plan to add some use cases there too.

Fennec supports installing add-ons from websites (remember to use the right MIME type – application/x-xpinstall). Once an extension is ready for testing, the developer can post the XPI somewhere. The add-on can then be installed to Fennec on devices or Fennec on desktops.

Very soon, we will support Fennec add-ons on AMO (addons.mozilla.org)

Update: If you want to debug your code using the error console, try using the command line flag like this:
fennec -jsconsole

Fennec – M9 (User Experience Alpha)

Fennec (Mobile Firefox) has reached milestone 9, which is also our first alpha! We’re calling this release the User Experience alpha. The last eight milestones were building up to getting a stable browser with an easy to use interface. We really want to get Fennec in front of as many people as possible and get feedback.

As with the previous milestones, M9 is targeted at the Nokia N800/N810 (Maemo) Internet tablet. Yes, we have made great progress on Windows Mobile, but no milestone releases yet. However, in addition to the native Maemo release, we are also releasing desktop versions of Fennec. That’s right, you can install Fennec on your Windows, OS X or Linux desktop too! We want you to be able to experiment, provide feedback, write add-ons and generally get involved with the Mozilla Mobile project, even if you don’t have a device.

The release notes have information on a quick start, how to install, what’s new, known issues and how to provide feedback. So if you’re interested in getting involved with Mozilla Mobile, install Fennec and tell us what you think.

Update: Madhava Enros, UX lead for Fennec, posted a video walk through of the application. Check it out.

Update: We noticed that the desktop builds had the mouse cursor turned off. This is good for touchscreen devices, but bad for desktop applications. We flipped a preference and updated the desktop builds. If you downloaded a desktop build and have the cursor problem, just download the build again, it’s been fixed.


The newest official XULRunner has been released. XULRunner matches the Firefox 3.0.3 release. Firefox 3.0.2 was out for a very short time, so we skipped it for XULRunner.

Source tarball

Nightly Maemo builds of XULRunner are in the final stages. A tinderbox page and FTP folder are in progress. Windows Mobile builds of XULRunner have progressed to the point where it can be built directly from the main Mozilla source tree. However, there’s a bit more work needed before we can start creating nightly builds.