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 needed (called Skinkglue) which are account-independent, and presumably could be made available in the Thunderbird core code to eliminate the need for extension writers to maintain their own C++ compile environment. Unfortunately that binary extension limits this current release to only working under Windows in [...]

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 and xpconnect functionality. Even if they did, Javascript does not pass a reference to the underlying Javascript xpconnect object to the C++ object when it finds a C++ object in the prototype chain of an xpcom call. Instead, it passes the C++ object from the [...]

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 SkinkGlue

I’ve learned a lot about how to create account types in an extension while working with ExQuilla. While ExQuilla is written principally in C++, many of its concepts could be adapted to javascript. I decided to write TweeQuilla, a demonstration extension in javascript that [...]