Complete Send In Background

From MozillaWiki
Jump to navigation Jump to search
Please use "Edit with form" above to edit this page.

Status

Complete Send In Background function to use Outbox to send messages
Stage On hold
Status `
Release target `
Health OK
Status note up for grabs

{{#set:Feature name=Complete Send In Background function to use Outbox to send messages

|Feature stage=On hold |Feature status=` |Feature version=` |Feature health=OK |Feature status note=up for grabs }}

Team

Product manager `
Directly Responsible Individual Mark Banner
Lead engineer `
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead `
UX lead `
Product marketing lead `
Operations lead `
Additional members `

{{#set:Feature product manager=`

|Feature feature manager=Mark Banner |Feature lead engineer=` |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=` |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=` }}

Open issues/risks

`

Stage 1: Definition

1. Feature overview

Send in Background is intended to remove the interrupt of the user between clicking on send and having a visual sudo-block to be able to continue using and processing email.

2. Users & use cases

When a user hits send, we currently display a progress dialog whilst the send is in progress and the file is saved to the sent folder.

With send in background we would save the email to the local outbox, remove the compose window from the display and send the email.

This allows the user to continue working with email, whilst still sending the email.

If there is an error whilst sending the email, then Thunderbird can decide what to do, whether to try again later, or notify the user, or a mixture of both.

One area we have to be careful with is shutdown - if Thunderbird is in the process of sending an email, we shouldn't abort that - but allow it to be finished (whilst also informing the user). Additionally, if emails are waiting to be sent, we should potentially alert about those as well.

3. Dependencies

`

4. Requirements

  • Save email locally
  • Send email in the background without interrupting user
  • Attempt to re-send email without user interaction if the send fails
  • Gracefully handle persistent failures

Non-goals

`

Stage 2: Design

5. Functional specification

`

6. User experience design

`

Stage 3: Planning

7. Implementation plan

At its heart, this feature uses the send later functionality to operate. When enabled, emails are saved in the Outbox (in Local Folders) without the "Queued" flag set on them. nsMsgSendLater then detects the presence of the email and sends it in the background, with status reporting to the activity manager.

Currently the basic implementation works, but error and edge cases aren't correctly handled. For testing purposes mailnews.sendInBackground can be set to true.

bug 511079 is the tracking bug with dependencies showing the current issues.

8. Reviews

Security review

`

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

Thunderbird/TestPlans/SendInBackground

Operations review

`

Stage 4: Development

9. Implementation

`

Stage 5: Release

10. Landing criteria

` {{#set:Feature open issues and risks=` |Feature overview=Send in Background is intended to remove the interrupt of the user between clicking on send and having a visual sudo-block to be able to continue using and processing email. |Feature users and use cases=When a user hits send, we currently display a progress dialog whilst the send is in progress and the file is saved to the sent folder.

With send in background we would save the email to the local outbox, remove the compose window from the display and send the email.

This allows the user to continue working with email, whilst still sending the email.

If there is an error whilst sending the email, then Thunderbird can decide what to do, whether to try again later, or notify the user, or a mixture of both.

One area we have to be careful with is shutdown - if Thunderbird is in the process of sending an email, we shouldn't abort that - but allow it to be finished (whilst also informing the user). Additionally, if emails are waiting to be sent, we should potentially alert about those as well. |Feature dependencies=` |Feature requirements=* Save email locally

  • Send email in the background without interrupting user
  • Attempt to re-send email without user interaction if the send fails
  • Gracefully handle persistent failures

|Feature non-goals=` |Feature functional spec=` |Feature ux design=` |Feature implementation plan=At its heart, this feature uses the send later functionality to operate. When enabled, emails are saved in the Outbox (in Local Folders) without the "Queued" flag set on them. nsMsgSendLater then detects the presence of the email and sends it in the background, with status reporting to the activity manager.

Currently the basic implementation works, but error and edge cases aren't correctly handled. For testing purposes mailnews.sendInBackground can be set to true.

bug 511079 is the tracking bug with dependencies showing the current issues. |Feature security review=` |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=Thunderbird/TestPlans/SendInBackground |Feature operations review=` |Feature implementation notes=` |Feature landing criteria=` }}

Feature details

Priority Unprioritized
Rank 999
Theme / Goal `
Roadmap Thunderbird
Secondary roadmap `
Feature list Thunderbird
Project `
Engineering team `

{{#set:Feature priority=Unprioritized

|Feature rank=999 |Feature theme=` |Feature roadmap=Thunderbird |Feature secondary roadmap=` |Feature list=Thunderbird |Feature project=` |Feature engineering team=` }}

Team status notes

  status notes
Products ` `
Engineering ` `
Security ` `
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` `
User experience ` `
Product marketing ` `
Operations ` `

{{#set:Feature products status=`

|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=` |Feature security health=` |Feature security notes=` |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=` |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}