Why do some extensions not work in Pale Moon?

Frequently Asked Questions about the Pale Moon browser and their answers.
User avatar
Pale Moon guru
Pale Moon guru
Posts: 33557
Joined: 2011-08-28, 17:27
Location: Tranås, SE

Why do some extensions not work in Pale Moon?

Unread post by Moonchild » 2015-07-05, 10:07

Why do some extensions not work in Pale Moon?

First and foremost: Pale Moon does not and never will support "WebExtensions", which is the only type of extension current Firefox versions use. Only those Firefox extensions that have been called "legacy extensions" by Mozilla (and subsequently purged from Mozilla's add-on site) can potentially work on Pale Moon.

If you are looking for extensions, you should first and foremost look for Pale Moon specific extensions on our Pale Moon add-ons site.

Although we've worked on keeping as much compatibility as possible with "legacy" Firefox extensions, Pale Moon is a different program, and we have forked off from the Mozilla code and as such cannot guarantee compatibility with extensions that were written for Firefox.

In a few situations the extensions will prove problematic, which this F.A.Q. answer explains:

Feature drift and platform compatibility

The most important issue as Pale Moon (and other UXP applications) continue to be developed is feature drift and platform compatibility.
While we have made maximum effort to retain extension compatibility with "legacy" Firefox extensions, our development of the platform cannot be held back by unmaintained extensions written for a different application and discontinued platform. As such, it is inevitable that, over time, more and more Firefox extensions will cease to work or work properly on UXP applications including Pale Moon.

There is no workaround for this - the only real solution is updating the extensions to work with our current platform and picking up abandoned yet necessary maintenance from the original authors of the extensions.

Note that some of this platform incompatibility may be caused by extensions having built-in checks for "platform version" which Mozilla has muddied by making it equal to the application version, which is something we do not do. When our application version (the Goanna version) changes, it may cause issues for extensions that explicitly tie available features to "platform version".

Add-on SDK/Jetpack Extensions

Extensions that have been created with the so-called Add-on SDK are no longer compatible with Pale Moon as of version 27. The number of compatible extensions of this type has always been rather limited, but as of v27 they are no longer usable due to the increasing divergence of our platform/front-end combination from what Mozilla uses.

There is no workaround for this - someone will have to either fork the extension (if allowed by its license) and create a Pale Moon specific extension based on XUL or bootstrapping technology, or you will have to have a look around for an alternative extension with similar functionality, or live without it if you want to continue using Pale Moon.

As of v27.1, we support the use of a large proportion of SDK functions in the PMkit modules, which will be easy for extension developers to target if they have used jpm to build their SDK extension. Please see the developer wiki for documentation.

Extensions that target the Firefox GUID

Pale Moon 25.0 changed its GUID from the Firefox one to one of its own. That means that from an extension point of view, Pale Moon is a "brand new application" that the extension was not initially written for.

Normally, when an application's GUID is different than what an add-on expects, it will simply be rejected. However, to prevent the situation where, as a result, none of the Firefox extensions would work anymore, we added a dual-GUID system in v25 and later. It can install native Pale Moon extensions (specifically targeting Pale Moon as an application with its own GUID), and it can install Firefox extensions that target the Firefox GUID. In terms of Mozilla code, this is unprecedented: historically, Mozilla applications would only allow extensions to be installed that specifically target the application.
This new system only covers the installation routine for add-on installation. So, any add-on that has no other requirements to function but to pass the install check, will be allowed to install and run. This is why all Firefox extensions that are compatible with our presented extension API version install, but some don't function (properly).

Many extensions still work out of the box in this "Firefox compatibility mode", specifically those that don't explicitly use the Firefox GUID in other parts of the extension besides the installation file.

We did not support things like targeted xul overlays (this would be the chrome.manifest thing you are seeing mentioned on the forum) as that has a lot of snags to it, and would defeat the purpose of changing the GUID anyway. Targeted overlays have to specifically indicate the GUID of the application the overlays are for. Many extensions don't use these types of overlays and use generic overlays instead (specifically, most extensions that are only written for one product use an overlay that applies to everything it is installed on). Conversely, extensions that want to target multiple applications in a single extension package generally do use targeted overlays to cater to the different user interfaces of different applications targeted. Those extensions are a problem for Pale Moon's GUID system because there won't be any that match Pale Moon. As a result, buttons, menu entries, etc are missing, although the rest of the extension can still work.

Correcting targeted overlay extensions is simple: all the extension author has to do is add Pale Moon's GUID {8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4} to the overlays in the chrome manifest to make overlays apply to Pale Moon as well.

Extensions that were never written for our browser's compatibility realm

New extensions that have been written specifically for very recent versions of Firefox and do not have version compatibility because they have no common ancestor will just never work on Pale Moon. Those extensions usually cannot be "made to run" on Pale Moon unless the extension author decides to target Pale Moon specifically in an exclusive version of the extension, or otherwise bridges the gap between the Mozilla code and the Pale Moon code. From a browser perspective it is simply not compatible. The only exception would be if by chance all of the functions used in the extension align with what we offer.

This may also include "rewrites" that extension authors have done of existing extensions to cater to the changes in Mozilla Firefox. In this case there is a common ancestor, and you should look for the "latest compatible version" of such extensions. This may mean you are using a slightly less feature rich version of the extension, and further support will also depend on if the extension author (or someone willing to further develop from the common ancestor if published under an Open Source license) taking Pale Moon into account and keeping a Pale Moon version/branch updated.
Last edited by Moonchild on 2019-12-09, 17:28, edited 1 time in total.
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb