Jetpack SDK 0.5
Written by Mike James   
Wednesday, 30 June 2010

Jetpack 0.5 has been released and is claimed to be a better and easier way to create Firefox and Thunderbird addons. While it probably is a better way - currently it's far from easy.

Banner

If you have ever looked into creating an add-in for FireFox or any Mozilla based browser you will already know that it isn't easy. If you haven't then let me tell you that it isn't easy! If you want to find out for yourself then read: Extending Firefox and Thunderbird. The big problem is that Mozilla make use of a completely different UI Framework embodied in the Gecko layout engine to build applications. The basic idea is that you use an XML based UI description language called XUL (zool) to build the UI and a Javascript library - XPCOM - to add the behaviors.

 

jetpack1

 

Once you get the basic idea of how it all works then, despite the earlier claims, it isn't that difficult to create an add-in. The big problem is that the lack of documentation and good explanations of how it all works means that the barrier to getting started with any Gecko based application is very high. Essentially the effort of learning a new UI and development producedure was the problem.

You need to keep this thought in mind as you read on.

Jetpack is an easier way to create Firefox and Thunderbird add-ins using nothing but technologies you already know - Javascript, HTML and CSS. What you get is a sort of compiler for add-ins that is written in Python. You can use it to create an add-in package using procedures that will be familiar to you if you have created add-ins for other systems. You first create a manifest complete with a Javascript main module which this the entry point for the add-in. To create a UI you can load HTML, CSS and other resources and interact with the rest of the browser via a Javascript library.

As well as making Addons easier to create Jetpack is also implementing a sandbox type security system that limits what an Addon can do.

It is still early days as evidenced by the fact that the version number is only 0.5 but the team plan to have a first complete version by the end of the year.The SDK includes many core features including an API for a context menu, widgets, storage, and page workers. The latest version ads APIs for tabs, requests, load and unload handling, localization, selection text editing, There are still a lot of desirable features missing such as a layout panel that will make more complex users interfaces easier to create.

To make things even easier there is also a project to create a shared web based development environment for add-ins. You have to sign up to use it but once you log on to Jetpack builder you can start entering and editing Javascript code without worrying about manifests, installing Jetpack or anything messy.

 

jetpack3

If you are a would be Firefox add-on programmer then it's an exciting time but...

The first question is why does anyone thing that there is a pent up demand to create Firefox add-ons?

If you visit the Firefox add-on site then you will discover that there doesn't seem to be any supply problems.

The second question is how can a project that aims to make an aspect of programming easier hope to be taken seriously when its documentation is non-existent. There is a very good argument that instead of launching a new way to create Firefox add-ons time and effort spent documenting the original XUL/XCOM way of doing the job would be a better idea.

Currently the Jetpack SDK documentation is worse than useless. There are far too many blank pages promising documentation in the future. There are also too many flaky web page links, old documentation that has been removed but not replaced and cryptic comments from the programmers "in the know".  This isn't the way to attract new blood into this particular area of programming.

 

jetpack2

 

The end result is that, if you know what you are doing then it is easier to create an add-on. If you don't know what you are doing then getting started is very difficult. At the time of launching the SDK there wasn't even a simple Hello World type add-in could be used to get the environment set up - but having noticed this omission I decided to write one myself - see  Getting started with Jetpack.

jetpack1

Is this going to enthuse the average Javascript/HTML programmer to get involved with creating Firefox add-ons?

Almost certainly not - unless of course they rely on additional help from iProgrammer.

Relevant articles

Extending Firefox and Thunderbird

Getting started with Jetpack

<ASIN:0131870041 >
<ASIN:0789734583 >

<ASIN:0131423436 >
<ASIN:0471415804 >

<ASIN:0596000529 >
<ASIN:0596009283 >

<ASIN:0764596500 >
<ASIN:0975240242 >

Banner


Running PostgreSQL Inside Your Browser With PGLite
18/03/2024

Thanks to WebAssembly we can now enjoy PostgreSQL inside the browser so that we can build reactive, realtime, local-first apps directly on Postgres. PGLite is about to make this even easier.



Ibis 8 Adds Streaming
05/03/2024

Ibis 8.0 has been released with stream processing backends. The new release includes Apache Flink as a streaming backend, and RisingWave, a streaming database backend. There's also a new batch backend [ ... ]


More News

Last Updated ( Wednesday, 30 June 2010 )