During the past few days, I’ve been chatting with Firefox users, trying to separate fact from rumor regarding the consequences of the August 2020 Mozilla layoffs. One of the topics that came back a few times was the removal of XUL-based add-ons during the move to Firefox Quantum. I was very surprised to see that, years after it happened, some community members still felt hurt by this choice.
And then, as someone pointed out on reddit, I realized that we still haven’t taken the time to explain in-depth why we had no choice but to remove XUL-based add-ons.
So, if you’re ready for a dive into some of the internals of add-ons and Gecko, I’d like to take this opportunity to try and give you a bit more detail.
David Teller’s been at Mozilla for nearly 10 years, so he knows what he’s talking about. A good and detailed explanation of why Mozilla pretty much had no choice.
It’s sad to me how people complain about broken add-ons in Firefox, etc.
This blog post has been available in separate parts over the years before. But it’s not a bad write up.
You have to remember: add-ons design in Firefox meant slowed down development of Firefox and probably Chrome wouldn’t have existed if Firefox development wasn’t slow. Google has always helped Mozilla with funding and even developer time (their is still direct discussion between Firefox developers and Google developers about code that ends up in Firefox I’m not mistaken).
Firefox was bleeding users because of both issues: less addons (a much smaller group) and less fast/secure/response than Chrome (a much larger group).
But what were they supposed to choose ? I’m amazed Firefox was able to get this far as they have. Building and maintaining a competitive browser is a lot of work (being part of the standards process, designing ideas and implementing ideas and improving security and performance). Companies large and small gave up doing so: Apple (they created the fork of khtml: Webkit), Opera (went to Blink) and even Microsoft (also went with Blink)
Lennie,
There is some google code in firefox, but I don’t really care about that, when it comes to open source that’s allowed and encouraged.
Yeah, there are a lot of projects with talented people working on them, but all too often more and more profits just go to the companies who control the industry at the very top. I really think we’re going into a repeat of the robber baron years where huge corporations control everything and the little guys don’t have a fighting chance.
I appreciate this dive into Firefox development. I too was bitten by broken extensions when WebExtensions went live – The developer of the Panorama plugin (once it had been moved into a separate extension and no-longer part of the browser) had ceased development of the extension, because the capabilities to do what it did simply wasn’t available in WebExtensions. Eventually, though the needed capability was added in, and there are now a few Panorama spin-offs. and they’re all good.
And, Panorama is my absolute favorite way to handle large numbers of tabs.
There’s a lot of detail in the article, but the effort was worth it: it’s a very interesting read.
It makes a convincing case that the shift to WebExtensions was inevitable, but If I were an add-on developer (which I’m not) I’m not sure I’d be convinced that it was all necessary.
Nevertheless it’s always enlightening to see technical decisions given context by their history. The future of Firefox, both technically and otherwise, will surely be interesting too.
Sorry. Still not convinced.
I could not care in the slightest that people intall shit they should not. I want what I want to do. Current add-ons are shit and restricted compared to their old versions. I migrated to multiple browsers to avoid this. Yes I admit most of the time I do not need it. But to disalow it is ridiculous.
Don’t enable it by defualt. Yes change it if the interface was a problem but do not restrict it in any way. I am sick of companies making things dummer becuase people are dumb. This is a big problem in modern computing. This is why I have never gone near ios (that and the 2g first phone, I mean 2g at that point? only made sense for the us (another reason they suck)). Yes I put up with android. I stil think WM 5-6.5 was the best mobile os ever. As it let you do what the fuck you want with no restrictive bollocks. Yes it had issues, the cure was worse.
I also put up with windows, because gaming. However all my important files are on my linux box (unless I have not moved them there yet, but thats just downloads i could get again). I trust it more. Yes I updated my windows box to 20h2, was getting dx fails. Did the trick but I guess it means driver updates for gfx are now manual again as with the last one before release. (and to be fair I would be more bsd than linux, because free is free right (you can argue all day, linux is not free, bsd is, they need a new word to encompaass the restrictions better (forced compliance?)), but I aint used it in years! (I do like linuc a lot, but free is the wrong word)).
Carrot007,
Yeah, that’s how I feel too.
I understand that maintaining the old APIs indefinitely may not have been practical, however some of the changes were actually worse and were only done to give mozilla more control. They blocked sideloading for the main version. The article just ignored that even though it was probably the basis for a lot of the criticism. I’ve been protesting the centralization of power & control for a long time, companies (including mozilla unfortunately) are really piling it on thick that they need to control users. And in the face of mozilla’s certificate foobar, it highlighted the risk of keeping authority so centralized and not giving owners an override capability.
And it’s getting worse, not better and many people don’t question it. We put faith in tech companies to act in our interests, we’ve really become their sheep.
Firefox XUL did not stop existing. You can still use it today. If you think that is unsafe you can pay developers to patch it. It is completely opensource. Only Firefox is trademarked so you have to change the name.
Mozilla has chosen to support a different technology which they think is better. I would agree because previous extensions would go directly in the browser which meant Mozilla would have to support each extension. Madness.
The new extension model makes it possible to rapidly develop the browser and each extension just keeps on working.
Vivaldi has a different model where they integrate a lot of functionality in to the browser. That seems to be a better model because you support your own code and not every extension developer.
Did you develop Firefox extensions? I did. The changes were 100% necessary.
You said “change it if the interface was a problem but do not restrict it in any way.”
The lack of restrictions was the biggest problem. You can’t make the whole web less secure for a tiny number of power users.
Security aside, old API was based on dead end 90s technology, it had to go.
(Disclaimer, I work for Mozilla)
The issue is that with the interfaces “do not restrict it in any way” means making private interfaces public and then having extension authors deal with every single internal change made to the browser, or it means investing a tremendous amount in a longterm-stable API which may increasingly require extra machinery on top of how the browser actually works.
And that’s also generally what could happen in the past, too. I wrote several addons before I joined Mozilla, and in the XUL days you had to make pretty significant changes every once in a while to keep up with how the browser was changing internally. You might as well just distribute a patched browser at that point, since you need to increasingly know the deep internals and mess with interfaces which are increasingly in flux or just not meant for general purpose use at that point.
XUL as a technology is just pretty irrelevant for the last 5-ish years anyway, as HTML5 in general and grid layout and flexbox have made XUL as a layout technology redundant.
It’s not only extensions, XUL/XPCOM is also a cross-platform sdk that allowed applications like the Komodo IDE Bluegriffon (the best open source html editor whose future worries me).