Features/Jetpack/Addons In Toolbar
Status
| Addons In Toolbar | |
| Stage | Planning |
| Status | In progress |
| Release target | ` |
| Health | OK |
| Status note | Undergoing design and specification |
{{#set:Feature name=Addons In Toolbar
|Feature stage=Planning |Feature status=In progress |Feature version=` |Feature health=OK |Feature status note=Undergoing design and specification }}
Team
| Product manager | Dave Mason |
| Directly Responsible Individual | Matteo Ferretti |
| Lead engineer | Matteo Ferretti |
| Security lead | ` |
| Privacy lead | ` |
| Localization lead | ` |
| Accessibility lead | ` |
| QA lead | ` |
| UX lead | Stephen Horlander |
| Product marketing lead | ` |
| Operations lead | ` |
| Additional members | ` |
{{#set:Feature product manager=Dave Mason
|Feature feature manager=Matteo Ferretti |Feature lead engineer=Matteo Ferretti |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=` |Feature ux lead=Stephen Horlander |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=` }}
Open issues/risks
Mobile is the biggest concern here, it is unclear how the proposal fits in on phones and tablets.
We will also be restricting the size of the widget that developers can use now, we should consider how to support existing add-ons with larger widgets.
Stage 1: Definition
1. Feature overview
The SDK currently allows add-on developers to create widgets in the add-on bar in Firefox. Widgets have the following appearance options:
- Display as a simple icon
- Display any sized complex UI using HTML
Widgets can have either of the following behaviours:
- Clicking runs some code provided by the developer
- Clicking opens a panel of a more complex UI using HTML
Developers have long wanted to see their widgets appear in the navigation bar and with Australis the add-on bar is going away so it is time to make that move with the support of the UX team as well as give developers more capabilities than they currently enjoy.
2. Users & use cases
Add-on developers will use this to create awesome experiences for their users.
3. Dependencies
`
4. Requirements
`
Non-goals
- Developing a full set of UI primitives and widgets for developers to use
- Allowing add-on developers to customise any aspect of Firefox's UI.
Stage 2: Design
5. Functional specification
We will need to define an area of the main Firefox toolbar for add-ons. Any widgets added by add-ons will appear there and there will be an overflow chevron for the case where there are too many to display.
We already have the widget API but it must be extended so that we have the following display options available:
- Display as a simple icon within the location bar
- 16x16 icon currently maybe higher DPI in the future
- Display as a simple icon
- 16x16 icon currently maybe higher DPI in the future
- Display as a small widget in the toolbar (this is a restriction over what we currently support)
- Sizing suggested as being a maximum of 4 times an icon, so 64x16
Each type of display can have one of these behaviours:
- Clicking runs some code provided by the developer
- Fire event when clicked
- Clicking opens a panel of a more complex UI using HTML
- Fire event when the panel opens and closes
- Clicking toggles the widget on and off (only supported for the two icon styles of widget)
- Fire events when toggled on/off
- Clicking toggles a toolbar on and off
- The add-on developer provides a url to use for the toolbar content
- Fire events when toggled on/off
- Clicking toggles a sidebar on and off
- The add-on developer provides a url to use for the sidebar content
- Fire events when toggled on/off
6. User experience design
Woo mockups: http://people.mozilla.com/~shorlander/files/addons-in-toolbar-i01/addons-in-toolbar.html
Stage 3: Planning
7. Implementation plan
- Phase 1 (all items in parallel)
- Firefox implementation of the space in the toolbar and overflow support
- Moving existing widgets to the new area
- Restrict the size of html widgets
- Phase 2 (all items mutually exclusive, can be implemented in any order)
- Add support for icons in the location bar
- Add support for toggles
- Add support for toolbars
- Add support for sidebars
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=Mobile is the biggest concern here, it is unclear how the proposal fits in on phones and tablets.
We will also be restricting the size of the widget that developers can use now, we should consider how to support existing add-ons with larger widgets. |Feature overview=The SDK currently allows add-on developers to create widgets in the add-on bar in Firefox. Widgets have the following appearance options:
- Display as a simple icon
- Display any sized complex UI using HTML
Widgets can have either of the following behaviours:
- Clicking runs some code provided by the developer
- Clicking opens a panel of a more complex UI using HTML
Developers have long wanted to see their widgets appear in the navigation bar and with Australis the add-on bar is going away so it is time to make that move with the support of the UX team as well as give developers more capabilities than they currently enjoy. |Feature users and use cases=Add-on developers will use this to create awesome experiences for their users. |Feature dependencies=` |Feature requirements=` |Feature non-goals=* Developing a full set of UI primitives and widgets for developers to use
- Allowing add-on developers to customise any aspect of Firefox's UI.
|Feature functional spec=We will need to define an area of the main Firefox toolbar for add-ons. Any widgets added by add-ons will appear there and there will be an overflow chevron for the case where there are too many to display.
We already have the widget API but it must be extended so that we have the following display options available:
- Display as a simple icon within the location bar
- 16x16 icon currently maybe higher DPI in the future
- Display as a simple icon
- 16x16 icon currently maybe higher DPI in the future
- Display as a small widget in the toolbar (this is a restriction over what we currently support)
- Sizing suggested as being a maximum of 4 times an icon, so 64x16
Each type of display can have one of these behaviours:
- Clicking runs some code provided by the developer
- Fire event when clicked
- Clicking opens a panel of a more complex UI using HTML
- Fire event when the panel opens and closes
- Clicking toggles the widget on and off (only supported for the two icon styles of widget)
- Fire events when toggled on/off
- Clicking toggles a toolbar on and off
- The add-on developer provides a url to use for the toolbar content
- Fire events when toggled on/off
- Clicking toggles a sidebar on and off
- The add-on developer provides a url to use for the sidebar content
- Fire events when toggled on/off
|Feature ux design=Woo mockups: http://people.mozilla.com/~shorlander/files/addons-in-toolbar-i01/addons-in-toolbar.html |Feature implementation plan=* Phase 1 (all items in parallel)
- Firefox implementation of the space in the toolbar and overflow support
- Moving existing widgets to the new area
- Restrict the size of html widgets
- Phase 2 (all items mutually exclusive, can be implemented in any order)
- Add support for icons in the location bar
- Add support for toggles
- Add support for toolbars
- Add support for sidebars
|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 | P1 |
| Rank | 999 |
| Theme / Goal | ` |
| Roadmap | Jetpack |
| Secondary roadmap | ` |
| Feature list | Jetpack |
| Project | ` |
| Engineering team | Jetpack |
{{#set:Feature priority=P1
|Feature rank=999 |Feature theme=` |Feature roadmap=Jetpack |Feature secondary roadmap=` |Feature list=Jetpack |Feature project=` |Feature engineering team=Jetpack }}
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=` }}