Announcing Jetpack SDK 0.9

We just released Jetpack SDK 0.9!

This version continues our drive toward the first beta release of this new SDK for making Firefox add-ons. Our focus for this release was to land important changes to the APIs, particularly those changes that pave the way for the integration of Electrolysis, the project to move add-on code execution to a separate process to improve application responsiveness and make it easier to measure add-on resource consumption.

This version of the SDK contains the following notable changes:

For more information about this version of the SDK, see its release notes. To get started building add-ons with the SDK, download it and check out its tutorial.

And keep on giving us feedback! It really helps us figure out what we need to do to make building add-ons with the SDK the best possible experience.

To provide feedback and participate in the Jetpack project:

8 comments on “Announcing Jetpack SDK 0.9”

  1. panzi wrote on

    If I get this right this means I have now to write almost my whole View Image Plus Add-on as a string (it manipulates the DOM but uses the context menu)?

    1. myk wrote on

      panzi: the part of your add-on that manipulates the DOM needs to be in a content script, but the content script doesn’t have to be a string. It can be a file in the data/ directory of your add-on that you specify via the contentScriptURL property of the context menu Item object.

      1. panzi wrote on

        Something else: It is no longer possible to give a function as the context property for context menus. Why? I really need to do that, because there is no other way to describe the context. Maybe a very complex xpath expression with a lot of alternatives but only CSS selectors are supported. However, when I look at context-menu.js it would be easy to support such a thing if there would be this:

        function CustomContext(isContext) {
        this.isCurrent = isContext;
        CustomContext.prototype = new Context();
        exports.CustomContext = apiUtils.publicConstructor(CustomContext);

        But because Context is not exposed through exports I cannot add such a thing in my addon. I have to patch jetpack.

        1. drew wrote on

          panzi: Function contexts still exist in 0.9, but we had to change how they work in order to make the API compatible with a multi-process Firefox. Now you specify them in content scripts rather than along with menu items. This post and the 0.9 context-menu documentation explain:

          1. panzi wrote on

            Oh I see. Somehow I overlooked that.

  2. sdk wrote on

    As always, thank you for making the private-browsing module documentation simple to navigate and easy to understand!

  3. schuyler1d wrote on


    What’s the priority for moving the Panel to somewhere practical? As-is, JetPack is a great tool to make an extension, except that no one will use the created extension that takes up so much vertical real-estate and is in an unfamiliar position to all their other (more native) extensions that put the icons in the status bar or the URL bar.

    1. myk wrote on

      schuyler1d: sorry for the delay responding; I wasn’t notified about this comment for some reason.

      I think you’re referring to the Widget API, and the status bar has been repurposed to be an add-on bar in Firefox 4. It’s the recommended place to put widgets, and hopefully it’s the experience you’re looking to provide for your users.

      If not, though, then perhaps you can provide more details about what you’re looking to do? You can post here, but even better would be to post to the Jetpack project’s discussion group: There are lots of hackers there who can help address such questions!