Activity Manager

This is an archived page. It's not actively maintained.

This content covers features introduced in Thunderbird 3

The Activity Manager is a simple component that understands how to display a combination of user activity and history. The Activity Manager works in conjunction with the Interactive Status Bar to give the user notifications concerning what Thunderbird is doing and how Thunderbird has handled user requests.

See Activity Manager interfaces for a description of the programmatic components. The Activity Manager examples page has code snippets.

The Interactive Status Bar displays important events and process activity to the user. The Activity Manager displays a more detailed summary of activity for each process and event.

A maximum of 250 events can be stored in the activity manager. Those events are persistent in the Activity Manager until the user pushes the Clear List button or until Thunderbird is shut down.

Activity items

There are two different classifications of activity items that can be displayed in the Activity Manager window.


Processes are vague notions of activity that are provided for the users' benefit. They do not directly translate into an operating system process or a Thunderbird thread and therefore can be comprised of many different parts of which are actually separate processes internally.

Processes are transient in the display. They are not written to disk as they are always acting on data that already exists (locally or remotely). If a process has finished and needs to keep some state for the user (for example, last sync time) it can convert itself into an event.

Processes can be in one of these states:

  • Active
    • When a process is running (like sending mail)
  • Try Again
    • When a process has failed and is waiting for a certain timeout period before trying again (Users can interrupt this state by telling the process to run immediately or cancel)
  • Waiting for Input
    • A process can only continue if the user gives additional input (for example, a password)
      • Additional input is not acknowledgement of a problem
  • Finished
    • When a process is done and has converted itself into an event
    • Not all processes need to convert to events (such as sending mail)

There is no failure state included in the process state. There is only "try again" and "wait for input". This is intentional because Thunderbird should never completely quit on the user - it should always continue trying until it has succeeded or been told to cancel. During this period of continually trying it is important that, through these changes, the user is aware of what Thunderbird is doing and has the capability to alter its actions by cancelling the "try again" process.

Processes should (essentially) be directly attached to a server URL. With incoming email accounts and outgoing email accounts the errors are almost always problems with server connections. When a connection fails, the group of actions that is currently running will often all be blocked by the same issue (whether the issue is waiting for the connection or waiting for user input). Therefore by creating a relationship of process to server with multiple actions in the process we can have a user interface where single actions are available to "try now" for all actions running in a process.

Sort order

An active process is always displayed at the top of the Activity Manager window. Once a process is finished it can convert to an event and then is sorted in reverse chronological order (newest to oldest) with other events. If a process is in the "try again" state it is sorted above active processes. A process in the "waiting for input state" is sorted above everything else.

Process example: account activity

A process connected to the mail account creates multiple events for different activities. This is the parent process essentially responsible for the connections between Thunderbird and a mail server. As it synchronizes mail or performs user initiated actions it can create events or errors in the Activity Manager.

A single account process can perform multiple actions at the same time, for example:

| Moz Mail                                                     ( v ) |
|                                                                    |
|      [=====================                ]  100 of 300 messages  |
|       Synchronizing Folder 'bugs'                                  |
|      [============                         ]  3 of 20 messages     |
|       Moving Conversation from 'Inbox' to 'Personal'               |
|      [===============================      ]  23 of 30 messages    |
|       Filtering messages in 'Inbox'                                |
|                                                                    |

Possible Events created

  • Moved - Folder / Message / Conversation
  • Copied - Folder / Message / Conversation
  • Deleted - Folder / Message / Conversation

Possible "try again" state

  • Connection Error

Possible "waiting for input" state

  • Password Error

Possible finished state

  • Completed Sync

Process example: sending mail

A parent process represents the connection to an SMTP server. The display of this process is transient, therefore when finished it disappears from the Activity Manager window leaving behind only the "sent mail" events.

Once the connection to the server is made this process can display progress as it creates "sent message" events for each message sent.

| Account - /Default SMTP/                                           |
|                                                                    |
|      [=====================                ]  10 of 30 messages    |
|       Sending Messages                                             |
|                                                                    |

Possible events created

  • Sent Message

Possible "try again" states

  • Connection Error
  • General Error

Possible "waiting for input" state

  • Password Error

Finished state

  • Disappear


Historical actions that were performed by the user resulted in a process in the Activity Manager window. Events can be displayed in the Interactive Status bar as they are created. However often the process is being actively displayed.

The goal of an event is to provide a historical context to the user about the actions they performed, such as sending mail or deleting contacts. In future versions events could have an undo function to recover from operations the user didn't intend.