Compose In A Tab
Status
Compose In A Tab | |
Stage | Draft |
Status | ` |
Release target | ` |
Health | OK |
Status note | ` |
{{#set:Feature name=Compose In A Tab
|Feature stage=Draft |Feature status=` |Feature version=` |Feature health=OK |Feature 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 | ` |
{{#set:Feature product manager=`
|Feature feature manager=Jonathan Protzenko |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
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
` {{#set:Feature open issues and risks=` |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"});
|Feature users and use cases=` |Feature dependencies=` |Feature 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.. |Feature non-goals=` |Feature functional spec=` |Feature ux design=` |Feature implementation plan=` |Feature security review=` |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=` |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 | Unassigned |
{{#set:Feature priority=Unprioritized
|Feature rank=999 |Feature theme=` |Feature roadmap=Thunderbird |Feature secondary roadmap=` |Feature list=Thunderbird |Feature project=` |Feature engineering team=Unassigned }}
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=` }}