Compose In A Tab

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

Status

Compose In A Tab
Stage On hold
Status `
Release target `
Health OK
Status note `

Team

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

Open issues/risks

`

Stage 1: Definition

1. Feature overview

One way to move the compose window into a tab is to load the Compose window document into a XUL iframe (which is like an HTML iframe, except it hosts XUL). To test this out, install the Developer Assistant extension for Thunderbird, then go to Tools -> Extension Developer -> JavaScript Shell and run the following code:

enumerateWindows();
 Shell.enumWins[0].document.getElementById("tabmail").openTab(
  "chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});

Then try playing around with it, sending a message, etc. As you can see, the basic concept works, but there are currently issues with the UI. Your job will be to sort them out, make everything work properly, and ship your code as part of Thunderbird.

Easier way: Tools -> Error Console, then

top.opener.openTab("chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});

2. Users & use cases

`

3. Dependencies

`

4. Requirements

Level of difficulty: hard.

Skills needed: will require writing XUL (menus will probably need to be moved out into an overlay), JavaScript (passing menu commands down to the child iframe) and CSS (to fix theming issues) and writing unit tests to ensure that things work as expected. Since Mac OS X has a global menu, getting it right might require more work. You will need access to a Mac for your proposal to be accepted..

Non-goals

`

Stage 2: Design

5. Functional specification

`

6. User experience design

`

Stage 3: Planning

7. Implementation plan

`

8. Reviews

Security review

`

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

`

Operations review

`

Stage 4: Development

9. Implementation

`

Stage 5: Release

10. Landing criteria

`

The given value "One way to move the compose window into a tab is to load the Compose window document into a XUL iframe (which is like an HTML iframe, except it hosts XUL). To test this out, install the Developer Assistant extension for Thunderbird, then go to Tools -> Extension Developer -> JavaScript Shell and run the following code:
enumerateWindows();
 Shell.enumWins[0].document.getElementById("tabmail").openTab(
  "chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});

Then try playing around with it, sending a message, etc. As you can see, the basic concept works, but there are currently issues with the UI. Your job will be to sort them out, make everything work properly, and ship your code as part of Thunderbird.

Easier way: Tools -> Error Console, then

top.opener.openTab("chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});
" contains strip markers and therefore it cannot be parsed sufficiently.

Feature details

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

Team status notes

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