Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Developer documentation issues for Thunderbird 2?

0 views
Skip to first unread message

Eric Shepherd

unread,
Sep 27, 2006, 2:03:24 PM9/27/06
to dev-apps-t...@lists.mozilla.org
With the Firefox 2 documentation basically done at this point, I
thought I'd check in to see if there are any developer documentation
issues that might need dealing with for Thunderbird 2. If anybody is
aware of anything, please let me know, so I can start making
arrangements to get as much of it done as possible before release.

Thanks!

Eric Shepherd
Technical Writer
she...@mozilla.com

Phillip Hallam-Baker

unread,
Sep 28, 2006, 4:14:41 PM9/28/06
to

Eric Shepherd wrote:
> With the Firefox 2 documentation basically done at this point, I
> thought I'd check in to see if there are any developer documentation
> issues that might need dealing with for Thunderbird 2. If anybody is
> aware of anything, please let me know, so I can start making
> arrangements to get as much of it done as possible before release.

It is difficult to know where to begin.

Seriously, I just cannot find the Thunderbird reference corpus and its
not for lack of looking. I have been googling the entire web with entry
points from the sample code I have pulled from another extension. I
just can't find a reference library.

It took me two days to find the DOM inspector, the Mozillaine
instructions point to a Dom inspector that does not work, there is a
version that works but its not listed under developer tools.

What I want to know is pretty basic stuff like is there a routine that
presents the headers of a message being viewed. At the moment I am
duplicating this functionality in JScript.

What I am trying to do here is to implement DKIM in Thunderbird and
display Secure Letterhead logos for signed DKIM messages.

Ideally this would be done in two parts, first check the DKIM signature
when the message is first received, second display the results of
checking when the message is displayed.

(This can be optimized by doing the verification asynchronously in
parallel with message acquisition).

At the moment I am just faking the display part so that the usability
testing people have something to work with. But I want to do the full
checking at some date. I understand that this is likely to require C
code and some C++ stub interfaces.


The XPCon stuff all looks sensible to me, I have designed similar
systems.

What I simply cannot find is any documentation of the thunderbird
internals I am trying to hook.

Even a note saying 'there is no documentation, here is how to reverse
engineer' would be a start.

Surely with a technology like XPcon you generate out documentation from
the code base using a script?

Eric Shepherd

unread,
Sep 28, 2006, 4:18:49 PM9/28/06
to Phillip Hallam-Baker, dev-apps-t...@lists.mozilla.org
There are some things that have been generated automatically but
mostly we write it up by hand.

I've noticed there's not a ton of Thunderbird-specific documentation
available, and that's something that needs to be resolved. I'm not
nearly as familiar with Thunderbird as I am with Firefox, so I could
use some help figuring out what all needs to be done.

I suppose this is really more of a "let's start getting some TB
developer docs posted" issue rather than updating the existing docs.

I'd like to know how I can help get this effort going.

Eric Shepherd
Technical Writer
she...@mozilla.com

Ron K.

unread,
Sep 28, 2006, 5:17:41 PM9/28/06
to
T-bird Leader Eric Shepherd radioed the tower On 9/27/2006 2:03 PM:

Documentation of the policies in the TB all.js will be nice for script
writers trying to develop dynamic HTML & CSS for mail/news. Currently
it's a lot of trial and error toggling policies from "noAccess" to
"allAccess" to get script functions activated for dynamic layout.

--
Ron K.
Don't be a fonted, it's just type casting.

Ziga Sancin

unread,
Sep 28, 2006, 6:37:45 PM9/28/06
to
Eric Shepherd wrote:
> I've noticed there's not a ton of Thunderbird-specific documentation
> available, and that's something that needs to be resolved. I'm not
> nearly as familiar with Thunderbird as I am with Firefox, so I could use
> some help figuring out what all needs to be done.
>
> I suppose this is really more of a "let's start getting some TB
> developer docs posted" issue rather than updating the existing docs.
>
> I'd like to know how I can help get this effort going.
>
> Eric Shepherd
> Technical Writer
> she...@mozilla.com
>

