Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Firefox Quantum Commits to Cross-Browser Extension Architecture

Firefox Quantum Commits to Cross-Browser Extension Architecture

With the Firefox 57 “Quantum” release, Firefox now only supports extensions based on the WebExtensions API, joining Chrome and Edge in supporting extension development with pure HTML, CSS, and JavaScript based on a cross-browser shared extension architecture. Older Firefox plugins built with prior architectures no longer function.

The WebExtensions API is the Mozilla implementation of the W3C’s Browser Extension Community Group recommendations.With Chrome, Firefox and Edge now all on the same architecture, web developers can develop extensions and expect them to work with minimal custom code across each of these browsers. Developers looking to get started can find extensive documentation on MDM.

Firefox has supported extensions since before its 1.0 release, but historically these extensions were built using Mozilla’s XML User Interface Language (XUL) and had full access to Firefox internals. Explaining the pros and cons of this approach, Justin Pot of How-to Geek said:

Firefox extensions had a more-or-less total ability to change your browser, and they made those changes directly. This is why those extensions were so powerful: there wasn’t a prescribed set of things they could and couldn’t change. It’s also why these extensions tended to break with new Firefox releases.

When Google Chrome first released extension functionality in late 2009, they introduced a new model for extension development, allowing all development to be done with pure HTML, CSS, and JavaScript and providing well-defined JavaScript APIs for extensions to interact with the browser and access browser functionality.

Shortly thereafter, in July 2011 Mozilla released version 1.0 of their new Add-on SDK, stating that it “makes it easy to develop Firefox add-ons using JavaScript, HTML, and CSS.” The SDK took steps in this direction, but still allowed access to the low-level underlying Firefox internals.

For many years this was the status quo, with each browser having its own architecture and approach to extensions. Then in May 2015, the W3C launched the Browser Extension Community Group, with the mission: “The Browser Extension group will attempt to standardize extension package structure, API, portability etc., across browsers.”

The recommendations of the working group quickly became the basis of the new Firefox WebExtensions API, with an announcement in August 2015 and initial release in Firefox Version 42 on November 3, 2015. Microsoft Edge released an extension API based on the same architecture in the Windows 10 Anniversary Update on August 2, 2016. Now with the Firefox Quantum release, the older Firefox add-on APIs have been disabled, leaving WebExtensions as the only remaining option.

Rate this Article