Thunderbird’s Future: the TL;DR Version

In the next few months I hope to do a series of blog posts that talk about Mozilla’s Thunderbird email client and its future. Here’s the TL;DR version (though still pretty long). These are my personal views, I have no authority to speak for Mozilla or for the Thunderbird project.

Current Status Thunderbird usage is growing, we have a strong core team, and expect to remain relevant to the internet for the foreseeable future. Thunderbird is mission critical to tens of millions of users. The last two “community-developed” Thunderbird releases, 24 and 31, while successful as stability releases, had few [...]

Following Wikipedia, Thunderbird Could Raise $1,600,000 in annual donations

What will it take to keep Thunderbird stable and vibrant? Although there is a dedicated, hard-working team of volunteers trying hard to keep Thunderbird alive, there has been very little progress on improvements since Mozilla drastically reduced their funding. I’ve been an advocate for some time that Thunderbird needs income to fulfill its potential, and that the best way to generate that income would be to appeal directly to its users for donations.

One internet organization that has done this successfully has been Wikipedia. How much income could Thunderbird generate if they received the same income per user as Wikipedia? [...]

The Thunderbird Tree is Green!

For the first time in a while, the Thunderbird build tree is all green. That means that all platforms are building, and passing all tests:

The Thunderbird build tree is green!

Many thanks to Joshua Cranmer for all of his hard work to make it so!

Real Men do Build Engineering (A Real Threat to Thunderbird)

When I was first getting involved in Thunderbird, I recall reading a post from early leader Scott MacGregor that puzzled me. When the project was essentially a two-person project, he said that the next person they needed was a build engineer. I had always thought of that as a backwater for people who couldn’t do real coding.

How my thinking has changed! As we look to the future of the Thunderbird project, it is clear that the main threat at the moment is losing control of the build process. These days, it takes a PhD candidate in computer science (Joshua [...]

Comparing Javascript components and modules

The code that I develop for my ExQuilla addon uses a combination of C++ and javascript-based code, so I am constantly having to deal with interactions between those languages in a Mozilla Thunderbird binary extension. So I thought it would be a good idea to test the relative speed of two ways of writing javascript code that can also be accessed from C++:

Using a javascript-based XPCOM component for both, or Using a javascript module for javascript callers, and a javascript component calling into a module for C++ users.

The second option is somewhat unusual, and represents an attempt to [...]

EarlyLight (unofficial multiversion Lightning addon) for Thunderbird 14 -16

My EarlyLight addon, which is an unofficial build of the Lightning calendar extension, supporting multiple Thunderbird versions, is now available for Thunderbird 14 – 16. This is based on the current Lightning 1.8a2 source (which is now in the aurora directories). Download here:

OSX

Linux

Windows

I’ll probably stop supporting this once Thunderbird switches to its slower release cycle.

EarlyLight, an unofficial Lightning (aurora) build supporting multiple Thunderbird versions

I got tired of waiting for Lightning to fix their aurora build problems so I decided to practice my newly-acquired Mozilla build foo to build my own. In the process, I extended the usual Lightning build so that I have Lightning that can work with current TB release, beta, and aurora versions, that is Thunderbird 13, 14, and 15.

The “source” for this is just a makefile which you can see here. (I added my fix in Mozilla bug 766685 so that I could build this with my VS 2008 on Windows). This will only work in my local build [...]

ExQuilla (Microsoft Exchange Server for Thunderbird) beta version released

I am pleased to announce that ExQuilla, a Thunderbird addon that provides access to messages and contacts in Microsoft Exchange Server, is now available. This is a beta-quality release. ExQuilla is currently only available for Windows, in English, and supports Thunderbird version 9, 10, and 11. Linux and Mac versions are planned for the future.

The most current version of ExQuilla is available from the MesQuilla site here. A slightly older version (due to review delays) is available from Mozilla’s addon site here.

This version supports access to messages and personal contacts from a Microsoft Exchange Server 2007 or 2010 [...]

Avoiding namespace leaks in event handlers

A common pattern that we see in review of Mozilla addons is code that looks like the following:

var myExtension = { saveMe: null, onLoad: function () { this.saveMe = “I am saved”; } } window.addEventListener(“load”, myExtension.onLoad);

Unfortunately the value of “this.saveMe” that is used in onLoad is the value from the global window, not the value from the myExtension object. Really the event listener is looking for an object of type nsIDOMEventListener, with a method handleEvent. When it does not find that, it applies some magic and just uses the entered function. Unfortunately, in the process the “this” does [...]

Address Book accounts

New account types in Javascript for Thunderbird (Part 4)

Now that I am essentially feature complete in adding Address Book features to my Exchange Web Services implementation ExQuilla, I’d like to discuss how SkinkGlue was used to allow this to mostly be done in JavaScript.

As review, SkinkGlue is my attempt to add an interface layer to Thunderbird to allow new account types to be added using javascript. SkinkGlue provides the necessary C++ interfaces to allow standard Thunderbird objects to be created without writing C++ code. SkinkGlue is licensed inder the standard Mozilla licenses, so it could be used by [...]