Mozilla's WebExtension API Simplifies Cross-Browser Add-On Development

Mozilla made a number of announcements surrounding add-on development for Firefox, led by the new WebExtensions API. Mozilla developed the browser extension API after developers consistently requested that add-on development should closely resemble web development. In other words, switching browsers with a particular extension should not require significant code changes. In response, the WebExtensions API should greatly increase cross-browser compatibility.

Mozilla lists a clear set of goals for the API:

  • Porting add-ons to and from other browsers should be easier.
  • Reviewing add-ons for should be easier.
  • WebExtensions must be compatible with multiprocess Firefox (Electrolysis).
  • Changes to Firefox's internal code should be less likely to break add-ons.
  • WebExtensions should be easier to use than the existing Firefox XPCOM/XUL APIs.

The API is Blink-compatible which means that extension code written for Chrome and Opera should run in Firefox with little code change. WebExtensions acts like any other Firefox add-on. Mozilla must sign the extension, and users can discover WebExtensions at or through a developer's site. Currently, the API is available in a preview through Firefox nightly. Mozilla encourages developers to test out the API and provide feedback before going live. Mozilla will track feedback through its community

Mozilla made three other announcements alongside the WebExtentions introduction. First, a new, faster, safer, multi-process version of Firefox that supports Electrolysis will soon hit the market. Next, starting with Firefox 41, all extensions will require validation and signature by Mozilla (the anticipated release date of Firefox 41 is September 22nd). Finally, Mozilla has finalized a deprecation plan for XPCOM- and XUL- based add ons. Check out details on all of the announcements at the Mozilla blog.

Be sure to read the next Browsers article: Daily API RoundUp: Cloud Foundry, LogoGrab, Modernizr, Rebilly