For Firefox, Out With The Old Add-On System And In With The New 'WebExtensions'

Mozilla announced that the latest version of Firefox now has support for WebExtensions, a new set of APIs that allow developers to easily deploy their extensions to Firefox, Chrome, Opera, and Edge. The adoption of WebExtensions is necessary to advance the Electrolysis multiprocess and sandboxing architecture.

Deprecating The Old Add-On Model

Two years ago, Mozilla announced that it would begin to deprecate its old “add-on” model for advanced Firefox extensions. The decision wasn’t easy, because the add-on model is what made Firefox popular and helped it capture significant market share from Internet Explorer. It also made the browser more useful to users because they could add non-trivial functionality that Mozilla itself couldn’t, whether due to a lack of resources or simply because it couldn’t think of everything users would want.

However, this add-on model also had a few downsides, and these became more obvious as Chrome’s simpler extension model increased in popularity.

The Firefox add-ons were not easy to develop, as they had to be designed with Mozilla’s “XML User Interface Language,” compared to Chrome’s extensions that needed only HTML and CSS to build the user interfaces. Both required JavaScript for the programming.

Another issue with the old add-ons was that some of them were too advanced and changed the functionality of the Firefox browser too much, to the point where it became difficult to upgrade core Firefox code without breaking many of the add-ons. That means that the add-ons were also responsible for Firefox’s slow pace of development for the last few years. As the developers’ focus has switched to building more Chrome-like extensions for Firefox, Firefox’s pace of development has also increased.

One other major inconvenience of the old add-on model is that Mozilla couldn’t easily change the security architecture of Firefox. It’s also likely one of the main reasons why Firefox hasn’t switched to an architecture with stronger sandboxing until more recently. Even now, the sandboxing is partial, and only two separate processes are supported (for UI and content), as opposed to having a process and sandbox for each page and extension, as Chrome does.

WebExtensions

WebExtensions is a new cross-browser extension system written by Mozilla that allows the porting of Chrome and Opera (Chromium-based) extensions to Firefox with few changes. The WebExtensions will also be compatible with Microsoft’s Edge browser.

The new system is fully compatible with Mozilla’s Electrolysis multiprocess and sandboxing architecture. It’s also separate from the browser itself, which means the extensions will no longer hold the Firefox browser back from rapid advances, such as, for instance, the implementation of Project Quantum.

Project Quantum aims to progressively replace older Firefox code written in C++ with faster and more secure code written in Rust, an open source memory-safe language, whose development is sponsored by Mozilla.

Mozilla also said last year that it would stop accepting extensions using the old add-on model in the Firefox add-on store by the end of 2017, starting with Firefox 57.

Path To Standardization?

Even though Mozilla seems to have given WebExtensions a standardized-looking name, the system is not yet a standard that other browser makers are in the process of adopting. However, Mozilla has begun the process of standardizing it as the “Browser Extension” specification.

It’s not yet clear whether other browser vendors are on board with this, but other than wanting to keep the extensions as proprietary as possible, there doesn’t seem to be a good reason for vendors not to support this standard. Plus, if they wanted to build proprietary extension systems, they could’ve chosen something other than HTML, CSS, and JavaScript, which are the languages of the web.

Of course, the ones to benefit most from a Browser Extension standard are likely to be the browsers with less market share, such as Edge, Opera, and Safari, as well as much newer browsers like Brave, Vivaldi, and others. Extensions are often what keep users loyal to a browser, so a Browser Extension standard could actually make the browser market even more competitive in the coming years.

Lucian Armasu
Lucian Armasu is a Contributing Writer for Tom's Hardware US. He covers software news and the issues surrounding privacy and security.
  • dstarr3
    Hey, so long as I can still put uBlock on the mobile Firefox app, do what you want.
    Reply
  • Morbus
    Firefox has been killing itself slowly over the years. And now is the point of no return.
    Some day the web will become stagnate again, and we'll have a new Firefox with full extensibility. Until then, we'll go back to 1999.
    Reply
  • kep55
    So how long before Firefox will operate Adobe Acrobat documents correctly? Right now, the proprietary Java Script code will not properly display Acrobat docs that have any non-text feature, such as forms, buttons, lnks, etc.
    Reply
  • Bing was their 'straw' that broke me. I was a loyal user >10 yrs.
    Reply
  • merikafyeah
    Addons being "too advanced" is a selling point, not something to be scorned. WebExtensions can never do as much as XUL/XPCOM addons. At least there will always be Pale Moon looking out for users' choice. It's basically the only browser left for power-users.
    Reply
  • ODuron
    On Firefox 54.0 now. I've seen a lot of crashes, freezes and no responses. Seems to run faster, still doesn't run right on some web pages.
    Reply
  • kep55
    Another example of coders wanting to show off rather than bother with clean, functional code? Must be grads of the Microsoft School of Coding.
    Reply