Mozilla Extension Writing Tutorial

A Tutorial by Manish Singh

We propose a two part tutorial, the first covering the basics of writing an
extension for Mozilla-based applications, and the second walking through a
non-trivial extension which interacts with network services.

Extensions are a powerful way to extend and enhance Mozilla-based applications
such as Firefox, Flock (which Ian and I work on), Epiphany, Songbird, etc.
The technology behind them is also useful for developing standalone
applications with rich web and network access, via the XULRunner platform.

The first, basic tutorial will cover:

* XPCOM: The Mozilla component object model
* XUL: The UI language
* The way Javascript fits into this
* Bundling and distributing and extension
* Things to watch out for to prevent exploits

The more advanced tutorial will cover:

* Interacting with a web service
* Data storage
* More complex UI usage
* How to target multiple Mozilla-based applications
* Security implications of dealing with web services

Both tutorials will guide the attendees through building a working extension.
The advanced tutorial will involve some Flock specific features, but the
extension will still work in Firefox, and only enable some things if it is
run under Flock.

More information on what Flock is all about is available at

Attendees are expected to have some programming experience, preferrably in
JavaScript, but people who have some reasonable experience in other programming
languages shouldn't have too much trouble picking it up. People attending
the advanced tutorial should have some prior GUI and network programming
experience as well.

Direct link to video