Extension compatibility and Pale Moon

Add-ons for Pale Moon and other applications
General discussion, compatibility, contributed extensions, themes, plugins, and more.

Moderators: FranklinDM, Lootyhoof

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35402
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Extension compatibility and Pale Moon

Unread post by Moonchild » 2016-02-29, 09:27

Since there have been a number of questions (and complaints, and less-than-nice messages at my address) about extensions breaking in Pale Moon with updates, I'll try to explain here what the main reasons are. There are a number of different situations available.

First and foremost, people have to understand one thing above all else: Pale Moon is not Firefox!
I need to stress this because a lot of people still seem to think they are one and the same.
This is not a problem in Pale Moon. We have our own development path, and also for extension compatibility this means that things will break over time if unmaintained. Far from as radical as in Firefox, of course, but major milestone releases can and will see issues pop up that weren't present before.
We cannot hold back our core development progress for the sake of extensions, though. That would be a dead-end street.

The fact that we support Firefox extensions in our different browser is a bonus, one that we explicitly offered because of the importance of extensions for many users - even so, there is no guarantee that extensions made for a different browser work and will continue to work unaltered in Pale Moon.
Of course, we will do as much as we can to keep compatibility with Firefox extensions, but if extensions don't explicitly support us as a browser in their extension, things may simply not work 100%. To "fix" this, the extension developers need to provide explicit support for us. In many cases, this support is trivial and low-maintenance. Existing add-on developers don't have to do major re-writes, especially if they already supported Firefox in 2013.

People having problems with these add-ons have to understand that we can only do so much to be compatible with Firefox add-ons without being Firefox.

Unfortunately there's also only so much time left for Firefox add-ons before Mozilla will drop all of them from the browser in favor of WebExtensions. XUL and bootstrapped are already completely deprecated (called "legacy") by them, for starters, and may be dropped at any time. SDK add-ons are also deprecated and will also be dropped after an as of yet undetermined "transition" period.
For extension developers, this means they need to decide what they want to do; completely re-write their extension, continue to support a dead extension platform, or focus on a future where their work can thrive, by changing their product focus to us or at the least make their support explicit.

An additional issue is that extensions often check in any of many different ways what version of "Firefox" they are running on to try and be flexible for multiple versions of existing Firefox browsers. We've kept our extension API level as compatible as possible with Firefox 24, it being the closest to our fork-off point and it offering a solid base for extensions to work from. Since these extension checks are done almost always on product version, these extensions often make assumptions based on specific changes that occurred in Firefox with specific version numbers. For example, they may assume we are "Firefox 26" because Pale Moon is now at the v26 as a major version -- but we do not have a Firefox 26 API version for extensions. This breaks extensions with explicit checks in the extension and choosing a code path that relies on changed APIs in Firefox 26. Similarly, extensions that check on the arbitrary "platform version" break because they assume this is reflecting the Firefox platform version (which is equal to the product version). That's not the case any longer with Goanna, where we explicitly de-coupled platform version from product version again (Like Mozilla did previously, as well) to have it indeed be the platform (layout engine) version and not the product (browser) version.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Stilez
Apollo supporter
Apollo supporter
Posts: 39
Joined: 2016-03-06, 12:17

Re: Extension compatibility and Pale Moon

Unread post by Stilez » 2016-03-06, 16:30

Disclaimer - sorry for being a PM noob, and sorry if this is a badly worded question :roll: :wtf:

I'd really value a link to any kind of HowTo for newcomer FF-users who want to migrate favourite extensions to PM, because that's still unclear.

Using my situation as a concrete example, I've used Firefox (more precisely Waterfox) for years, since v1.5. I have my preferred extensions, and local copies of many of the .xpi's, and many old Firefox versions/installs I've backed up, going back years - a nice library of extensions quite a few of which vanished around Australis. I also have the usual AMO version "full history" to draw upon for extensions that still exist. Coming to PM, I notice that the PM-specific extensions list is sparse but the extensions I like from Firefox should in theory play nicely once migrated - mostly anyhow.

So this is the issue I have in practice:

Given some specific .xpi version of some specific extension, I understand that issues could be actual incompatibility (the specific .xpi just isn't compatible with PM 26), or "false alarms" (reported as incompatible but a simple fix to RDF versioning is all that's needed). But you can't test if the latter is the case without unpacking/editing/repacking the .xpi, unless the old compatibility pref still exists in PM (does it?).

As a migrating FF user, how does moving to PM affects my usage of the FF extensions ecosystem? What must I do differently, to identify whether some version of a given extension works on PM, which of many versions works, and whether updated versions of them will work? I can see this being immensely laborious if I have to edit, repackage, and retest every new version of every extension I use, before updating.

