Add-ons/developer/communication

From MozillaWiki
Jump to: navigation, search

A Web-based API for Developing Extensions in Firefox

The WebExtensions API was introduced in 2016 as a stable, cross-browser platform that allows extension and theme authors to enhance the default Firefox browser. In November of 2017 it became the only officially supported extension API with the release of Firefox Quantum. The secure, sandboxed nature of the WebExtensions API means that not every legacy API can or will be available. Nevertheless, since its introduction, the WebExtensions API has grown with new features such as tab hiding and additional theme elements, all while maintaining near-complete compatibility with the Chrome extension API. Going forward, you can expect to see improvements in performance as well as additional features for user scripting, context menus, keyboard shortcuts and private browsing.

Keep an eye on the Add-ons Blog for more information on enhancements to the WebExtensions API in upcoming releases of Firefox or, if you want real-time detailed information on upcoming changes, follow the WebExtensions product in Bugzilla.

This page contains resources to help you port your legacy extension to use WebExtensions APIs. If you're looking for resources on creating a new extension, please head over to MDN.

About the WebExtensions API

Migration paths for developers of legacy add-ons

1) SDK add-on

Here is the comparison chart showing SDK APIs and their WebExtensions counterparts. If you don't see the APIs you need to port to WebExtensions, please take a look at some more options below.

2) XUL or XPCOM add-on

Here is the comparison chart showing XUL/XPCOM APIs and their WebExtensions counterparts. If you don't see the APIs you need to port to WebExtensions, please take a look at some more options below.

Don't See the WebExtensions APIs You Need?

  • If you're experienced with Mozilla infrastructure and would like to develop WebExtensions APIs directly for Firefox, here is a list of approved APIs that you can start contributing to.
  • If you want to prototype and tinker with WebExtensions APIs without having to build Firefox, WebExtensions Experiments is for you!
  • If you want to request a new WebExtensions API, please read this page.

Not all add-ons will be able to migrate to WebExtensions without having to drop any features. But we want to work with you to get as many add-ons migrated as possible with the functionality you created intact. We invite you to contribute to its evolution, and we look forward to working with you.

Tools

  • web-ext is a command line tool designed to speed up various parts of the WebExtension development process, making development faster and easier.
  • The Extension Compatibility Test is a utility that can test your Chrome extension's compatibility with Firefox. All you need to do is upload your .crx file.
  • WebExtensions Helper speeds up browser add-ons development by providing facilities for WebExtensions-based (Firefox, Chrome, Opera and Edge) extensions
  • Chrome Extension generator creates everything you need to get started with extension development. You can choose Browser UI(Browser,Page Action, Omnibox) type and select permissions you need.
  • Extensionizr is a wizard that helps you create a basic extension
  • Chrome Boilerplate
  • Skeleton Chrome Extension is an extension bootstrap and template

Documentation & Tutorials

Blog Posts

All WebExtensions blog posts are here.

Add-on Developer Communication Calendar

This calendar includes public meetings, scheduled blog posts, office hours, release milestones that affect add-on developers, and more. Links to add it to your own calendar: iCal | HTML

Get in Touch

  • IRC:
    • #teamaddons: team chat
    • #addons: support for extensions, themes, plugins and addons.mozilla.org
    • #addon-reviewers: add-on reviews and policy
    • #amo: addons.mozilla.org bugs and development
    • #extdev: extension development
    • #themedev: theme development
    • #webextensions: web extensions

Meetings

Please see the add-ons main page Meetings section