Hey Eric,
like Philip said, it's very difficult to start discussing this topic.
There is however interest in having good Thunderbird (and mailnews in
general) developer docs in the very near future.

Since there's hardly any useful documentation available, it might be
good to start with an introductory article for potential developers
(Introduction to Thunderbird development?). The article should contain
basic project information (short history of Thunderbird, main
developers, project goals, roadmap and all available communication
channels), tools needed to start developing and links to the build
documentation and downloading the source articles at devmo, directory
structure of the project and short explanation of it (backend, frontend,
shared code with SeaMonkey Mail/News and Composer), a how to get
involved section ("goodfirstbug" bugs, "helpwanted" bugs, making
patches, review process, coding style guidelines) and useful links.

By the way, have you seen the Calendar docs at the mozilla wiki? The
docs make you wanna start hacking right away! :) Seriously, take a look
at them (if you haven't seen them already):
http://wiki.mozilla.org/Calendar:Hacking
http://wiki.mozilla.org/Calendar:Dev_Guide
http://wiki.mozilla.org/Calendar:Development_Strategies
http://wiki.mozilla.org/Calendar:Review_Process
http://wiki.mozilla.org/Calendar:UI_Ownership
http://wiki.mozilla.org/Calendar:Module_Ownership

Of course the docs aren't always using formal language, but they provide
exactly the information you need to start hacking on Sunbird/Lightning.
Perfect.

As you can see, it's even difficult to get much feedback in the
Thunderbird newsgroup. ;) It might be better to collect user stories and
base the docs around them. Anyway, once the introduction is in place,
everything will get easier.

Take care,
Ziga Sancin aka bisi

Scott MacGregor

