Spoof to Firefox 128 for WebExtensions

This commit is contained in:
ownedbywuigi 2026-03-31 20:30:49 +01:00
commit 223d5d6a25
3 changed files with 25 additions and 6 deletions

View file

@ -94,7 +94,9 @@ extensions.registerSchemaAPI("runtime", "addon_parent", context => {
getBrowserInfo: function() {
const {name, vendor, version, appBuildID} = Services.appinfo;
const info = {name, vendor, version, buildID: appBuildID};
// Override version for WebExtensions compatibility with modern extensions
// Report as Firefox 128.0 to extensions while maintaining actual UXP identity
const info = {name: "Firefox", vendor, version: "128.0", buildID: appBuildID};
return Promise.resolve(info);
},

View file

@ -6380,6 +6380,10 @@ AddonInternal.prototype = {
let version;
if (app.id == Services.appinfo.ID) {
version = aAppVersion;
// For WebExtensions, report as Firefox 128.0 for compatibility
if (this.type == "extension") {
version = "128.0";
}
#ifdef MOZ_PHOENIX_EXTENSIONS
this.native = true;
}
@ -6391,10 +6395,15 @@ AddonInternal.prototype = {
#endif
}
else if (app.id == TOOLKIT_ID) {
// For WebExtensions against toolkit, report as Firefox 128.0
if (this.type == "extension") {
version = "128.0";
} else {
version = aPlatformVersion;
}
#ifdef MOZ_PHOENIX_EXTENSIONS
this.native = true;
#endif
version = aPlatformVersion;
}
// Only extensions and dictionaries can be compatible by default; themes

View file

@ -7001,12 +7001,20 @@ AddonInternal.prototype = {
aPlatformVersion = Services.appinfo.platformVersion;
let version;
if (app.id == Services.appinfo.ID)
version = aAppVersion;
if (app.id == Services.appinfo.ID) {
// For WebExtensions, report as Firefox 128.0 for compatibility
if (this.type == "extension") {
version = "128.0";
} else {
version = aAppVersion;
}
}
else if (app.id == TOOLKIT_ID)
version = aPlatformVersion
else if (app.id == WEBEXTENSIONS_ID)
version = WEBEXTENSIONS_VERSION
else if (app.id == WEBEXTENSIONS_ID) {
// For WebExtensions, report as Firefox 128.0
version = "128.0";
}
// Only extensions and dictionaries can be compatible by default; themes
// and language packs always use strict compatibility checking.