Browser extensions
==================

Extensions, or add-ons, can modify and enhance the capability of a browser. Extensions for Firefox are built using the WebExtensions API cross-browser technology.

The technology for extensions in Firefox is, to a large extent, compatible with the extension API supported by Chromium-based browsers (such as Google Chrome, Microsoft Edge, Opera, Vivaldi). In most cases, extensions written for Chromium-based browsers run in Firefox with just a few changes.

Key resources
-------------

Guides

Whether you're just beginning or looking for more advanced advice, learn about how extensions work and use the WebExtensions API from our extensive range of tutorials and guides.

References

Get comprehensive details about the methods, properties, types, and events of the WebExtensions APIs and full details about the manifest keys.

Firefox workflow

Discover how to build and publish extensions for Firefox: get the lowdown on developer tools, publication and distribution, and porting on Extension Workshop.


**Note:** If you have ideas or questions or need help, you can reach us on the community forum or in the Add-ons Room on Matrix.

Get started
-----------

Discover what extensions can do before building your first extension. Learn about the anatomy of an extension and get an overview of the extension development and publication workflow, Firefox style. Explore a little deeper with a comprehensive selection of example extensions that you can run right in Firefox.

Concepts
--------

Get detailed information on the concept that underpin extensions from an overview of the JavaScript API, through content scripts, match patterns, working with files, internationalization, and content security policy, to more advanced subjects such as native messaging, using the devtools APIs, and native manifests.

User interface
--------------

Discover all the user interface components you can use in your extensions, with coding examples and tips.

How to
------

From patterns you'll regularly use such as work with the Tabs API and adding a button to the toolbar to more advanced topics such as intercepting HTTP requests and working with contextual identities, you'll find a range of tutorials to get you started.

Firefox workflow
----------------

When you are ready to create your extension for Firefox or port your Chrome extension, head over to Extension Workshop. It has details on:

* The Firefox workflow, such as temporarily installing extensions during development, debugging, request the right permissions, and more.
* The web-ext developer tool.
* Porting a Google Chrome extension, differences between desktop and Android, and more.
* Publishing and distribution overview, promoting your extension, the extension lifecycle best practices, and more.
Reference
---------

### JavaScript APIs

Get comprehensive details about the methods, properties, types, and events for all the JavaScript APIs. There is also detailed information about the compatibility of each API with the major browsers. Most reference pages also include coding examples and links to the extension examples that use the API.

### Manifest keys

Get full details about the manifest keys, including all their properties and settings. There's also detailed information on the compatibility of each key with the major browsers.