unread,
Sep 28, 2006, 11:10:33 PM9/28/06
to
Ziga Sancin wrote:
>
> By the way, have you seen the Calendar docs at the mozilla wiki? The
> docs make you wanna start hacking right away! :) Seriously, take a look
> at them (if you haven't seen them already):
> http://wiki.mozilla.org/Calendar:Hacking
> http://wiki.mozilla.org/Calendar:Dev_Guide
> http://wiki.mozilla.org/Calendar:Development_Strategies
> http://wiki.mozilla.org/Calendar:Review_Process
> http://wiki.mozilla.org/Calendar:UI_Ownership
> http://wiki.mozilla.org/Calendar:Module_Ownership
>
> Of course the docs aren't always using formal language, but they provide
> exactly the information you need to start hacking on Sunbird/Lightning.
> Perfect.

Those calendar docs are pretty sweet. That could be a great start for getting some Thunderbird developer documentation going. See (http://www.mozilla.org/projects/thunderbird/) for a couple of pieces of information like that.

Thanks for getting this started Eric and all.

-Scott

David Bienvenu

unread,
Sep 29, 2006, 4:54:26 PM9/29/06
to
Thx, Eric.

There are definitely some TB2 developer documentation issues I'd love to
see addressed. Most of the requests we get for info are from extension
developers who want to know how to do certain basic things. A top down
architectural description of TB's data structures along with
documentation about extracting data would be helpful for both extension
developers and developers who want to work on core Thunderbird code.

Here's roughly what I had in mind:

Descriptions of the account manager, accounts, identities, servers,
folders, msg database, msg hdrs, and messages.
http://www.mozilla.org/mailnews/arch/accountmanager.html is an old
document that describes the first few of these. It's still basically
accurate but it could definitely use a stylistic face lift.

I think it would be very useful to have a description of how to iterate
over all accounts, over all folders in an account, and all msgs in a
folder, along with a description of how to stream a message to get at
its contents. I'd be happy to start a rough draft of what I have in
mind, if that's helpful, along with pointers to existing source code
that does these things...

A description of the nsIMsgDBView architecture would probably also be
useful, since it drives the thread pane.

The compose window is an other area that developers are often interested
in extending - but it's an area that I'm less knowledgeable about.

Standard8 might have an opinion about documenting the address book.

- David

David Bienvenu

unread,
Sep 29, 2006, 5:19:23 PM9/29/06
to
David Bienvenu wrote:
>
> I think it would be very useful to have a description of how to
> iterate over all accounts, over all folders in an account, and all
> msgs in a folder, along with a description of how to stream a message
> to get at its contents. I'd be happy to start a rough draft of what I
> have in mind, if that's helpful, along with pointers to existing
> source code that does these things...
I'm a big fan of learning from existing source code. Here's some code
that shows how to iterate over all the folders in all the accounts:

http://lxr.mozilla.org/mozilla/source/mailnews/base/src/nsMsgPurgeService.cpp#165

Here's some js code that shows how to open a db from a folder and
iterate over the msg hdrs in the db:

http://lxr.mozilla.org/seamonkey/source/mailnews/base/resources/content/markByDate.js#103

Here's some C++ code that shows how to stream a message

http://lxr.mozilla.org/seamonkey/source/mailnews/compose/src/nsMsgComposeService.cpp#1126

and how to parse its contents:

http://lxr.mozilla.org/seamonkey/source/mailnews/compose/src/nsMsgComposeService.cpp#998

None of these are perfect examples, but I think they're pretty useful.

- David

Mark Banner

unread,
Sep 29, 2006, 5:53:37 PM9/29/06
to
David Bienvenu wrote:
> Standard8 might have an opinion about documenting the address book.

Although the address book needs some major changes, it'd be really good
to document what's there already as I don't see them happening in the
near future.

Like the rest of mailnews, it'd be useful to document how to iterate
across address books, how to search, modify/add etc.


I'd like to note that a lot of the Thunderbird documentation will be
applicable to SeaMonkey as well, as mailnews uses largely the same
back-end code. So it'd be nice if any documentation produced was generic
with app specific bits where necessary.

Standard8

Eric Shepherd

unread,
Oct 4, 2006, 1:45:10 PM10/4/06
to David Bienvenu, dev-apps-t...@lists.mozilla.org
That would be very helpful.

I'm working on an outline of all the documentation suggestions I can
gather up for Thunderbird; I'll be sharing it with everyone for their
input once I'm done assembling it. Hopefully this week sometime.


Eric Shepherd
Technical Writer
she...@mozilla.com

Brian King

unread,
Oct 4, 2006, 4:21:56 PM10/4/06
to dev-apps-t...@lists.mozilla.org
On 27/09/2006 20:03 (CET), Eric Shepherd wrote:
> With the Firefox 2 documentation basically done at this point, I thought
> I'd check in to see if there are any developer documentation issues that
> might need dealing with for Thunderbird 2. If anybody is aware of
> anything, please let me know, so I can start making arrangements to get
> as much of it done as possible before release.

I'd be happy to help out with some docs. I've written a few extensions
for Thunderbird and delved into the mail/ and mailnews/ code for other
projects. A few topics consideration ...

1) how to get the message account from the header

2) adding message selection listeners

3) changing message headers and tweaking their UI display. The latter
has been requested by a few people, and I am not sure it has been
answered substantially yet.

Lots more topics out there of course, as mentioned elsewhere in this thread.

--
Brian King
www.mozdev.org - free project hosting for the Mozilla community

Cédric Corazza

unread,
Oct 4, 2006, 6:23:02 PM10/4/06
to
Hi,

Well I don't know if there is an Help Project for Thunderbird, intended
to be like the Firefox Help we have (whatever it is embedded or
online--but linked from the help TB menu). If so, please, I speak as a
localizer, don't throw it up into our faces when it's done :) . Even if
it is an embryo of help, just try to get it part of /l10n cvs repository
as soon as you think it worth it (0.5 release I guess). Help is the
'nightmare' of localizers. And IMHO, it's really amazing that a product
like Thunderbird does *not* have an embedded (or online linked) help!!

Regards

Philip Reames

unread,
Oct 21, 2006, 11:54:55 PM10/21/06
to

I would love to see some documentation on the address book data storage
layout & retrieval. Some of this already exists, but there's no central
easily found location.

Philip Reames


0 new messages