Quantcast
Channel: Planet Apache
Viewing all articles
Browse latest Browse all 9364

Sam Ruby: Thunderbird add-ons in Flux

$
0
0

This post certainly ended up in a different place than where it started.

Knowing that Thunderbird was going to be upgraded in Ubuntu 11.10, I took a look at the one extension I use, and found that it was not compatible.  I know I could hack it, but if things went wrong down the line, I would rather understand what I was dealing with.  Particularly, as my needs are meager: I simply wanted to create a button that would invoke fetchmail.

I started by going to Add-on packager, selecting Thunderbird and Toolbar button and building an extension.  Much to my surprise, the extension failed to create a toolbar button.  After a little of help on #addons and a little research, I got it working by placing the following in chrome/content/overlay.xul:

<overlay id="rubix-thunderbird-overlay"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script src="overlay.js"/>

  <toolbarpalette id="MailToolbarPalette">
    <toolbarbutton id="rubix-toolbar-button"
      class="toolbarbutton-1" 
      label="rubix"
      tooltiptext="fetchmail from rubix"
      oncommand="rubix.onMenuItemCommand(event);" />
  </toolbarpalette>
</overlay>

And then adding the following to chrome.manifest:

overlay chrome://messenger/content/messenger.xul chrome://rubix/content/overlay.xul

This seemed like a reasonable blog post: i.e., something worth noting for myself for later reference, and something potentially worth sharing with others, when I found that the packager moved (the original URI was https://addons.mozilla.org/en-US/developers/tools/builder), and when you run the tool in its new home you end up at a page that says Oops! Not allowed.

Apparently, there is a new SDK.  One that lets you create add-ons that don’t require a restart.  Can be written purely using standard Web technologies: JavaScript, HTML, and CSS.  This is a good thing: it means that you don’t need to be an expert on XUL, RDF/XML, DTDs and other technologies in order to create a simple button.

The downside is that the automatically generated install.rdf is specific to Firefox.  Sure, if you know what you are doing, you can hack this, but that kinda defeats the purpose of the SDK.  It looks like something that belongs in package.json, but doesn’t look like it is there yet.  I’m confident that this will be fixed.

I guess I would sum things up by saying that add-on users and developers are going to find things rocky for a while.  But I do like the direction it is heading: add a little jQuery and perhaps even some CoffeeScript, and you have the basis for a sweet development environment.


Viewing all articles
Browse latest Browse all 9364

Trending Articles