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


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Losing essetential extensions in the process, and decrement user count by 1

    by Allan Wind,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I have relied on Vimperator for many years to get powerful keyboard driven control of the browser. It will not be rewritten for Firefox 57. Pentadactyl is the other extension with similar functionality, and I am not sure if it will ever work with fewer features on 57. Vimium on Chrome (I think) was strictly inferior when I tried it a while ago.

    This means I have no other options than to explore other browsers. Palemoon being the obvious candidate, but maybe Qutebrowser will do as well. Chrome works poorly for my use case of having 50 or 100 tabs open, and I don't trust it. Any other suggestions?

    Mozilla lost its way and it's really sad to watch as a someone that used Firefox since the very beginning. The new UI was wasting valuable screen estate so I had to install an extension to get it out of the way. The pocket integration is annoying and the setting to disable it was buried, I had to search for it (3 levels down, I think it was on Android). The tile thing that kept advertising the useless (to me) Mozilla blog had to be disabled with a obscure setting that took me a few attempts to even find. No one voluntarily use Yahoo search, afaik, so users are being bounced around like unnamed inventory. Duckduckgo is the search engine that have similar values that Mozilla claim to value (privacy) but Mozilla is back to using Google that is in the business collecting data to facilitate the sale of ads. I hate advertisement. Looking Glass is a perfect example of how Mozilla is forgetting about the user, and I thought the apology was hollow. Building an OS that went nowhere. Now a language, Rust, that will magically fix everything. Multiple programming languages cause huge long term integration overhead, and Firefox wasn't exactly known for fast development speed. Quantum branding is waste of time when you have a hugely valuable brand in Firefox.

    I hope it works out, I really do, but when Debian pushes 57 then I will likely switch to another browser.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p