- 1 A Web-based API for Developing Extensions in Firefox
- 2 About the WebExtensions API
- 3 Migration paths for developers of legacy add-ons
- 4 Don't See the WebExtensions APIs You Need?
- 5 Tools
- 6 Documentation & Tutorials
- 7 Blog Posts
- 8 Add-on Developer Communication Calendar
- 9 Get in Touch
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
- WebExtensions Vision: see the high-level vision for the WebExtensions API.
- WebExtensions Policy: guidelines for what should be included in the WebExtensions API
- WebExtensions APIs FAQs: Have questions about the WebExtensions API? Check out these frequently asked questions.
Migration paths for developers of legacy add-ons
1) SDK add-on
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.
- 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
- webextensions.tech is a scaffolding UI tool for browser extensions. It lets you to input and select few parameters and outputs a complete boilerplate browser extension project.
- 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
- Porting guides that map SDK and XUL APIs to available WebExtensions APIs
- How to port a Chrome extension to Firefox
- How-to guides covering common add-on developer cases, like intercepting web requests and adding a button to the toolbar
- Comparison with the Add-on SDK
- Comparison with XUL/XPCOM extensions
- Browser compatibility table for all WebExtensions APIs
- Examples of WebExtensions on MDN Web Docs
All WebExtensions blog posts are here.
- December 20, 2018: Extensions in Firefox 65
- November 8, 2018: Extensions in Firefox 64
- August 31, 2018: Extensions in Firefox 63
- July 5, 2018: Extensions in Firefox 62
- May 17, 2018: Extensions in Firefox 61
- April 2, 2018: Extensions in Firefox 60
- January 26, 2018: Extensions in Firefox 59
- November 20, 2017: Extensions in Firefox 58
- November 3, 2017: Keeping Tabs on the Tab API
- October 3, 2017: Legacy Support on Firefox ESR
- September 28, 2017: WebExtensions in Firefox 57
- September 8, 2017: Last Chance to Migrate Your Legacy Data
- September 7, 2017: Tell Your Users What To Expect in Your WebExtensions Version
- August 11, 2017: WebExtensions in Firefox 56
- August 3, 2017: Extension Examples: See the APIs in Action
- June 14, 2017: WebExtensions in Firefox 55
- May 16, 2017: Add-on Compatibility for Firefox 55
- May 10, 2017: Incompatible change to sessions.restore API in Firefox 54
- Apr 3, 2017: Migrating ColorZilla to WebExtensions
- Mar 27, 2017: Update on Compatibility Milestones
- Mar 24, 2017: Migrating AdBlock for Firefox to WebExtensons
- Mar 17, 2017: Migrating to WebExtensions? Don't Forget Your Users
- Mar 13, 2017: WebExtensions in Firefox 54
- Mar 9, 2017: Office Hours Support for Transitioning and Porting to WebExtensions
- Feb 16, 2017: The Road to Firefox 57 – Compatibility Milestones
- Jan 25, 2017: WebExtensions in Firefox 53
- Jan 20, 2017: Migrating to WebExtensions: port your stored data
- Dec 16, 2016: Meet Some Nifty New WebExtensions
- Nov 23, 2016: Add-ons in 2017
- Nov 22, 2016: webextensions-examples and Hacktoberfest
- Nov 18, 2016: WebExtensions in Firefox 52
- Nov 3, 2016: More ways to contribute to WebExtensions
- Sep 29, 2016: WebExtensions in Firefox 51
- Sep 28, 2016: How Video DownloadHelper Became Compatible with Multiprocess Firefox
- Sep 13, 2016: WebExtensions and parity with Chrome
- Aug 25, 2016: WebExtensions in Firefox 50
- Aug 12, 2016: WebExtensions Taking Root
- July 27, 2016: Linting and Automatically Reloading WebExtensions
- July 21, 2016: New WebExtensions Guides and How-tos on MDN
- July 14, 2016: WebExtensions support on AMO
- June 9, 2016: WebExtensions in Firefox 49
- May 9, 2016: Results of the WebExtensions API Survey
- Apr 29, 2016: WebExtensions in Firefox 48
- Apr 26, 2016: Migrating Popup ALT Attribute from XUL/XPCOM to WebExtensions
- Apr 14, 2016: Developing Extensions With Web-ext 1.0
- Mar 30, 2016: Tinkering with WebExtensions
- Mar 14, 2016: Advantages of WebExtensions for Developers
- Mar 11, 2016: WebExtensions in Firefox 47
- Feb 2, 2016: WebExtensions in Firefox 46
- Jan 9, 2016: WebExtensions First Impressions
- Dec 21, 2015: WebExtensions in Firefox 45
- Aug 21, 2015: The Future of Developing Firefox Add-ons
Add-on Developer Communication Calendar
Get in Touch
- #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
- #themedev: theme development
- #webextensions: extension and WebExtensions API development
- Mailing List:
- dev-addons for general discussion
- More ways to get in touch:
Please see the add-ons main page Meetings section