To take my situation as an example, my core extensions on Firefox include one of several Vertical Tabs extensions. Over time the vertical tabs extensions has worked, broken, been forked, and been fixed up as a new version - how do I determine efficiently which of the several historical and current versions would work if .rdf versioning was fixed? Do I have to modify and rezip each version of each of them until I find one that plays nicely? Or is there a better way? To what extent is it true that if it works with FF30-FF44 it'll work with PM26?

To ask the question another way, how would more experienced users who draw heavily on AMO for their extensions (or use extensions originally obtained from AMO) manage their extensions in order to not spend ages testing everything to exhaustion for compatibility, when they want to find if "some version" of a FF extension exists that works nicely on PM, or when they are interested in upgrades to extensions?

AndTheWolf
Apollo supporter
Apollo supporter
Posts: 42
Joined: 2012-05-30, 01:19
Location: USA

Re: Extension compatibility and Pale Moon

Unread post by AndTheWolf » 2016-03-06, 19:21

Disable Add-on Compatibility Checks 1.3.1-signed from AMO should let you test your old extensions without first modifying them.

Stilez
Apollo supporter
Apollo supporter
Posts: 39
Joined: 2016-03-06, 12:17

Re: Extension compatibility and Pale Moon

Unread post by Stilez » 2016-03-06, 21:44

AndTheWolf wrote:Disable Add-on Compatibility Checks 1.3.1-signed from AMO should let you test your old extensions without first modifying them.
It'll test whether the .rdf has a version that matches PM, not whether its actually compatible, I think

Even on Firefox, extensions reported as incompatible often weren't (other than .rdf versioning), so this wasn't a reliable indicator. I gather that on PM that's even more the case? Do experienced users desiring to use a FF extension just re-enable version comparison and trust it to work out which versions of a FF extension are PM26 compatible?

The problem is that an extension on AMO may have a version history like this: -
V1 compatible FF2-FF4
V2 compatible FF2-FF16
V3 compatible FF12-FF24
V4 compatible FF32-40

But the last of these could still be completely PM-compatible, and have significant bug fixes or improvements (efficiency/extension conflict etc) compared to V3. Or it might not be compatible with PM26. What I'm after is - other than testing every version of every extension, how do experienced PM users know which versions will, actually, work, regardless of the versioning reported?

AndTheWolf
Apollo supporter
Apollo supporter
Posts: 42
Joined: 2012-05-30, 01:19
Location: USA

Re: Extension compatibility and Pale Moon

Unread post by AndTheWolf » 2016-03-07, 00:41

I was answering your question whether you had to " have to modify and rezip each version of each of them until I find one that plays nicely?". Disable Add-on Compatibility Checks reinstates the extensions.checkCompatibility preference, so you don't have to modify and rezip before you test. But you probably still have to test.

I don't consider myself to be an expert, and I have not read every post in this forum, but my impression from what I have read is that everyone uses trial and error to discover whether older FF extensions are, or can be made, PM compatible, and that no one has a magic bullet.

Hopefully someone else can give you a more encouraging answer.

Degaul

Re: Extension compatibility and Pale Moon

Unread post by Degaul » 2016-04-24, 21:26

I'm just a user, but for me this browser is the best one to come along since...Firefox of the early days before they became interested in other things like being a distributor of personal data for hire. (just my opinion.)

I think it will be a race really, where as Pale Moon picks up more and more happy users who need/want or must have their extensions encourage coders to make them available to use on Pale Moon. Someone will fill that void I'm sure of. The trick is if Pale Moon can survive that interregnum of many popular addon's not being available during the foreseeable future, thus choking off growth for Pale Moon. Anything is possible as they say and I think as long as compatible extension keep becoming available in a timely manner it may not be a problem at all. It does however have the potential to be a big problem if the browser gets a reputation that is like this "yes, it's a great browser, but my favorite stuff doesn't work so I don't use it." The math is easy to do, and could result in Pale Moon remains/become a niche browser instead of being what it really is shaping up to be; the best damn browser out there.

The good news is I don't expect we will see any heavy handed...Apple like tactics like "you either write for us, or you write for them." I can't see Mozilla becoming the Attila just because they have some real competition. And whether Mozilla recognizes it or not, Pale Moon IS real competition. I have been an avid user of Firefox for as log as they have been around. Now, the current version of Firefox just sits on my computer doing nothing like the big, bloated, fat and happy thing it has become. No. I do not as of yet miss it. However, I depend on many extensions because of some health issues where I do need the help they give me and the peace of mind still others give me in the form of privacy and security. This last update of Pale Moon I saw about fourteen of them say "see ya!', and others before that.

So, like I said; I'm just a user, but I think that the extension issue is not a trivial one at all ; not that anyone here has ever said as much. You can only do what you can of course, that I understand. I love this browser and I really want to keep it so I thought a perspective from a guy that knows nothing about the business of browsers, but does know a good one from a bad one thinks.

Just my two cents, and thanks for reading.

Locked