diff options
author | Moonchild <moonchild@palemoon.org> | 2022-04-14 15:35:33 +0200 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2022-04-14 20:02:49 +0200 |
commit | 7b706516bcea11d041c8d17b5deb1222950036f0 (patch) | |
tree | 16b5312f040b0ac5571b05e706fe961d2fe55530 /toolkit/mozapps/extensions/internal/XPIProvider.jsm | |
parent | 144b3844da01c1c618d595ca551005708587610b (diff) | |
download | uxp-7b706516bcea11d041c8d17b5deb1222950036f0.tar.gz |
Issue #1821 - Revert "Issue #1744 - Remove the ability to accept Firefox
GUIDS (remove the dual system)"
This reverts commit 3aa334d0b7de2a554c2234bfbb7a9f4e29dea451.
Diffstat (limited to 'toolkit/mozapps/extensions/internal/XPIProvider.jsm')
-rw-r--r-- | toolkit/mozapps/extensions/internal/XPIProvider.jsm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm index eb4e54720a..3bcb4275eb 100644 --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm @@ -134,6 +134,10 @@ const RDFURI_INSTALL_MANIFEST_ROOT = "urn:mozilla:install-manifest"; const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#"; const TOOLKIT_ID = "toolkit@mozilla.org"; +#ifdef MOZ_PHOENIX_EXTENSIONS +const FIREFOX_ID = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +const FIREFOX_APPCOMPATVERSION = "56.9" +#endif // The value for this is in Makefile.in #expand const DB_SCHEMA = __MOZ_EXTENSIONS_DB_SCHEMA__; @@ -6402,11 +6406,27 @@ AddonInternal.prototype = { if (!aPlatformVersion) aPlatformVersion = Services.appinfo.platformVersion; +#ifdef MOZ_PHOENIX_EXTENSIONS + this.native = false; +#endif + let version; if (app.id == Services.appinfo.ID) { version = aAppVersion; +#ifdef MOZ_PHOENIX_EXTENSIONS + this.native = true; + } + else if (app.id == FIREFOX_ID) { + version = FIREFOX_APPCOMPATVERSION; + if (this.type != "extension") + //Only allow extensions in Firefox compatibility mode + return false; +#endif } else if (app.id == TOOLKIT_ID) { +#ifdef MOZ_PHOENIX_EXTENSIONS + this.native = true; +#endif version = aPlatformVersion; } @@ -6429,7 +6449,11 @@ AddonInternal.prototype = { // Extremely old extensions should not be compatible by default. let minCompatVersion; +#ifdef MOZ_PHOENIX_EXTENSIONS + if (app.id == Services.appinfo.ID || app.id == FIREFOX_ID) +#else if (app.id == Services.appinfo.ID) +#endif minCompatVersion = XPIProvider.minCompatibleAppVersion; else if (app.id == TOOLKIT_ID) minCompatVersion = XPIProvider.minCompatiblePlatformVersion; @@ -6453,6 +6477,18 @@ AddonInternal.prototype = { if (targetApp.id == TOOLKIT_ID) app = targetApp; } +#ifdef MOZ_PHOENIX_EXTENSIONS + // Special case: check for Firefox TargetApps. this has to be done AFTER + // the initial check to make sure appinfo.ID is preferred, even if + // Firefox is listed before it in the install manifest. + // Only do this for extensions. Other types should not be allowed. + if (this.type == "extension") { + for (let targetApp of this.targetApplications) { + if (targetApp.id == FIREFOX_ID) //Firefox GUID + return targetApp; + } + } +#endif // Return toolkit ID if toolkit. return app; }, |