Published: Fri 21 August 2020
By Ashish Banerjee
In Computers .
tags: Software WWW
I read an article today about why Firefox had to get rid of XPCOM addons.
The article makes all the right technical arguments as to why Firefox had to
get rid of XPCOM extensions. And Mozilla were correct in the decision to do so
- the presence of XPCOM extensions was limiting the abilities Mozilla to
develop the core browser. Mozilla would certainly never have been able to
implement all of the performance and security features it has today if the core
developers were so hampered as they were by XPCOM. Yet nevertheless, most
people (correctly, in my opinion) feel that deprecating XPCOM was what caused
Firefox to become irrelevant.
But I disagree with most people as to why this is the case. Most people fail
to realise how important the extension community was to Firefox in its early
days. In those days, the browser was boring. Internet Explorer 6 was the
only alternative to Firefox and aside from all of its quirks, incompatibilities
and security flaws, it was also a very boring and featureless browser. Firefox,
on the other hand, had a massive extension community behind it, and this was
the real source of innovation in the web browser. Here is just a short list of
some of the ground-breaking features the extension community developed:
The first ever browser-based ad-blocker
Firebug: the original DOM debugger
The ability of users to inject their own CSS (Stylish) and Javascript
(Greasemonkey), again, came from the extension community, not the browser
developers.
Many UI enhancements came from extensions, such as Tree-Style Tabs and the
Statusbar Downloader. Tree-Style Tabs, for example, was so popular that
Mozilla eventually had to relent and enable this behaviour post-XPCOM even
though WebExtensions did not actually support it.
None of these features were developed by Mozilla. They were enabled by the
architecture that they supported, but it was the broader community that had
the ingenuity to implement them. And this was XPCOM's true power: the browser
wasn't held back by Mozilla's vision. XPCOM meant that anyone in the community
could innovate on what the browser could be. Deprecating XPCOM and leaving
extension developers with nothing be WebExtensions destroyed this source of
innovation and feature development. Or to put it another way, XPCOM meant
Firefox could be anything anyone wanted it to be; deprecating them meant that
Firefox could only be what Mozilla wanted it to be.
And this is the core problem. In a world with nothing but WebExtensions, it is
up to Mozilla to come up with all future innovation in Firefox. But it is
plainly evident that Mozilla has no idea what they think a browser ought to be
be. They copy one feature after another from Chrome and are constantly
rewriting the interface for components that are already done (the settings
dialog, DOM debugger, and so on). It was extension developers that gave
Mozilla direction and implemented most of the features that users actually
like! A few of the features extensions provided found their way into the core
browser (like re-opening recently closed tabs, which came from Tab Mix Plus,
Tree-Style Tabs, as mentioned above, and Firebug).
Now, I'm far from being in a position of telling Mozilla what to do, but I wish
they had done one of the following things:
Separate the browser and the rendering engine, so a broader community can
work toward real innovation in the browser while Mozilla retains their
expertise in developing what they are good at: a very good browser engine. My
understanding is that this is a work in progress.
Enhance WebExtensions so a broader community can continue to enhance the
browser and unlock its true potential. Easier said than done of course, but
it's probably a better spend of time than many of Mozilla's other projects.
And the phenomena which happened to Firefox are a microcosm of a more universal
truth: the greatest progress is achieved when we empower as many people as
much as possible . This is true not only in software but in all arts and
trades. And it is why open source products will always be better than their
closed counterparts.
So in summation, the only interesting features coming into Firefox were
extension developers; and Mozilla took this away when they deprecated XPCOM.
This is really what was a major loss, not just for Mozilla, but for the web as
a whole and all of its users. The browser is boring once again. The only new
developments are more harmful to users than helpful: removing the status bar,
obfuscating URLs, WebExtensions manifest v3, DRM, and the removal of many more
settings and features. Mozilla will be powerless to save the open web if it
does not embrace a larger community.