WebExtensions/RoadMapFirefox48

From MozillaWiki
Jump to: navigation, search

Status: done.

For an overview of the WebExtensions roadmap, please see the overview page.

Post Firefox 48

In progress.

Old releases: Firefox 48

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.

Application support:

  • Firefox
  • Firefox for Android (where APIs are appropriate)

APIs

Focus on key APIs that bring the biggest return for investment. For the full list, look at the tracking bug 1214433, but they will be:

  • 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:

  • storage.sync requires some back end services from Mozilla which is currently in the process of being set up

In terms of code quality we are striving for:

  • 100% test coverage (with exceptions where it doesn't make sense)
  • 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 1210037.

Documentation

For all the APIs that Firefox supports, we have good documentation on MDN.

  • 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: previous notes

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 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 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: 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: Bug 1219940 Something equivalent to OS.File - native.js would help until it's done as a "regular" WebExtension API
  • 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