Home & Office

​Mozilla drops XUL, changes Firefox APIs; developers unhappy

Mozilla wants to modernize Firefox's extension and add-on systems, but those are the last things many programmers want.
Written by Steven Vaughan-Nichols, Senior Contributing Editor

Mozilla, Firefox's parent organization, is changing how programmers can add extensions to the browser. Simultaneously, Mozilla will be deprecating XPCOM and XUL, the foundations of its extension system, and many Firefox developers are ticked off at these moves.

Mozilla will be dropping XUL, its fundamental extensions language.
Kev Needham, Mozilla's Firefox desktop manager, explained that Mozilla was changing Firefox so it could support new technologies such as Electrolysis and Servo, protect users from spyware and adware, and shorten the time needed to review add-ons.

Mozilla will do this in four ways:

  • Implementing a new extension application programming interface (API), called WebExtensions -- largely compatible with the model used by Chrome and Opera -- to make it easier to develop extensions across multiple browsers. This is a Blink-compatible API. Blink is Google's WebKit fork. With it, extensions written for Chrome, Opera, or, possibly in the future, Microsoft Edge, will run in Firefox with few changes. This modern and JavaScript-centric API has a number of advantages, including supporting multi-process browsers by default and mitigating the risk of misbehaving add-ons and malware.
  • Introduce a safer, faster, multi-process version of Firefox with Electrolysis. Developers must use it with Firefox add-ons.
  • To ensure third-party extensions provide customization without sacrificing security, performance or exposing users to malware, Mozilla will require all extensions to be validated and signed by Mozilla starting in Firefox 41, which will be released on September 22nd 2015.
  • Deprecate of XPCOM and XUL-based add-ons.

Needham claims that:

For our add-on development community, these changes will bring benefits, like greater cross-browser add-on compatibility, but will also require redevelopment of a number of existing add-ons. We're making a big investment by expanding the team of engineers, add-on reviewers, and evangelists who work on add-ons and support the community that develops them. They will work with the community to improve and finalize the WebExtensions application programming interface (API), and will help developers of unsupported add-ons make the transition to newer APIs and multi-process support.

As for why Firefox is abandoning XUL, XPCOM and the permissive add-on framework that came with it, Needham wrote that although "XPCOM and XUL are two of the most fundamental technologies to Firefox ... the ability to write much of the browser in JavaScript has been a huge advantage for Mozilla. It also makes Firefox far more customizable than other browsers. However, the add-on model that arose naturally from these technologies is extremely permissive. Add-ons have complete access to Firefox's internal implementation. This lack of modularity leads to many problems."

Such problems with the "tight coupling between the browser and its add-ons" created Firefox failures. For example, "It's not uncommon for Firefox development to be delayed because of broken add-ons. In the most extreme cases, changes to the formatting of a method in Firefox can trigger problems caused by add-ons that modify our code via regular expressions. Add-ons can also cause Firefox to crash when they use APIs in unexpected ways."

So, within the next 12 to 18 months Firefox will no longer support XUL, XPCOM, and related programs. Needham explained, "A major challenge we face is that many Firefox add-ons cannot possibly be built using either WebExtensions or the SDK as they currently exist. Over the coming year, we will seek feedback from the development community, and will continue to develop and extend the WebExtension API to support as much of the functionality needed by the most popular Firefox extensions as possible."

Some Firefox developers are not happy with these changes. Nils Maier, author of the popular Firefox extension, DownThemAll, wrote "'deprecating' XUL-based add-ons with XPCOM access takes the cake. Once that happens, I will abandon ship for sure. Simply because I cannot continue developing most add-ons at all as they will not and cannot fit into any "WebExtensions" API. The flexibility of what XUL-based add-ons can do IS the major selling point of the Firefox add-ons ecosystem and therefore IS one of the last remaining selling points of Firefox."

Others object strenuously not only to Firefox abandoning its old programming models but the fact that it is embracing what they see as Google's extension system. As one poster wrote, "Migrating away from Firefox will be as painless as possible. I hope Google sends them a cake once they're below 5 percent."

On Reddit, one commenter stated, "That plugin dev community is about the only thing still keeping Firefox standing. How many do you think are still going to hang on after you deprecate the whole API and restrict access to the features of the browser?"

At the same time, on Y combinator, another person opined that this move will mean that Mozilla will be "getting rid of [its community of] people who are willing to dive deep into the internals to develop something that nobody thought of before."

We already know that Firefox's market share has been dropping since July 2012. According to the most accurate web browser data available, from federal government's Digital Analytics Program (DAP), only 11 percent of U.S. users reply on Firefox. Mozilla had to do something to make Firefox more popular so this move to change its fundamental programming interfaces can come as no surprise.

So will Firefox lose its mojo? Will Firefox developers abandon it? Will users continue to leave Firefox for Chrome? Only time will tell.

Related Stories:

Editorial standards