Comment 7 for bug 800169

Revision history for this message
Mark Tully (markjtully) wrote :

I've been looking at js-ctypes (https://developer.mozilla.org/en/js-ctypes, https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes) as a solution to the problem of the changing XPCOM API, and have managed to create a version of the dataprovider which uses them.

Js-ctypes have a number of advantages over using C++ components in the extension:
  1: The extension doesn't require building as it is all Javascript. Creating the .xpi is a matter of compressing the files, renaming it an .xpi and copying it to the required location.
  2: The extension should need minimal maintenance as the Firefox version increases (mainly just bumping the max version in its install.rdf file)
  3: The method used should be able to be reused to create extensions for other Mozilla products (Thunderbird and Lightning) with minimal difficulty compared to using XPCOM

Js-ctypes were introduced in Firefox 4, so the existing XPCOM extension would still need to be maintained for Firefox 3.6.

Attached is a new version of the Firefox extension which works (at least, it does on my system). The main requirement is that "/usr/lib/libzeitgeist-1.0.so" exists on the system (either as a file or as a link to another file). I am uncertain if this is the most appropriate file to point the extension at. It exists as a link to "/usr/lib/libzeitgeist-1.0.so.1.0.3", but it seems the most generically named libzeitgeist file in my lib folder, so I'm assuming it's the most likely to exist everywhere. I've tried to retain all the features of the original extension, but I'm unsure if the ignored_uris and enable_googlemail parts work correctly.