WebExtensions/Roadmap: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
Status: '''draft, in progress'''.
This document provides the overview of timelines androad maps for WebExtensions.


= Firefox 48 =
Please refer to the vision document for [http://wiki.mozilla.org/WebExtensions/Vision overview of where WebExtensions are heading].


Firefox 48 is the first release of Firefox where we are recommending people start to use WebExtensions. I won't be suitable for every project and add-on but it will be a stable platform.
= Timelines =


Application support:
Please also see [https://wiki.mozilla.org/Electrolysis#Add-ons_Schedule Multiprocess Firefox up to 57] timeline.
* Firefox
* Firefox for Android (where APIs are appropriate)


== APIs ==
{| class="wikitable"
|-
! Release !! Platform !! Description
|-
| 55 || Firefox Desktop || Disabling non-MPC add-ons on Nightly *only*.
|-
| 56 ||  || No changes planned.
|-
| 57 || Firefox || WebExtensions and internal Mozilla add-ons only. For details of what will be allowed see [https://wiki.mozilla.org/Add-ons/Firefox57 this page].
|
|}


Focus on key APIs that bring the biggest return for investment. For the full list, look at the tracking bug {{Bugzilla|1214433}}, but they will be:
= APIs =
* alarms (full)
* bookmarks (partial)
* browserAction (partial)
* commands (full)
* contextMenus (full)
* cookies (full)
* downloads (partial)
* extension (partial)
* i18n (full)
* idle (partial)
* notifications (partial)
* options_ui
* pageAction (full)
* runtime (partial)
* storage.local (full)
* tabs (full)
* webNavigation (full)
* webRequest (full)
* windows (full)


Notable exceptions:
The following links outline out APIs expect to be landing in what release:
* storage.sync requires some back end services from Mozilla which is currently in the process of being set up [andym: insert link to chrome.storage.sync page when its ready]


In terms of code quality we are striving for:
* [https://wiki.mozilla.org/WebExtensions/RoadMapFirefox48 Up to Firefox 48]
* 100% test coverage (with exceptions where it doesn't make sense)
* [https://wiki.mozilla.org/WebExtensions/RoadMapFirefox57 Up to Firefox 57]
* eslint compliant code
 
== Development tools ==
 
An add-on author will be able to use a new tool, `web-ext` to do the following:
* sign: sign the add-on through AMO
* run: start up a new profile and run the add-on
* test: start up a new profile and test the add-on in Firefox
* validate: run the add-on through the JavaScript add-on linter
 
A new tool is being written because of problems with the existing jpm tools.
 
== AMO ==
 
WebExtensions will be able to be uploaded to addons.mozilla.org then reviewed, searched, installed and updated just like any other Addon {{Bugzilla|1210037}}.
 
== Documentation ==
 
For all the APIs that Firefox supports, we'll have good documentation on MDN that outlines:
* how to use the API
* Firefox versions it is supported in
* any incompatibilities between Firefox and chrome
* any incompatibilities between Firefox Desktop and Firefox Android
 
Further we'll try to have examples available on github, documented on MDN for all the major examples.
 
== Deprecations ==
 
We don't anticipate that this release will cause any deprecations of other ways of building add-ons, although certainly we'd hope most resource will go into this release.
 
= Post Firefox 48 =
 
There are many areas we can work on past Firefox 48. This is one area to free form work through upcoming ideas, a scratch pad for priority & planning:
 
* native.js [https://bugzilla.mozilla.org/show_bug.cgi?id=1199718 Bug 1199718], this will make it easy/faster for folks to prototype and build new WebExtensions API's
** With this we can dev in 2 weeks and have big benefit from this for a long time.
*** Goal: tested, prototyped, pushed into mozcentral when ready “ideatown for webextension api’s” (Philip, Andy, John G - since similar to ideatown)
** Timing: UX work after e10s interface [https://bugzilla.mozilla.org/show_bug.cgi?id=1181835 bug 1181835]
** What is in development? about:config list add-ons using native js
* Chrome parity
* Chrome add-ons porting
** Top 20 chrome add-ons run in Fx
* Firefox add-ons porting
** Top 20 firefox add-ons running in WebExtensions - criteria based on downloads, actual usage, ratings: typically adblockers, download managers, tab add-ons, etc.
* Migration
** For example, the ability allow SDK add-ons to use WebExtensions APIs (Luca)
* Unique to Firefox features
** get ideas in this cycle for next….
** driven by add-ons need
** ex: [https://bugzilla.mozilla.org/show_bug.cgi?id=1244789 Bug 1244789] - Support richer user interactions in the chrome.browserAction API (Giorgio dev side / aswan andy would like to help engage here, madhava, markus)
** ex: [https://bugzilla.mozilla.org/show_bug.cgi?id=1219940 Bug 1219940 ] Something equivalent to OS.File - native.js would help until it's done as a "regular" WebExtension API
* [https://wiki.mozilla.org/WebExtensions/GoFaster Go faster] - early feasibility planning starting
** Feasibility (can we do it, difficulty, when good time)
**open issues as it's ramping up (Laura's team)
* Runtime.connectnative
* Styling & sort order
** UX is lower priority for now

Latest revision as of 16:22, 9 May 2017

This document provides the overview of timelines androad maps for WebExtensions.

Please refer to the vision document for overview of where WebExtensions are heading.

Timelines

Please also see Multiprocess Firefox up to 57 timeline.

Release Platform Description
55 Firefox Desktop Disabling non-MPC add-ons on Nightly *only*.
56 No changes planned.
57 Firefox WebExtensions and internal Mozilla add-ons only. For details of what will be allowed see this page.

APIs

The following links outline out APIs expect to be landing in what release: