With the most recent update to Firefox 55, users are presented with a long overdue reality check: their favourite add-ons are going away. When browsing the about:addons page, the user is presented with beautiful labels next to their installed extensions:
With this indicator, Mozilla is finally trying to make it clear to the end user: we are 3 months away before older add-ons lose compatibility with Firefox.
Really, this should come as no surprise, but it’s still a painful blow to the users of this browser. Although powerful, the older standards for Firefox add-ons have many flaws, particularly when it comes to security, privacy, and performance. For quite some time now, Mozilla has been moving the browser towards better performance, what with the electrolysis (e10s) multiprocess capabilities now implemented, and the upcoming Servo backend. Since the browser has been supporting add-ons since its initial releases over a decade ago, many of the standards now being implemented didn’t even exist at the time. Naturally, the older ways of designing extensions conflict with these, and need to be replaced for the sake of progress.
To replace the old, newer WebExtensions can be used to add additional functionality to the browser. Furthermore, it is compatible (to a degree) with Chrome and Opera, allowing better support across browsers for development. A couple years ago, (perhaps longer if I find sources), Mozilla announced both upcoming support for these, and the eventual deprecation of existing standards. Equally so, it was further clarified last year when older add-ons are no longer supported. Despite all this, there are several barriers which have lead to the upcoming purge.
Nearly all existing add-ons for Firefox are maintained by community members, and not all of which have open-sourced the code to these. Not only were add-ons encouraged to have support for multi-process (e10s), only some were updated to allow this. On top of that, maintainers are now required to re-write their add-ons from scratch. This has left many developers frustrated and unmotivated. One of my favourite add-ons, Tab Groups, is an example of such a case. This one in particular was originally a feature within the browser, but separated into an extension to “make way for the future”. The maintainer, despite putting in the effort to add multiprocess compatibility, was burned out, and has stated no desire to continue to maintain the add-on, or replace it with a shiny new WebExtension version.
Because WebExtensions are designed around better security, functionality once possible with older standards are no longer possible here. Furthermore, there aren’t (to my knowledge) any tools to assist porting legacy extensions to the new standard. Therefore, generally speaking, porting over an older add-on means the need to re-write it from scratch, and at times with the loss of functionality it once had. Although Mozilla has stated interest in the community’s opinions and suggestions for features to include in WebExtensions for Firefox, there are still limitations that cannot be circumvented.
The WebExtension standard for Firefox is still quite new. So much so, that it is still in development (see the release notes for Firefox 55 as an example). Not only do community members need to re-write their beloved add-ons, and potentially lose some functionality on the way, but features they need may either not yet be present, or may have bugs. I am by no means saying that WebExtensions are not stable, as many do exist and are available on the add-ons page. The problem is that maintainers are being pushed to move to a new platform with little support or resources to do so. There is a support page as part of the WebExtension documentation to guide users with the migration, but there is not currently an SDK or much else to assist with the development required.
It is clear that developers are struggling, and/or unmotivated to move to this new platform. The data provided by Mozilla shows that, of the ~21,000 add-ons presently available (though not all are even compatible with current versions), just over 20% of them are at the very least compatible (or known to be) with the now present multiprocess features. Only 15% of all the add-ons are listed as being compatible WebExtensions. Of the 70 add-ons listed as the most popular, a mere 8 of them are listed with this compatibility. I am personally seeing a similar situation; of the ~20 add-ons I have installed, the only one compatible as a WebExtension is Test Pilot, provided by Mozilla to experiment with new features.
All-in-all, I am not very surprised of how this has unfolded. If anything, Mozilla should have been pushing for a new standard far sooner. The longer old standards are in place, the harder they are to replace (Adobe Flash being an excellent example of this). I am actually very excited with the direction Firefox is taking, and look forward to the superb performance it is expected to have. I am very sad though to see so many extensions get abandoned, but I have to look forward to the future. Mozilla will undoubtedly lose many of its users to this shift, but only time will tell if the seeds they’ve planted ultimately bear fruit.