Features/Jetpack/Addons In Toolbar

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

Status

Addons In Toolbar
Stage Planning
Status In progress
Release target `
Health OK
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 `

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

`


Feature details

Priority P1
Rank 999
Theme / Goal `
Roadmap Jetpack
Secondary roadmap `
Feature list Jetpack
Project `
Engineering team Jetpack

Team status notes

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