--- a/browser/config/mozconfigs/win32/mingw32
+++ b/browser/config/mozconfigs/win32/mingw32
@@ -9,17 +9,16 @@
unset MAKECAB
# Sets:
# build/mozconfig.common
# AUTOCLOBBER=1
# --enable-crashreporter
# --enable-release
# LLVM_CONFIG
-# MOZ_ADDON_SIGNING
# MOZ_REQUIRE_SIGNING
# --enable-js-shell
# build/mozconfig.automation
# MOZ_AUTOMATION_ flags
# build/mozconfig.rust
# TOOLTOOL_DIR
# RUSTC
# CARGO
--- a/browser/confvars.sh
+++ b/browser/confvars.sh
@@ -62,13 +62,10 @@ fi
# ASan reporter builds should have different channel ids
if [ "${MOZ_ASAN_REPORTER}" = "1" ]; then
ACCEPTED_MAR_CHANNEL_IDS="${ACCEPTED_MAR_CHANNEL_IDS}-asan"
MAR_CHANNEL_ID="${MAR_CHANNEL_ID}-asan"
fi
MOZ_PROFILE_MIGRATOR=1
-# Enable checking that add-ons are signed by the trusted root
-MOZ_ADDON_SIGNING=1
-
# Include the DevTools client, not just the server (which is the default)
MOZ_DEVTOOLS=all
--- a/build/mozconfig.common
+++ b/build/mozconfig.common
@@ -9,18 +9,16 @@
# architectures, though note that if you want to override options set in
# another mozconfig file, you'll need to use mozconfig.common.override instead
# of this file.
mk_add_options AUTOCLOBBER=1
ac_add_options --enable-crashreporter
-# Enable checking that add-ons are signed by the trusted root
-MOZ_ADDON_SIGNING=${MOZ_ADDON_SIGNING-1}
# Disable enforcing that add-ons are signed by the trusted root
MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}
ac_add_options --enable-js-shell
. "$topsrcdir/build/mozconfig.automation"
. "$topsrcdir/build/mozconfig.rust"
. "$topsrcdir/build/mozconfig.cache"
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -34,11 +34,8 @@ MOZ_XULRUNNER=
MOZ_CAPTURE=1
MOZ_RAW=1
# use custom widget for html:select
MOZ_USE_NATIVE_POPUP_WINDOWS=1
MOZ_APP_ID={aa3c5121-dab2-40e2-81ca-7ea25febc110}
-
-# Enable checking that add-ons are signed by the trusted root
-MOZ_ADDON_SIGNING=1
--- a/old-configure.in
+++ b/old-configure.in
@@ -4115,20 +4115,16 @@ AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
AC_SUBST(MOZ_LINKER_EXTRACT)
if test -n "$MOZ_BINARY_EXTENSIONS"; then
AC_DEFINE(MOZ_BINARY_EXTENSIONS)
fi
-AC_SUBST(MOZ_ADDON_SIGNING)
-if test "$MOZ_ADDON_SIGNING" = 1; then
- AC_DEFINE(MOZ_ADDON_SIGNING)
-fi
AC_SUBST(MOZ_REQUIRE_SIGNING)
if test "$MOZ_REQUIRE_SIGNING" = 1; then
AC_DEFINE(MOZ_REQUIRE_SIGNING)
fi
dnl ========================================================
dnl = Mac bundle name prefix
dnl ========================================================
--- a/python/mozbuild/mozbuild/mozinfo.py
+++ b/python/mozbuild/mozbuild/mozinfo.py
@@ -86,17 +86,16 @@ def build_dict(config, env=os.environ):
# FIXME(emilio): We need to update a lot of WPT expectations before removing this.
d['stylo'] = True
d['asan'] = substs.get('MOZ_ASAN') == '1'
d['tsan'] = substs.get('MOZ_TSAN') == '1'
d['ubsan'] = substs.get('MOZ_UBSAN') == '1'
d['telemetry'] = substs.get('MOZ_TELEMETRY_REPORTING') == '1'
d['tests_enabled'] = substs.get('ENABLE_TESTS') == "1"
d['bin_suffix'] = substs.get('BIN_SUFFIX', '')
- d['addon_signing'] = substs.get('MOZ_ADDON_SIGNING') == '1'
d['require_signing'] = substs.get('MOZ_REQUIRE_SIGNING') == '1'
d['allow_legacy_extensions'] = substs.get('MOZ_ALLOW_LEGACY_EXTENSIONS') == '1'
d['official'] = bool(substs.get('MOZILLA_OFFICIAL'))
d['updater'] = substs.get('MOZ_UPDATER') == '1'
d['artifact'] = substs.get('MOZ_ARTIFACT_BUILDS') == '1'
d['ccov'] = substs.get('MOZ_CODE_COVERAGE') == '1'
d['cc_type'] = substs.get('CC_TYPE')
--- a/testing/mozharness/configs/merge_day/release_to_esr.py
+++ b/testing/mozharness/configs/merge_day/release_to_esr.py
@@ -14,22 +14,16 @@ config = {
# File, from, to
("browser/confvars.sh",
"ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release",
"ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-esr"),
("browser/confvars.sh",
"MAR_CHANNEL_ID=firefox-mozilla-release",
"MAR_CHANNEL_ID=firefox-mozilla-esr"),
("build/mozconfig.common",
- "# Enable checking that add-ons are signed by the trusted root",
- "# Disable checking that add-ons are signed by the trusted root"),
- ("build/mozconfig.common",
- "MOZ_ADDON_SIGNING=${MOZ_ADDON_SIGNING-1}",
- "MOZ_ADDON_SIGNING=${MOZ_ADDON_SIGNING-0}"),
- ("build/mozconfig.common",
"# Enable enforcing that add-ons are signed by the trusted root",
"# Disable enforcing that add-ons are signed by the trusted root"),
("build/mozconfig.common",
"MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}",
"MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}"),
],
"vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
# "hg_share_base": None,
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
@@ -672,17 +672,17 @@ function checkSystemSection(data) {
Assert.equal(typeof product, "string", "Each element of " + f + " must be a string");
}
}
}
}
}
function checkActiveAddon(data, partialRecord) {
- let signedState = mozinfo.addon_signing ? "number" : "undefined";
+ let signedState = "number";
// system add-ons have an undefined signState
if (data.isSystem)
signedState = "undefined";
const EXPECTED_ADDON_FIELDS_TYPES = {
version: "string",
scope: "number",
type: "string",
@@ -1213,17 +1213,17 @@ add_task(async function test_addonsAndPl
appDisabled: false,
version: "1.0",
scope: 1,
type: "extension",
foreignInstall: false,
hasBinaryComponents: false,
installDay: ADDON_INSTALL_DATE,
updateDay: ADDON_INSTALL_DATE,
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
isSystem: false,
isWebExtension: true,
multiprocessCompatible: true,
};
const SYSTEM_ADDON_ID = "tel-system-xpi@tests.mozilla.org";
const EXPECTED_SYSTEM_ADDON_DATA = {
blocklisted: false,
description: "A system addon which is shipped with Firefox.",
@@ -1253,17 +1253,17 @@ add_task(async function test_addonsAndPl
appDisabled: false,
version: "1.0",
scope: 1,
type: "extension",
foreignInstall: false,
hasBinaryComponents: false,
installDay: WEBEXTENSION_ADDON_INSTALL_DATE,
updateDay: WEBEXTENSION_ADDON_INSTALL_DATE,
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
isSystem: false,
isWebExtension: true,
multiprocessCompatible: true,
};
const EXPECTED_PLUGIN_DATA = {
name: FLASH_PLUGIN_NAME,
version: FLASH_PLUGIN_VERSION,
@@ -1370,17 +1370,17 @@ add_task(async function test_signedAddon
appDisabled: false,
version: "1.0",
scope: 1,
type: "extension",
foreignInstall: false,
hasBinaryComponents: false,
installDay: ADDON_INSTALL_DATE,
updateDay: ADDON_INSTALL_DATE,
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_SIGNED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_SIGNED,
};
let deferred = PromiseUtils.defer();
TelemetryEnvironment.registerChangeListener("test_signedAddon", deferred.resolve);
// Install the addon.
let addon = await installXPIFromURL(ADDON_INSTALL_URL);
@@ -1455,18 +1455,17 @@ add_task(async function test_collectionW
appDisabled: false,
version: "1.0",
scope: 1,
type: "extension",
foreignInstall: false,
hasBinaryComponents: false,
installDay: ADDON_INSTALL_DATE,
updateDay: ADDON_INSTALL_DATE,
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_MISSING :
- AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_MISSING,
};
let receivedNotifications = 0;
let registerCheckpointPromise = (aExpected) => {
return new Promise(resolve => TelemetryEnvironment.registerChangeListener(
"testBrokenAddon_collection" + aExpected, (reason, data) => {
Assert.equal(reason, "addons-changed");
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -217,23 +217,16 @@ this.AppConstants = Object.freeze({
MOZ_PLACES:
#ifdef MOZ_PLACES
true,
#else
false,
#endif
- MOZ_ADDON_SIGNING:
-#ifdef MOZ_ADDON_SIGNING
- true,
-#else
- false,
-#endif
-
MOZ_REQUIRE_SIGNING:
#ifdef MOZ_REQUIRE_SIGNING
true,
#else
false,
#endif
MOZ_ALLOW_LEGACY_EXTENSIONS:
--- a/toolkit/mozapps/extensions/internal/AddonSettings.jsm
+++ b/toolkit/mozapps/extensions/internal/AddonSettings.jsm
@@ -21,18 +21,16 @@ function makeConstant(name, value) {
Object.defineProperty(AddonSettings, name, {
configurable: false,
enumerable: false,
writable: false,
value,
});
}
-makeConstant("ADDON_SIGNING", AppConstants.MOZ_ADDON_SIGNING);
-
if (AppConstants.MOZ_REQUIRE_SIGNING && !Cu.isInAutomation) {
makeConstant("REQUIRE_SIGNING", true);
makeConstant("LANGPACKS_REQUIRE_SIGNING", true);
} else {
XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "REQUIRE_SIGNING",
PREF_SIGNATURES_REQUIRED, false);
XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "LANGPACKS_REQUIRE_SIGNING",
PREF_LANGPACK_SIGNATURES, false);
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
@@ -2565,17 +2565,16 @@ this.XPIDatabaseReconcile = {
* the addon manifests. Default to false.
* @returns {AddonInternal}
* The new addon.
*/
updateCompatibility(aLocation, aOldAddon, aAddonState, aReloadMetadata) {
logger.debug(`Updating compatibility for add-on ${aOldAddon.id} in ${aLocation.name}`);
let checkSigning = (aOldAddon.signedState === undefined &&
- AddonSettings.ADDON_SIGNING &&
SIGNED_TYPES.has(aOldAddon.type));
let manifest = null;
if (checkSigning || aReloadMetadata) {
try {
let file = new nsIFile(aAddonState.path);
manifest = XPIInstall.syncLoadManifestFromFile(file, aLocation);
} catch (err) {
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
@@ -955,19 +955,19 @@ function shouldVerifySignedState(aAddon)
// Updated system add-ons should always have their signature checked
if (aAddon.location.name == KEY_APP_SYSTEM_ADDONS)
return true;
// We don't care about signatures for default system add-ons
if (aAddon.location.name == KEY_APP_SYSTEM_DEFAULTS)
return false;
- // Otherwise only check signatures if signing is enabled and the add-on is one
- // of the signed types.
- return AddonSettings.ADDON_SIGNING && XPIDatabase.SIGNED_TYPES.has(aAddon.type);
+ // Otherwise only check signatures if the add-on is one of the signed
+ // types.
+ return XPIDatabase.SIGNED_TYPES.has(aAddon.type);
}
/**
* Verifies that a bundle's contents are all correctly signed by an
* AMO-issued certificate
*
* @param {nsIFile} aBundle
* The nsIFile for the bundle to check, either a directory or zip file.
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -187,17 +187,16 @@ function awaitPromise(promise) {
result = val;
});
Services.tm.spinEventLoopUntil(() => success !== undefined);
if (!success)
throw result;
return result;
-
}
/**
* Returns a nsIFile instance for the given path, relative to the given
* base file, if provided.
*
* @param {string} path
* The (possibly relative) path of the file.
--- a/toolkit/mozapps/extensions/test/xpcshell/test_proxy.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_proxy.js
@@ -52,17 +52,17 @@ add_task(async function() {
Assert.notEqual(addon, null);
Assert.equal(addon.version, "1.0");
Assert.equal(addon.name, "Test Bootstrap 1 (proxy)");
Assert.ok(addon.isCompatible);
Assert.ok(!addon.appDisabled);
Assert.ok(addon.isActive);
Assert.equal(addon.type, "extension");
- Assert.equal(addon.signedState, mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_UNKNOWN : AddonManager.SIGNEDSTATE_NOT_REQUIRED);
+ Assert.equal(addon.signedState, AddonManager.SIGNEDSTATE_UNKNOWN);
Assert.ok(proxyFile.exists());
await addon.uninstall();
}
unpackedAddon.remove(true);
await promiseRestartManager();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_webextension.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_webextension.js
@@ -35,17 +35,17 @@ add_task(async function test_1() {
version: "1.0",
name: "Web Extension Name",
isCompatible: true,
appDisabled: false,
isActive: true,
isSystem: false,
type: "extension",
isWebExtension: true,
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
iconURL: `${uri}icon48.png`,
icon64URL: `${uri}icon64.png`,
});
// Should persist through a restart
await promiseShutdownManager();
equal(GlobalManager.extensionMap.size, 0);
@@ -62,17 +62,17 @@ add_task(async function test_1() {
checkAddon(ID, addon, {
version: "1.0",
name: "Web Extension Name",
isCompatible: true,
appDisabled: false,
isActive: true,
isSystem: false,
type: "extension",
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
iconURL: `${uri}icon48.png`,
icon64URL: `${uri}icon64.png`,
});
await addon.disable();
equal(GlobalManager.extensionMap.size, 0);
@@ -108,17 +108,17 @@ add_task(async function test_2() {
checkAddon(ID, addon, {
version: "1.0",
name: "Web Extension Name",
isCompatible: true,
appDisabled: false,
isActive: true,
isSystem: false,
type: "extension",
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
});
await addon.uninstall();
await promiseRestartManager();
});
add_task(async function test_manifest_localization() {
@@ -350,17 +350,17 @@ add_task(async function testThemeExtensi
name: "Web Extension Name",
isCompatible: true,
appDisabled: false,
isActive: false,
userDisabled: true,
isSystem: false,
type: "theme",
isWebExtension: true,
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
});
await addon.uninstall();
// Also test one without a proper 'theme' section.
addon = await promiseInstallWebExtension({
manifest: {
"author": "Some author",
@@ -396,17 +396,17 @@ add_task(async function test_theme_upgra
checkAddon(ID, addon, {
version: "1.0",
name: "Test WebExtension 1 (temporary)",
isCompatible: true,
appDisabled: false,
isActive: true,
type: "extension",
- signedState: mozinfo.addon_signing ? AddonManager.SIGNEDSTATE_PRIVILEGED : AddonManager.SIGNEDSTATE_NOT_REQUIRED,
+ signedState: AddonManager.SIGNEDSTATE_PRIVILEGED,
});
// Create a webextension theme with the same ID
addon = await promiseInstallWebExtension({
manifest: {
version: "2.0",
name: "Test WebExtension 1 (temporary)",
applications: {
--- a/toolkit/mozapps/extensions/test/xpcshell/test_webextension_install.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_webextension_install.js
@@ -15,39 +15,31 @@ add_task(async function setup() {
const IMPLICIT_ID_XPI = "data/webext-implicit-id.xpi";
const IMPLICIT_ID_ID = "webext_implicit_id@tests.mozilla.org";
// webext-implicit-id.xpi has a minimal manifest with no
// applications or browser_specific_settings, so its id comes
// from its signature, which should be the ID constant defined below.
add_task(async function test_implicit_id() {
- // This test needs to read the xpi certificate which only works
- // if signing is enabled.
- ok(AddonSettings.ADDON_SIGNING, "Add-on signing is enabled");
-
let addon = await promiseAddonByID(IMPLICIT_ID_ID);
equal(addon, null, "Add-on is not installed");
await promiseInstallFile(do_get_file(IMPLICIT_ID_XPI));
addon = await promiseAddonByID(IMPLICIT_ID_ID);
notEqual(addon, null, "Add-on is installed");
await addon.uninstall();
});
// We should also be able to install webext-implicit-id.xpi temporarily
// and it should look just like the regular install (ie, the ID should
// come from the signature)
add_task(async function test_implicit_id_temp() {
- // This test needs to read the xpi certificate which only works
- // if signing is enabled.
- ok(AddonSettings.ADDON_SIGNING, "Add-on signing is enabled");
-
let addon = await promiseAddonByID(IMPLICIT_ID_ID);
equal(addon, null, "Add-on is not installed");
let xpifile = do_get_file(IMPLICIT_ID_XPI);
await AddonManager.installTemporaryAddon(xpifile);
addon = await promiseAddonByID(IMPLICIT_ID_ID);
notEqual(addon, null, "Add-on is installed");
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -71,17 +71,16 @@ tags = blocklist
# Times out during parallel runs on desktop
requesttimeoutfactor = 2
tags = blocklist
[test_bootstrap.js]
[test_bootstrap_const.js]
[test_bootstrap_globals.js]
[test_bootstrapped_chrome_manifest.js]
[test_cache_certdb.js]
-run-if = addon_signing
[test_cacheflush.js]
[test_childprocess.js]
[test_compatoverrides.js]
[test_corrupt.js]
[test_corruptfile.js]
[test_crash_annotation_quoting.js]
[test_db_path.js]
head =
@@ -191,31 +190,25 @@ skip-if = os != 'win'
skip-if = os == "android" || os == "win"
tags = webextensions
[test_safemode.js]
[test_schema_change.js]
[test_seen.js]
[test_shutdown.js]
[test_sideloads.js]
[test_signed_inject.js]
-run-if = addon_signing
# Bug 1394122
skip-if = true
[test_signed_install.js]
-run-if = addon_signing
run-sequentially = Uses hardcoded ports in xpi files.
[test_signed_langpack.js]
-run-if = addon_signing
[test_signed_long.js]
-run-if = addon_signing
[test_signed_updatepref.js]
-run-if = addon_signing
skip-if = require_signing || !allow_legacy_extensions
[test_signed_verify.js]
-run-if = addon_signing
[test_softblocked.js]
tags = blocklist
[test_sourceURI.js]
[test_startup.js]
# Bug 676992: test consistently fails on Android
fail-if = os == "android"
[test_strictcompatibility.js]
[test_switch_os.js]