Thunderbird:Activity Manager

From MozillaWiki
Jump to: navigation, search

NOTE: The content on this page has been moved to MDC: Activity Manager, Activity Manager Interfaces and Activity Manager Examples

Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

Activity Manager

Is a simple component that understands how do display a combination of user activity and history. The activity manager works in conjunction with the Thunderbird:Interactive Status Bar to give the user the right level of notifications concerning what Thunderbird is doing on it's own and how Thunderbird has handled user requests.

Events are persistent in the Activity Manager, they should be saved for a set period of time which can be determined after some performance work and testing.

Development for the Activity Manager can be tracked in bug 257942

Activity Items

There are 2 different classifications of activity items which can be displayed in the Activity Manager Window.


Processes are vague notions of activity and provided for the users benefit. They do not directly translate into an operating system process or 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 some data that already exists locally or remotely. If a process has finished and needs to keep some state for the user (like 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 failed to run and is waiting on a certain timeout before trying again
    • Users can interrupt this state by telling the process to run now or cancel
  • Waiting for Input
    • A process can only continue if the user gives additional input (like 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 there should never be a time that Thunderbird completely quits on it's user, it can and should continue trying until it has succeeded or been told to cancel. During this period of continually trying it's important that, through these changes, the user is aware of what Thunderbird is doing and has the capability to alter it's 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 running will often all block at the same issue, be it trying the connection again 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 sorted at the top of the Activity Manager Window by start time while it is active. Once a process is finished it can convert to an event and then is sorted like an event. If a process is in the Try Again state it is sorted above active processes and a process in the Waiting for Input state is sorted above all.

Here are 2 examples of processes

Account Activity

A Process connected to the mail account which 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'                                |
|                                                                    |

More examples at the Account Activity page

Possible Events Created

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

Possible Try Again States

  • Connection Error

Possible Waiting for Input State

  • Password Error

Possible Finished State

  • Completed Sync

Sending Mail

A parent process which represents the connection to an SMTP server. The display of this process is transient, therefore on finished state 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 performed by the user and created by a process for the Activity Manager Window. Events can show up in the Thunderbird:Interactive Status Bar and be displayed to users 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 actions they performed, such as sending mail or deleting contacts. In future versions events could have an and undo context to all people to recover from operations they didn't intend.

Relevant Links

Relevant Bugs

  • bug 123440 — Stop that annoying modal dialog when mail can't connect to the mail server from connection time out error
  • bug 253426 — display activity in status bar
  • bug 131965 — Actions of message filters should be displayed in the status bar
  • bug 194949 — better status / progress UI feedback with junk mail
  • bug 238972 — should have extensive/detailed download status window
  • bug 227551 — No error message when connection to POP3 server lost