Related documents: a vision for WebExtensions.
This document tries to explain the development roadmap between now and the Firefox 57 release. It does not try to predict changes or new APIs beyond that, rather to give a clear roadmap to developers who might be porting their add-on to WebExtensions. If you are porting your add-on, some help is available.
Because WebExtensions are an open source project, the exact amount of work that’s completed between now and Firefox 57 will depend upon the amount of contributions. Our aim is to complete all bugs marked as webextensions+ in Bugzilla before Firefox 57. We'll then review all bugs marked as webextensions?. We are expecting regressions, security issues and performance issues to be added to this list of work we have to do as high priorities.
The work on Chrome compatibility is mostly complete. There are edge cases or low priority bugs to be completed, but by 57 we support will some level of the following APIs: alarms, bookmarks, browserAction, browsingData, commands, contextMenus, cookies, devtools.inspectedWindow, devtools.network, devtools.panels, downloads, extension, history, i18n, identity, idle, management, notifications, omnibox, pageAction, permissions, privacy.network, privacy.websites, proxy, runtime, sessions, storage, tabs, topSites, webNavigation, webRequest, windows.
We also have support for nativeMessaging and things that are not in Chrome such as: sidebars, contextualIdentities and theme.
Out of process extensions
Before Firefox 57 lands, we will complete out of process extensions. Content scripts already run in the content process. This change will mean the rest of the extension will now run in an extension process. There will be one process for all the extensions. This will include a suitable set of metrics to measure the performance of the extension process and content script.
We aim to complete the developer tools APIs (inspectedWindow and panels) to the degree that the most popular devtools add-ons (Ember Inspector, Angular JS Batarang, React Dev Tools, Redux DevTools Extension) on the Chrome store will work in Firefox with minimal or no modification.
We aim to complete enough APIs to allow the most popular add-ons on Android (AdBlock Plus and uBlock Origin) to run as WebExtensions. To support those we will complete: browserAction, pageAction, options_ui, permissions and maybe contextMenus (being investigated at this time).
There is no plan to support other APIs like history, bookmarks etc by Firefox 57.
File system read access is only available through explicit actions, such as drag and drop or input fields. File system write access is only available to the “Downloads” folder. For blob storage we’ll provide a library to make using indexeddb easier.
There is no plan to provide read or write access to arbitrary files by Firefox 57.
For more information please see some more notes on the file system support.
There will be no general access to preferences (about:config) planned. The only way to access a preference is through a specific API designed for that. Please see the privacy API for an example.
There is no plan to allow WebExtensions to be able to change the default search engine.
The tabs API has a large amount of APIs for interacting with tabs.
There is no plan to change the appearance of tabs or interacting with the XUL in any way.
This bug suggests it will be happening, but it hasn't been assigned to anyone yet. There's some discussion around if this is a good feature or not. The only toolbar left in Firefox is the bookmarks toolbar and there's some pressure to remove that as well. We are not keen on providing APIs, only to have to remove them.
Of all the things in the roadmap, this is the most unclear at this moment. [Last updated May 9th]
This is not going to happen for Firefox 57. [Last updated August 16th]
The theming API will provide static and dynamic access to change background images, font colours. Currently this is similar to “lightweight themes”.
There is no plan to support XUL or theming or changes to the UI beyond some basic CSS changes similar to Chrome.
We aim to enable streaming of downloads in the downloads API. This will also allow extensions to examine response data as responses come into Firefox.
If there are other areas that you are looking for, then please contact the add-ons team and we’ll try to help clear things up.