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 [...]

Share

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 [...]

Share