Thursday, August 27, 2020 [Tweets] [Favorites]

Why Did Mozilla Remove XUL Add-ons?

David Teller:

Firefox used to have a great extension mechanism based on the XUL and XPCOM. This mechanism served us well for a long time. However, it came at an ever-growing cost in terms of maintenance for both Firefox developers and add-on developers. On one side, this growing cost progressively killed any effort to make Firefox secure, fast or to try new things. On the other side, this growing cost progressively killed the community of add-on developers. Eventually, after spending years trying to protect this old add-on mechanism, Mozilla made the hard choice of removing this extension mechanism and replacing this with the less powerful but much more maintainable WebExtensions API.

[…]

XUL was developed at the time of HTML4, when web specifications were stuck in limbo, and was designed largely as a successor of HTML dedicated to applications instead of documents. Almost twenty years ago, Mozilla released a first version of XULRunner, which was basically an earlier version of Electron using XUL instead of HTML (HTML could also be inserted within XUL).

[…]

There was a catch, of course: the Servo team didn’t have the resources to also reimplement XUL, especially since Mozilla had decided long ago to stop working on this technology. In order to be able to eventually replace Gecko (or parts thereof) with Servo, Mozilla first needed to migrate the user interface of Firefox to HTML5.

Of course, not all extensions can be written with the newer system.

3 Comments

I understand they had their reasons but for me as a user, this sucked. There is a feature request asking for user configurable keyboard shortcuts. Unfortunately it is 20 years old (!) and still not fixed. I wanted to change the keyboard shortcut for "next tab".

In Safari and Chrome this is easy to do since this command is in a menu and anything in a menu can have their keyboard shortcut set in System Preferences in macOS. But in Firefox it's not in a menu and the keyboard shortcut is fixed, with no way to change it.

Extentions (addons) to the rescue! For many years there where addons that fixed this. The first I used was Keyconfig and later when addons where required to be signed another one called dorando-keyconfig worked instead. But then they pulled the rug for these XUL addons in Firefox 57 and there were no way to achieve this through the newer system. So I could no longer change the keyboard shortcut.

There are some workarounds like binary hacking Firefox, but I haven't gone that far. Still hoping for that 20 years old bug to be fixed…

It definitely sucked for users and all explanations were not enough to justify it.
After all many extensions just disappeared with their functionality.
It is somewhat hopeless to expect at least some of the functions to be included into a browser itself. There are so many long standing open bugs that are totally ignored.

XUL was developed at the time of HTML4, when web specifications were stuck in limbo, and was designed largely as a successor of HTML dedicated to applications instead of documents. Almost twenty years ago, Mozilla released a first version of XULRunner, which was basically an earlier version of Electron using XUL instead of HTML (HTML could also be inserted within XUL).

[…]

There was a catch, of course: the Servo team didn’t have the resources to also reimplement XUL, especially since Mozilla had decided long ago to stop working on this technology.

I think Mozilla with XUL and Microsoft with XAML (Apple also briefly had a similar XML-based UI language in early incarnations of the iTunes Music Store) had the right idea:

XML’s tree of elements is a good way to represent a bunch of controls
HTML isn’t quite the appropriate language

Over time, we evolved HTML, but also kind of forgot that it wasn’t really for UIs.

Stay up-to-date by subscribing to the Comments RSS Feed for this post.

Leave a Comment