August 23rd, 2011

Ehsan posed a very reasonable question – why does Thunderbird have code that implements the nsIEditor interface? The short answer is that the Eudora import code uses the nsIMsgSend.composeAndSendMessage method to create a file containing an rfc822 message, and that method takes an nsIEditor * param, to get html content, and embedded objects, e.g.,images, used to create multipart html messages. Recently, the Outlook import code was changed to use the same approach.

A better approach would be to add a method that does was those import modules want, but doesn’t require an nsIEditor. I’m planning on doing this in the next couple days.

extension compatibility

July 6th, 2011

After spending a frustrating 30 minutes trying to get the attachment pane expander extension installed and working with nightlies, because I got so tired of expanding the collapsed attachment every time I clicked on a message with multiple attachments, I finally found the new magic incantation – add extensions.checkCompatibility.nightly pref and set it to false.

Here’s the extension – https://addons.mozilla.org/en-US/thunderbird/addon/attachment-options/?src=api

Right click in the attachment area to customize. The “always expanded” option didn’t work for me, but “remember last state” did, and that’s all I care about.

Thunderbird and Mail backend module ownership changes

May 18th, 2011

With Mozilla Messaging merging into MoCo, and dmose moving over to Mozilla Labs, we’ve made a few changes to our Mozilla module ownership pages. Dmose is stepping down as a module owner, and Standard8 is replacing him as a module owner. Blake Winton is replacing Bryan Clark as Thunderbird UI Czar. Blake is also now officially a Thunderbird peer.

Many thanks to dmose and clarkbw for their great work in getting Mozilla Messaging off the ground and shipping 3.0 and 3.1, and good luck to Standard8 and Bwinton in their new roles!

Faster switching to IMAP folders in Thunderbird trunk nightly builds

May 2nd, 2011

I’ve landed a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=520272. The change is in current Thunderbird trunk nightly builds. Essentially, the change is to display the contents of the imap folder immediately, based on what we have cached in the .msf file, and then download new headers and sync flag changes. Previously, we would wait until we’ve finished loading the folder contents from the imap server before displaying anything (this was basically a bug).
I think this change makes Thunderbird feel a lot snappier with IMAP, and I’m really interested in feedback from users willing to run nightly builds. Because we’re changing the order of the various things we do when entering a folder, there is a potential for changes in behaviour, some of which might be regressions, and we’d love to know about them as well.

Support for IMAP MOVE and ID extensions

March 22nd, 2011

I’ve landed support for the IMAP Move extension -  and have a patch in progress for the IMAP ID extension – RFC 2971 – The ID extension allows the client and server to share information about each other (e.g., product name, product version) for statistical purposes, and is supported by several IMAP servers. The MOVE extension allows messages to be moved with one command, instead of a copy followed by a store of the delete flag. I don’t know of any major servers that support MOVE currently.

The relevant bugs are – Bug 636285 and bug 531158

Support for IMAP RFC 4978 landed

June 5th, 2009

Tomorrow’s nightly build of Thunderbird 3.0 b3pre adds support for the IMAP Compress extension – see Bug 401673 and the rfc for more info.  If the server advertises COMPRESS=DEFLATE, we will do compression of incoming and outgoing data. For lower bandwidth connections, this should be a nice win, especially when we select large folders and fetch flags. I’ve seen reports of > 5x compression for the flags response. To turn it off, you can use the config editor to toggle mail.server.default.use_compress_deflate to false.

The latest versions of the Cyrus IMAP server supports COMPRESS=DEFLATE. Fastmail.fm has rolled out this support already.

Many thanks to Bron Gondwana who developed the patch very quickly and cleanly, despite having no experience with the Mozilla codebase.

- David

Speeding up debug builds with Gloda

March 13th, 2009

Andrew Sutherland pointed me at a patch that speeds up gloda operations in debug builds by a shocking amount – https://bugzilla.mozilla.org/show_bug.cgi?id=456272.  It turns off some debug-only autolock code in xpcom.  I’m sure the debug code is very useful when you’re debugging multi-thread locking code, but the speedup without it is intoxicating. All the usual disclaimers apply, but if your debug build is painfully slow, the patch is out there ;-)

- David

Building Thunderbird on 64-bit Vista

March 6th, 2009

I’ve been going through the fun process of setting up a new machine to build Thunderbird.  I decided to go with 64 bit Vista so I could use more than 3GB of memory.   There were a few things the mostly excellent instructions on devmo didn’t mention, so I thought I’d write them down while they’re still fresh in my mind.  Thx very much to Sid (sid0 on IRC) who told me most of this stuff.

First, when you install VC Express (or VC9), make sure you don’t install to the default path, which has (x86) in it – specify a path without the parens, because that confuses our scripts. I just removed the parens.

Our guess-msvc.bat file doesn’t work for 64 bit Vista because the registry entries are in a different location – Sid has a version that does work, and now I have it – maybe we can figure out some place to put it so others can use it. That’s the batch file used by the start-msvcNN.bat files to figure out where VC is, and set up your path for building. I think these were two parts of the diff that I needed:

-SET MSVC9EXPRESSKEY=HKLM\SOFTWARE\Microsoft\VCExpress\9.0\Setup\VC
+SET MSVC9EXPRESSKEY=HKLM\SOFTWARE\Wow6432Node\Microsoft\VCExpress\9.0\Setup\VC

and

+SET SDKDIR=C:\Program Files\Microsoft SDKs\Windows\v6.0A\
+SET SDKVER=6
ECHO Visual C++ 6 directory: %VC6DIR%

You’ll need a different version of msys-1.0.dll than the one in the mozilla build tools in order for the bash shell to work – the one here worked for me.

If you’re using VC Express, the config step might tell you that atlbase.h is missing – see http://developer.mozilla.org/en/docs/atlbase.h for more info. I ended up just adding these lines to .mozconfig:

ac_add_options –disable-xpconnect-idispatch
ac_add_options –disable-activex
ac_add_options –disable-activex-scripting
ac_add_options –disable-accessibility

This allowed me to build and run Thunderbird. There’s a scary comment that says you can’t use jemalloc unless you use VC 7.1, but I didn’t have to do anything special there.

Now I have to go remember what I did to set up Mercurial :-)

- David

Thunderbird 3 Beta 1 Released Today

December 9th, 2008

We’re happy to announce that Mozilla Messaging has released Thunderbird 3 Beta 1 today. It’s available for download here.  More information about Thunderbird 3 Beta 1 is here.

Thx to everyone that helped with this release.  I’d like to specially thank some folks that made my job of being the release driver easier – Gozer for his build and IT work, Wayne for all his QA work, Raphael for his help with the web-site content, and Standard8 for his excellent documentation and help, which more than made up for his setting the bar so high with Alpha 3 :-)

- David

First Thunderbird 3.0 Beta 1 RC builds available

December 1st, 2008

We have our very first Thunderbird 3.0 Beta 1 Release Candidate builds available here. We will be testing these builds in the next few days, and if you would like to help test them, please download a build and try it.  The usual disclaimers apply – either backup your current profile, or create a new profile and run TB 3.0 Beta 1 RC 1 against the new profile.

- David