ExQuilla as a Model for “Thunderbird Professional” aka SwanFox

About a year ago, when we on the Thunderbird team were having very active discussions about the future of Thunderbird after Mozilla’s drastic cutback in funding, Axel Grude and myself were minority voices promoting the importance of developing funding sources for Thunderbird if it were to prosper in the future. In contrast, the majority viewpoint,… Read More »

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… Read More »

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… Read More »

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.… Read More »

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… Read More »

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… Read More »

Twitter for Thunderbird

New account types in Javascript for Thunderbird (Part 3) I’ve now released an initial version of my extension TweeQuilla, Twitter for Thunderbird. While the extension provides useful functionality, the main purpose of this exercise was to demonstrate how a Thunderbird account can be created using just javascript. Well almost … there are some binary files… Read More »

Overriding C++ xpcom objects using Javascript

New account types in Javascript for Thunderbird (Part 2) One of the more difficult challenges in adding new Javascript-based accounts to Thunderbird is the problem of overriding functions of C++ objects in Javascript. C++ objects typically rely on the object inheritance structure of C++, and do not reliably use QueryInterface to force use of xpcom… Read More »

New account types in JavaScript for Thunderbird (Part 1)

For the month of December, I took a reprieve from ExQuilla, my Exchange Web Services extension, and decided to tackle the issue of trying to create new account types in JavaScript in a Thunderbird extension. This blog post is an introduction to that project. More detailed posts on specific issues should follow shortly. Introduction to… Read More »