Features/Jetpack/Make Add-on SDK Hug the Web Harder

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

Status

Make Add-on SDK Hug the Web Harder
Stage Draft
Status `
Release target `
Health OK
Status note `

{{#set:Feature name=Make Add-on SDK Hug the Web Harder

|Feature stage=Draft |Feature status=` |Feature version=` |Feature health=OK |Feature status note=` }}

Team

Product manager David Mason
Directly Responsible Individual `
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=David Mason

|Feature feature manager=` |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

The Add-on SDK hugs the web, providing addon developers with a set of tools and APIs for building addons using common web technologies such as HTML, CSS, and JavaScript as well as popular web libraries and standards like jQuery and CommonJS.

But some aspects of the SDK environment are not as weblike as they could be. Addon code runs in a JavaScript context that does not have access to web globals like XMLHttpRequest. And the SDK doesn't support the emerging standard for modules in JavaScript (nor does Firefox at this point).

To reduce the barrier to entry for web developers to build Firefox addons to the absolute minimum, the SDK should provide the most weblike programming environment possible.

Additionally, we might support XHR, SetTimeout, and SetInterval

In the future we might even consider making the experience of developing an add-on resemble creating for the web by moving main.js to main.html and making the relative paths work as they do when developing a website.

2. Users & use cases

The target audience is addon developers. The use case is an add-on developer using the Add-on SDK (either directly or via the Add-on Builder) to build an addon.

3. Dependencies

`

4. Requirements

`

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=The Add-on SDK hugs the web, providing addon developers with a set of tools and APIs for building addons using common web technologies such as HTML, CSS, and JavaScript as well as popular web libraries and standards like jQuery and CommonJS.

But some aspects of the SDK environment are not as weblike as they could be. Addon code runs in a JavaScript context that does not have access to web globals like XMLHttpRequest. And the SDK doesn't support the emerging standard for modules in JavaScript (nor does Firefox at this point).

To reduce the barrier to entry for web developers to build Firefox addons to the absolute minimum, the SDK should provide the most weblike programming environment possible.

Additionally, we might support XHR, SetTimeout, and SetInterval

In the future we might even consider making the experience of developing an add-on resemble creating for the web by moving main.js to main.html and making the relative paths work as they do when developing a website. |Feature users and use cases=The target audience is addon developers. The use case is an add-on developer using the Add-on SDK (either directly or via the Add-on Builder) to build an addon. |Feature dependencies=` |Feature requirements=` |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 P3
Rank 999
Theme / Goal `
Roadmap Jetpack
Secondary roadmap `
Feature list Jetpack
Project `
Engineering team Jetpack

{{#set:Feature priority=P3

|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=` }}