Thoughts On Mozilla's Add-on Overhaul


Recommended Posts

A couple of days ago, Mozilla announced they are implementing Chrome's extension API (WebExtensions API) and are expanding it to accommodate some popular extensions (ex. NoScripts, TabMixPlus).  Neowin reported on this.  It sounds like great news, right?  Developers will write one extension instead of re-writing it multiple times.  You can run Chrome or Edge extensions in Firefox.  However, there is something that Neowin left out.  I found this out after some digging.  MOZILLA PLANS TO DEPRECATE XUL/XPCOM IN THE NEXT 12-19 MONTHS!  This is their tradition model, btw.

Keep in mind there are two ways of making extensions, now--XUL Overlays and the SDK.  The overlay is the traditional way and while this is harder to write for, less stable and forward compatible and requires a restart, it is the most powerful.  Compared to the SDK which is closer to Chrome's API.

When people say Mozilla is highly extensible it is because of XUL and XPCOM (there are alternatives to this, btw).  XUL is the mark up language that creates Firefox's UI.  By not using a native layout this allows Add-ons to change the UI and add new UI features on the fly.  This also make makes the browser portable.  The source code doesn't need to be rewritten for each Desktop environment.  XPCOM allows lower level access into Firefox, this can be extended too.  There are alternatives to XPCOM--js-ctype and JSM's.

