Address Book Status at Thunderbird 3.0 Alpha 1
April 25th, 2008 Posted in Mozilla, SeaMonkey, ThunderbirdNow that Thunderbird is in 3.0 Alpha 1 Code Freeze, I want to point out some of the changes since Thunderbird 2 to the Address Book back-end code and where it is likely to be going post-Alpha 1.
First, though, for all of those wanting to see improvements to the UI – we are starting to discuss these in more detail (keep an eye on the newsgroups), and are planning for them to be included Thunderbird 3.0 – the back-end improvements have currently taken priority as they will give us a much better basis for us to improve the UI.
So what are the main changes so far in the address book between Thunderbird 2.0 and Thunderbird 3.0alpha1?
- nsIAddrBookSession.idl and nsIAddressBook.idl have been replaced by nsIAbManager.idl
- nsIAbManager is a service, and consoldates the two sets of interfaces into one, providing a more central and logical place for Address Book level functions.
- There is now a .directories attribute and a getDirectory function. These are intended to replace the need to get the directories from the rdf service.
- nsIAbDirectoryProperties has been removed.
- The properties of the address books that these were used to represent can now be found on the various nsIAb*Directory implementations. This provides much simpler ways of accessing these attributes.
- Various string and wstring attributes/parameters have been replaced with nsACString or nsAString
- These were part of a larger string API and back-end tidy up in mailnews.
- The various LDAP read/search implementations have had the authentication code replaced by a common implementation.
- This fixed various authentication bugs, including allowing download for offline use for uses that are required to log in on LDAP servers.
This is only a subset of changes that have gone into the address book, there have been various other back-end fixes, and many improvements resulting in a code size reduction (about 4000 lines/10% reduced on a raw line count of mailnews/addrbook/src – yes I know there’s better ways).
What’s coming next?
There are several large items coming soon, it is difficult to determine the exact time scales, but I’d hope that most of this first list are implemented in time for Thunderbird 3.0 Alpha 2:
- Fixing the listener architecture so that mailing list updates work correctly (bug 406921).
- Refactoring of the address book interfaces (I’ll cover this in another post later).
- Final removal of nsISupportsArray from the address book interfaces, except for autocomplete (bug 410177).
On top of that lot, I’m looking to get the following items completed before Thunderbird 3.0 final:
- Remove RDF from the address book (bug 422845).
- As a result of this, we’ll be able to redo how the preferences back-end is currently handled, removing some awkward code.
- Improve interfaces for extensions.
- Complete implementation of writable LDAP directories (bug 86405).
and probably a few more.
There’s a lot there, what I am hoping to do is to start stabilising the Address Book interfaces as soon as possible, to make it easier for extensions to update less times. Keep watching and I’ll keep you all updated as to how we are doing.



2 Responses to “Address Book Status at Thunderbird 3.0 Alpha 1”
By Matt on Apr 28, 2008
Ok, so as a user what do I have to look forward to?
By Standard8 on May 2, 2008
@Matt,
Well its a little hard to say at the moment, as we haven’t yet planned what exactly we’re changing. Like I said keep an eye on the newsgroups and I’ll also blog about updates/changes as they come.