Removing these could gimp Firefox and stop innovative new extensions from coming in.  Such as the next NoScripts, DownThemAll, or Phenadactyl.  Some people see this as Firefox becoming another Chrome clone, like the author of DownTheMall (http://www.downthemall.net/the-likely-end-of-downthemall/).  However, the author of NoScripts is pretty confident Mozilla can make the WebExtensions API work.  Removing a lot of headaches Firefox Add-on users and developer AND NOT destroy the permissive ecosystem or stifle innovation.  (https://hackademix.net/2015/08/22/webextensions-api-noscript/)  He also has a proposed solution (https://discourse.mozilla-community.org/t/proposal-native-js-to-embrace-extend-the-webextensions-api/3457).  He is a VIP in the Add-on community and Mozilla is working with him on the new API.

Eventually, Firefox is moving to a new rendering engine (Servo) and a dynamic HTML5 UI (browser.html) to replace their XUL layout. (Btw, Vivaldi already has a HTML5 UI as a good example)

Personally, I am not sure what to think.  I think it could improve the extension ecosystem and Firefox in general--if done right.  However, if done wrong, then extensions are no longer an advantage Mozilla has over other browsers.

What do you think about Mozilla changing their Add-on API?

  • Like 1
Link to comment
Share on other sites

Awesome!  We all get to have our cake and eat it too.  Firefox users get all of Chrome's goodies and Add-ons like DownTheMall and Greasemonkey.  If I am hearing your right.  I think that not having some type of solution for permissive Plugins would ###### off a lot of people and devs when they wake up one morning to find a lot of their favorite Add-ons not working.

Link to comment
Share on other sites

I really don't think this means the death of firefox or anything like that.

The issue is that people who don't want to see Firefox turn into Chrome are so worried about it happening that they see it happening everywhere, whether it's true or not, and whether it's a good thing or not in many cases. In this case Mozilla has made it clear that compatibility with chrome addons is not even their only goal; they have a whole host of desires and goals with this effort, and one of them happens to be making it easier to for Chrome addons to also work in Firefox. But some people don't seem to have noticed the rest of them.

We're caught in a transition period where Mozilla has been making necessary major changes to Firefox, and each time they do so they find that they can't keep things working as they always have. And so rather than spinning their wheels endlessly, they want to try to improve things so they do better next time. They obviously don't have the resources to make these transitions painless for everyone. That's unfair, but that's life. Mozilla has to deal with it, and so do users of its products. Opera gave up and based their new browser on Chromium. Mozilla is clearly doing what they can to avoid that fate, not embrace it.

 

 

Link to comment
Share on other sites

they did that for security reasons am i right? 

Link to comment
Share on other sites

I posted this article yesterday regarding this. What he says, makes sense (too me at least).

http://www.dedoimedo.com/computers/firefox-addons-future.html

In all honesty, if they're going to do this, why not just fork Chrome and customize it to their philosophy? They'd save themselves a ton of maintenance work and average joe isn't going to know/care that its just another version of Chrome running under the hood.

If they can implement Chrome's extension support and expand upon it so NoScript/Adblock/ Plus can function as they do now in FF, then I'm ok with the change. If they can't, then why should I continue to use FF? I might as well just install AdGuard and move to Edge. At least then my Favorites will seamlessly move between my PCs

Edited by AR556
Link to comment
Share on other sites

they did that for security reasons am i right? 

Security is definitely one of the reasons for the deprecation of XUL. Performance is another.

A more stable API for addons is another. A clean API design would actually allow unmaintained extensions to keep working for example. Currently every Firefox release risks breaking them (and sometimes does).

XUL is an archaic, Mozilla-specific UI technology that literally predates Windows XP. It's a relic of the failed "XML All The Things" era of software development that dominated the early 2000's. XUL and xpcom are not widely used outside of mozilla, not a lot of people have experience with it so it doesn't get the attention that other parts of firefox get.

Maintaining all this backwards compatibility is the primary reason that Mozilla hasn't been able to iterate and improve the performance of the front end UI for many years. The frameworks mentioned were designed decades ago, and aren't easy to optimize for - a lot of iterations on those frameworks (XBL2, XUL2) simply never happened and were made redundant by rapid progress in Web standards and popular web application frameworks.

The deprecation of XUL is a very necessary thing. It won't be a painless transition, but its needed.

Edited by ViperAFK
Link to comment
Share on other sites

 

If they can implement Chrome's extension support and expand upon it so NoScript/Adblock/ Plus can function as they do now in FF, then I'm ok with the change.

This is literally exactly what they plan to do... They've mentioned several times that they plan to work with addon authors to extend the API so it can suit their needs.

The new API won't be as powerful as XUL (since XUL can touch just about every single part of the browser), but they definitely plan to expand it beyond the capabilities that are possible in chrome.

Link to comment
Share on other sites

This is literally exactly what they plan to do... They've mentioned several times that they plan to work with addon authors to extend the API so it can suit their needs.

The new API won't be as powerful as XUL (since XUL can touch just about every single part of the browser), but they definitely plan to expand it beyond the capabilities that are possible in chrome.

Hopefully, they'll work with addon authors to get at least some of these expansions implemented before releasing into the wild. Releasing a gimped product will hurt them.

Link to comment
Share on other sites

Security is definitely one of the reasons for the deprecation of XUL. Performance is another.

A more stable API for addons is another. A clean API design would actually allow unmaintained extensions to keep working for example. Currently every Firefox release risks breaking them (and sometimes does).

XUL is an archaic, Mozilla-specific UI technology that literally predates Windows XP. It's a relic of the failed "XML All The Things" era of software development that dominated the early 2000's. XUL and xpcom are not widely used outside of mozilla, not a lot of people have experience with it so it doesn't get the attention that other parts of firefox get.

Maintaining all this backwards compatibility is the primary reason that Mozilla hasn't been able to iterate and improve the performance of the front end UI for many years. The frameworks mentioned were designed decades ago, and aren't easy to optimize for - a lot of iterations on those frameworks (XBL2, XUL2) simply never happened and were made redundant by rapid progress in Web standards and popular web application frameworks.

The deprecation of XUL is a very necessary thing. It won't be a painless transition, but its needed.

Ehh, primary issue with XUL is really just the age, it's from a time where HTML/CSS couldn't be used to build useful UIs, but since then Mozilla lifted out the XUL layout model and has moved it into plain CSS (It's called Flexbox now), and we're at a point where it can be replaced with plain HTML and CSS. And you've also got things like Web Components and the Shadow DOM that have their roots in XUL/Gecko.

And if you're completely scrapping the existing UI architecture, you're going to break all existing XUL based addons anyway, so why not fix other issues while you're there (Like letting addons poke around the internals with complete freedom and replace internal components).

Really the only problem with using XML as a UI layout language is what happens when you encounter invalid XML, a framework like WPF handles that by compiling the XML to binary code, but in Firefox a bad addon could break the entire UI and turn it into a blank yellow window. That's jut not going to happen with the new system they're planning on, and by using the normal HTML/CSS they use for web content it'll speed up the UI too (Performance work goes into HTML, not XUL, it's much faster)

Link to comment
Share on other sites

There are many firefox users that use firefox because of the extensions available, and some of those extensions are not being developed anymore. That means they now have to go through the trouble of signing those extensions by themselves and "soon" (well, we all know that mozilla always meets the deadlines lol)  there won't be a way to make those extesions work, so many users will have a browser that looks like chrome, that runs the same extensions, but is far for being as technically improved as chrome is (64bit browser, html5 support, speed, etc.) so what's the point of using firefox anymore? That's the problem mozilla faces. And when you have such a low % of users, any mistake means you are death (opera)

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.