Bug 1444502: Remove support for installing unpacked extensions. r?aswan
This retains support for installing unpacked dictionaries, since Hunspell only
supports loading dictionaries from ordinary filesystem paths.
Unpacked extensions are no longer supported on production, except during
development. WebExtensions have no support for the unpacked flag at all, and
specially signed legacy extensions are forbidden from using it, so there's no
point in maintaining support for this install code. Or, more importantly, for
running a nearly complete duplicated set of tests in order to exercise it.
MozReview-Commit-ID: 1fKVgSelJQ8
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -5101,17 +5101,16 @@ pref("html5.flushtimer.subsequentdelay",
pref("browser.history.maxStateObjectSize", 655360);
pref("browser.meta_refresh_when_inactive.disabled", false);
// XPInstall prefs
pref("xpinstall.whitelist.required", true);
// Only Firefox requires add-on signatures
pref("xpinstall.signatures.required", false);
-pref("extensions.alwaysUnpack", false);
pref("extensions.minCompatiblePlatformVersion", "2.0");
pref("extensions.webExtensionsMinPlatformVersion", "42.0a1");
pref("extensions.legacy.enabled", true);
pref("extensions.allow-non-mpc-extensions", true);
// Other webextensions prefs
pref("extensions.webextensions.keepStorageOnUninstall", false);
pref("extensions.webextensions.keepUuidOnUninstall", false);
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
@@ -109,17 +109,16 @@ function getFile(path, base = null) {
let file = base.clone();
file.appendRelativePath(path);
return file;
}
const PREF_EM_UPDATE_BACKGROUND_URL = "extensions.update.background.url";
const PREF_EM_UPDATE_URL = "extensions.update.url";
const PREF_XPI_SIGNATURES_DEV_ROOT = "xpinstall.signatures.dev-root";
-const PREF_XPI_UNPACK = "extensions.alwaysUnpack";
const PREF_INSTALL_REQUIREBUILTINCERTS = "extensions.install.requireBuiltInCerts";
const FILE_RDF_MANIFEST = "install.rdf";
const FILE_WEB_MANIFEST = "manifest.json";
const KEY_TEMPDIR = "TmpD";
const RDFURI_INSTALL_MANIFEST_ROOT = "urn:mozilla:install-manifest";
const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
@@ -333,17 +332,16 @@ async function loadManifestFromWebManife
throw new Error("The use of '*' in strict_min_version is invalid");
}
let addon = new AddonInternal();
addon.id = bss.id;
addon.version = manifest.version;
addon.type = extension.type === "extension" ?
"webextension" : `webextension-${extension.type}`;
- addon.unpack = false;
addon.strictCompatibility = true;
addon.bootstrap = true;
addon.multiprocessCompatible = true;
addon.internalName = null;
addon.updateURL = bss.update_url;
addon.updateKey = null;
addon.optionsBrowserStyle = true;
addon.optionsURL = null;
@@ -534,17 +532,16 @@ async function loadManifestFromRDF(aUri,
throw e;
}
let root = gRDF.GetResource(RDFURI_INSTALL_MANIFEST_ROOT);
let addon = new AddonInternal();
for (let prop of PROP_METADATA) {
addon[prop] = getRDFProperty(ds, root, prop);
}
- addon.unpack = getRDFProperty(ds, root, "unpack") == "true";
if (!addon.type) {
addon.type = addon.internalName ? "theme" : "extension";
} else {
let type = addon.type;
addon.type = null;
for (let name in TYPES) {
if (TYPES[name] == type) {
@@ -1724,26 +1721,24 @@ class AddonInstall {
logger.debug("Starting install of " + this.addon.id + " from " + this.sourceURI.spec);
AddonManagerPrivate.callAddonListeners("onInstalling",
this.addon.wrapper,
requiresRestart);
let stagedAddon = this.installLocation.getStagingDir();
(async () => {
- let installedUnpacked = 0;
-
await this.installLocation.requestStagingDir();
// remove any previously staged files
await this.unstageInstall(stagedAddon);
stagedAddon.append(`${this.addon.id}.xpi`);
- installedUnpacked = await this.stageInstall(requiresRestart, stagedAddon, isUpgrade);
+ await this.stageInstall(requiresRestart, stagedAddon, isUpgrade);
if (requiresRestart) {
this.state = AddonManager.STATE_INSTALLED;
AddonManagerPrivate.callInstallListeners("onInstallEnded",
this.listeners, this.wrapper,
this.addon.wrapper);
} else {
// The install is completed so it should be removed from the active list
@@ -1837,17 +1832,16 @@ class AddonInstall {
XPIProvider.callBootstrapMethod(this.addon, file, "startup",
reason, extraParams);
} else {
// XXX this makes it dangerous to do some things in onInstallEnded
// listeners because important cleanup hasn't been done yet
XPIProvider.unloadBootstrapScope(this.addon.id);
}
}
- XPIProvider.setTelemetry(this.addon.id, "unpacked", installedUnpacked);
recordAddonTelemetry(this.addon);
// Notify providers that a new theme has been enabled.
if (isTheme(this.addon.type) && this.addon.active)
AddonManagerPrivate.notifyAddonChanged(this.addon.id, this.addon.type, requiresRestart);
}
})().catch((e) => {
logger.warn(`Failed to install ${this.file.path} from ${this.sourceURI.spec} to ${stagedAddon.path}`, e);
@@ -1870,26 +1864,23 @@ class AddonInstall {
/**
* Stages an upgrade for next application restart.
*/
async stageInstall(restartRequired, stagedAddon, isUpgrade) {
let stagedJSON = stagedAddon.clone();
stagedJSON.leafName = this.addon.id + ".json";
- let installedUnpacked = 0;
-
// First stage the file regardless of whether restarting is necessary
- if (this.addon.unpack || Services.prefs.getBoolPref(PREF_XPI_UNPACK, false)) {
+ if (this.addon.unpack) {
logger.debug("Addon " + this.addon.id + " will be installed as " +
"an unpacked directory");
stagedAddon.leafName = this.addon.id;
await OS.File.makeDir(stagedAddon.path);
await ZipUtils.extractFilesAsync(this.file, stagedAddon);
- installedUnpacked = 1;
} else {
logger.debug(`Addon ${this.addon.id} will be installed as a packed xpi`);
stagedAddon.leafName = this.addon.id + ".xpi";
await OS.File.copy(this.file.path, stagedAddon.path);
}
if (restartRequired) {
@@ -1900,18 +1891,16 @@ class AddonInstall {
writeStringToFile(stagedJSON, JSON.stringify(this.addon));
logger.debug("Staged install of " + this.addon.id + " from " + this.sourceURI.spec + " ready; waiting for restart.");
if (isUpgrade) {
delete this.existingAddon.pendingUpgrade;
this.existingAddon.pendingUpgrade = this.addon;
}
}
-
- return installedUnpacked;
}
/**
* Removes any previously staged upgrade.
*/
async unstageInstall(stagedAddon) {
let stagedJSON = getFile(`${this.addon.id}.json`, stagedAddon);
if (stagedJSON.exists()) {
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -4924,16 +4924,20 @@ AddonInternal.prototype = {
break;
}
if (this.signedState === AddonManager.SIGNEDSTATE_NOT_REQUIRED)
return true;
return this.signedState > AddonManager.SIGNEDSTATE_MISSING;
},
+ get unpack() {
+ return this.type === "dictionary";
+ },
+
get isCompatible() {
return this.isCompatibleWith();
},
get disabled() {
return (this.userDisabled || this.appDisabled || this.softDisabled);
},
@@ -6535,21 +6539,16 @@ class SystemAddonInstallLocation extends
}
isValidAddon(aAddon) {
if (aAddon.appDisabled) {
logger.warn(`System add-on ${aAddon.id} isn't compatible with the application.`);
return false;
}
- if (aAddon.unpack) {
- logger.warn(`System add-on ${aAddon.id} isn't a packed add-on.`);
- return false;
- }
-
if (!aAddon.bootstrap) {
logger.warn(`System add-on ${aAddon.id} isn't restartless.`);
return false;
}
if (!aAddon.multiprocessCompatible) {
logger.warn(`System add-on ${aAddon.id} isn't multiprocess compatible.`);
return false;
deleted file mode 100644
index 2dbcc0b50fe13bbe614edbf84521f9931849442e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 86fc6baaa91a2381479bf8c05b74603d50d60930..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index adb7be9adfa55faa78a02a3781d2c2911f11cff6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
--- a/toolkit/mozapps/extensions/test/xpcshell/head_unpack.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/head_unpack.js
@@ -1,4 +1,3 @@
/* globals Services, TEST_UNPACKED: true */
/* exported TEST_UNPACKED */
-Services.prefs.setBoolPref("extensions.alwaysUnpack", true);
TEST_UNPACKED = true;
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug526598.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-function run_test() {
- do_test_pending();
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
-
- startupManager();
-
- installAllFiles([do_get_file("data/test_bug526598_1.xpi"),
- do_get_file("data/test_bug526598_2.xpi")], function() {
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["bug526598_1@tests.mozilla.org",
- "bug526598_2@tests.mozilla.org"],
- callback_soon(function([a1, a2]) {
-
- Assert.notEqual(a1, null);
- Assert.ok(a1.hasResource("install.rdf"));
- let uri = a1.getResourceURI("install.rdf");
- Assert.ok(uri instanceof AM_Ci.nsIFileURL);
- let file = uri.file;
- Assert.ok(file.exists());
- Assert.ok(file.isReadable());
- Assert.ok(file.isWritable());
-
- Assert.notEqual(a2, null);
- Assert.ok(a2.hasResource("install.rdf"));
- uri = a2.getResourceURI("install.rdf");
- Assert.ok(uri instanceof AM_Ci.nsIFileURL);
- file = uri.file;
- Assert.ok(file.exists());
- Assert.ok(file.isReadable());
- Assert.ok(file.isWritable());
-
- a1.uninstall();
- a2.uninstall();
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["bug526598_1@tests.mozilla.org",
- "bug526598_2@tests.mozilla.org"],
- function([newa1, newa2]) {
- Assert.equal(newa1, null);
- Assert.equal(newa2, null);
-
- executeSoon(do_test_finished);
- });
- }));
- });
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug541420.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-function run_test() {
- do_test_pending();
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
-
- startupManager();
-
- installAllFiles([do_get_file("data/test_bug541420.xpi")], function() {
-
- restartManager();
-
- AddonManager.getAddonByID("bug541420@tests.mozilla.org", function(addon) {
-
- Assert.notEqual(addon, null);
- Assert.ok(addon.hasResource("binary"));
- let uri = addon.getResourceURI("binary");
- Assert.ok(uri instanceof AM_Ci.nsIFileURL);
- let file = uri.file;
- Assert.ok(file.exists());
- Assert.ok(file.isReadable());
- Assert.ok(file.isWritable());
-
- // We don't understand executable permissions on Windows since we don't
- // support NTFS permissions so we don't need to test there. OSX's isExecutable
- // only tests if the file is an application so it is better to just check the
- // raw permission bits
- if (!("nsIWindowsRegKey" in Ci))
- Assert.ok((file.permissions & 0o100) == 0o100);
-
- executeSoon(do_test_finished);
- });
- });
-}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_distribution.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_distribution.js
@@ -59,20 +59,17 @@ function getInstalledVersion() {
}
function setOldModificationTime() {
// Make sure the installed extension has an old modification time so any
// changes will be detected
shutdownManager();
let extension = gProfD.clone();
extension.append("extensions");
- if (Services.prefs.getBoolPref("extensions.alwaysUnpack"))
- extension.append("addon1@tests.mozilla.org");
- else
- extension.append("addon1@tests.mozilla.org.xpi");
+ extension.append("addon1@tests.mozilla.org.xpi");
setExtensionModifiedTime(extension, Date.now() - MAKE_FILE_OLD_DIFFERENCE);
startupManager(false);
}
function run_test() {
do_test_pending();
run_test_1();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_filepointer.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_filepointer.js
@@ -79,17 +79,17 @@ function writeRelativePointer(aId, aName
FileUtils.MODE_WRONLY | FileUtils.MODE_CREATE | FileUtils.MODE_TRUNCATE,
FileUtils.PERMS_FILE, 0);
fos.write(relTarget, relTarget.length);
fos.close();
}
function run_test() {
// pointer files only work with unpacked directories
- if (!Services.prefs.getBoolPref("extensions.alwaysUnpack"))
+ if (!TEST_UNPACKED)
return;
do_test_pending();
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
// Create and configure the HTTP server.
testserver = new HttpServer();
testserver.registerDirectory("/data/", do_get_file("data"));
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell-shared.ini
+++ /dev/null
@@ -1,346 +0,0 @@
-# The file is shared between the two main xpcshell manifest files.
-[DEFAULT]
-skip-if = toolkit == 'android'
-tags = addons
-
-[test_AddonRepository.js]
-[test_reload.js]
-# Bug 676992: test consistently hangs on Android
-# There's a problem removing a temp file without manually clearing the cache on Windows
-skip-if = os == "android" || os == "win"
-tags = webextensions
-[test_AddonRepository_cache.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_AddonRepository_paging.js]
-[test_LightweightThemeManager.js]
-[test_backgroundupdate.js]
-[test_bad_json.js]
-[test_badschema.js]
-[test_blocklistchange.js]
-# Times out during parallel runs on desktop
-requesttimeoutfactor = 2
-tags = blocklist
-[test_blocklist_prefs.js]
-tags = blocklist
-[test_blocklist_metadata_filters.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_regexp.js]
-skip-if = os == "android"
-tags = blocklist
-[test_bootstrap.js]
-skip-if = true # Bug 1358846 Bug 1365021 Bug 676992
-[test_bootstrap_const.js]
-[test_bootstrap_resource.js]
-[test_bug299716.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_bug299716_2.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Hardcoded port in install.rdf.
-[test_bug324121.js]
-# Bug 676992: test consistently hangs on Android
-# Bug 1026805: frequent hangs on OSX 10.8
-skip-if = os == "android" || os == "mac"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_bug335238.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses hardcoded ports in xpi files.
-tags = blocklist
-[test_bug371495.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug384052.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug393285.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug394300.js]
-# Bug 676992: test consistently hangs on Android
-# Bug 1026805: frequent hangs on OSX 10.8
-skip-if = os == "android" || os == "mac"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_bug397778.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug406118.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug425657.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug430120.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug449027.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug455906.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug465190.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug468528.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug470377_1.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug470377_1_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug470377_2.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug470377_3.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug470377_3_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug470377_4.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug514327_1.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug514327_2.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug514327_3.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_bug521905.js]
-[test_bug526598.js]
-[test_bug541420.js]
-[test_bug559800.js]
-[test_bug564030.js]
-[test_bug566626.js]
-[test_bug567184.js]
-[test_bug569138.js]
-[test_bug570173.js]
-[test_bug576735.js]
-[test_bug587088.js]
-skip-if = os == "win" # Bug 1358846
-[test_bug595081.js]
-[test_bug595573.js]
-[test_bug596607.js]
-[test_bug616841.js]
-# Bug 676992: test consistently fails on Android
-fail-if = os == "android"
-[test_bug619730.js]
-tags = blocklist
-[test_bug620837.js]
-tags = blocklist
-[test_bug655254.js]
-[test_bug659772.js]
-[test_bug675371.js]
-[test_bug740612.js]
-[test_bug753900.js]
-[test_bug757663.js]
-[test_bug953156.js]
-[test_checkcompatibility.js]
-[test_childprocess.js]
-[test_ChromeManifestParser.js]
-[test_compatoverrides.js]
-[test_corrupt.js]
-[test_corrupt_strictcompat.js]
-[test_corruptfile.js]
-[test_dataDirectory.js]
-[test_db_path.js]
-head =
-[test_default_providers_pref.js]
-[test_dictionary.js]
-[test_disable.js]
-[test_distribution.js]
-[test_duplicateplugins.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_error.js]
-[test_experiment.js]
-[test_filepointer.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_general.js]
-[test_getresource.js]
-[test_gfxBlacklist_Device.js]
-tags = blocklist
-[test_gfxBlacklist_DriverNew.js]
-tags = blocklist
-[test_gfxBlacklist_Equal_DriverNew.js]
-tags = blocklist
-[test_gfxBlacklist_Equal_DriverOld.js]
-tags = blocklist
-[test_gfxBlacklist_Equal_OK.js]
-tags = blocklist
-[test_gfxBlacklist_GTE_DriverOld.js]
-tags = blocklist
-[test_gfxBlacklist_GTE_OK.js]
-tags = blocklist
-[test_gfxBlacklist_No_Comparison.js]
-tags = blocklist
-[test_gfxBlacklist_OK.js]
-tags = blocklist
-[test_gfxBlacklist_OS.js]
-tags = blocklist
-[test_gfxBlacklist_OSVersion_match.js]
-tags = blocklist
-[test_gfxBlacklist_OSVersion_mismatch_OSVersion.js]
-tags = blocklist
-[test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js]
-tags = blocklist
-[test_gfxBlacklist_Vendor.js]
-tags = blocklist
-[test_gfxBlacklist_Version.js]
-tags = blocklist
-[test_gfxBlacklist_prefs.js]
-# Bug 1248787 - consistently fails
-skip-if = true
-tags = blocklist
-[test_install.js]
-[test_install_icons.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_install_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_isDebuggable.js]
-[test_legacy.js]
-skip-if = !allow_legacy_extensions || appname == "thunderbird"
-[test_locale.js]
-[test_locked.js]
-[test_locked2.js]
-[test_locked_strictcompat.js]
-[test_manifest.js]
-[test_mapURIToAddonID.js]
-# Same as test_bootstrap.js
-skip-if = os == "android"
-[test_multiprocessCompatible.js]
-[test_no_addons.js]
-[test_onPropertyChanged_appDisabled.js]
-[test_permissions.js]
-[test_permissions_prefs.js]
-[test_plugins.js]
-[test_pluginchange.js]
-# PluginProvider.jsm is not shipped on Android
-skip-if = os == "android"
-[test_pluginBlocklistCtp.js]
-# Bug 676992: test consistently fails on Android
-fail-if = os == "android"
-tags = blocklist
-[test_pref_properties.js]
-[test_registry.js]
-[test_safemode.js]
-[test_signed_updatepref.js]
-run-if = addon_signing
-skip-if = require_signing || !allow_legacy_extensions
-[test_signed_verify.js]
-run-if = addon_signing
-[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_long.js]
-run-if = addon_signing
-[test_startup.js]
-# Bug 676992: test consistently fails on Android
-fail-if = os == "android"
-[test_syncGUID.js]
-[test_strictcompatibility.js]
-[test_targetPlatforms.js]
-[test_types.js]
-[test_undouninstall.js]
-skip-if = os == "win" # Bug 1358846
-[test_uninstall.js]
-[test_update.js]
-# Bug 676992: test consistently hangs on Android; bug 1330227 - linux
-skip-if = os == "android" || os == "linux"
-[test_update_webextensions.js]
-tags = webextensions
-[test_updateCancel.js]
-[test_update_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_update_ignorecompat.js]
-skip-if = true # Bug 676922 Bug 1437697
-[test_updatecheck.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_json_updatecheck.js]
-[test_migrate_state_prefs.js]
-[test_seen.js]
-[test_updateid.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses hardcoded ports in xpi files.
-[test_update_compatmode.js]
-[test_upgrade.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses global XCurProcD dir.
-[test_upgrade_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses global XCurProcD dir.
-[test_overrideblocklist.js]
-run-sequentially = Uses global XCurProcD dir.
-tags = blocklist
-[test_sideloads.js]
-[test_sourceURI.js]
-[test_webextension_icons.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_webextension.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_webextension_events.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_webextension_install.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_webextension_embedded.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_webextension_langpack.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_webextension_install_syntax_error.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-[test_bootstrap_globals.js]
-[test_bug1180901_2.js]
-skip-if = os != "win"
-[test_bug1180901.js]
-skip-if = os != "win"
-[test_switch_os.js]
-# Bug 1246231
-skip-if = os == "mac" && debug
-[test_softblocked.js]
-tags = blocklist
-[test_ext_management.js]
-skip-if = appname == "thunderbird"
-tags = webextensions
-
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell-unpack.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell-unpack.ini
@@ -6,9 +6,9 @@ skip-if = toolkit == 'android'
dupe-manifest =
tags = addons
[test_webextension_paths.js]
tags = webextensions
[test_webextension_theme.js]
tags = webextensions
-[include:xpcshell-shared.ini]
+[test_filepointer.js]
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -1,17 +1,16 @@
[DEFAULT]
skip-if = toolkit == 'android'
tags = addons
head = head_addons.js
firefox-appdir = browser
dupe-manifest =
support-files =
data/**
- xpcshell-shared.ini
[test_addon_path_service.js]
[test_addonStartup.js]
[test_asyncBlocklistLoad.js]
tags = blocklist
[test_blocklist_gfx.js]
tags = blocklist
[test_cache_certdb.js]
@@ -58,9 +57,346 @@ skip-if = appname == "thunderbird"
tags = webextensions
[test_dependencies.js]
[test_system_delay_update.js]
[test_schema_change.js]
[test_registerchrome.js]
[test_system_allowed.js]
[test_upgrade_incompatible.js]
-[include:xpcshell-shared.ini]
+
+[test_AddonRepository.js]
+[test_reload.js]
+# Bug 676992: test consistently hangs on Android
+# There's a problem removing a temp file without manually clearing the cache on Windows
+skip-if = os == "android" || os == "win"
+tags = webextensions
+[test_AddonRepository_cache.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_AddonRepository_paging.js]
+[test_LightweightThemeManager.js]
+[test_backgroundupdate.js]
+[test_bad_json.js]
+[test_badschema.js]
+[test_blocklistchange.js]
+# Times out during parallel runs on desktop
+requesttimeoutfactor = 2
+tags = blocklist
+[test_blocklist_prefs.js]
+tags = blocklist
+[test_blocklist_metadata_filters.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_blocklist_regexp.js]
+skip-if = os == "android"
+tags = blocklist
+[test_bootstrap.js]
+skip-if = true # Bug 1358846 Bug 1365021 Bug 676992
+[test_bootstrap_const.js]
+[test_bootstrap_resource.js]
+[test_bug299716.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_bug299716_2.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Hardcoded port in install.rdf.
+[test_bug324121.js]
+# Bug 676992: test consistently hangs on Android
+# Bug 1026805: frequent hangs on OSX 10.8
+skip-if = os == "android" || os == "mac"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_bug335238.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses hardcoded ports in xpi files.
+tags = blocklist
+[test_bug371495.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug384052.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug393285.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug394300.js]
+# Bug 676992: test consistently hangs on Android
+# Bug 1026805: frequent hangs on OSX 10.8
+skip-if = os == "android" || os == "mac"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_bug397778.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug406118.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug425657.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug430120.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug449027.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug455906.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug465190.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug468528.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug470377_1.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug470377_1_strictcompat.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug470377_2.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug470377_3.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug470377_3_strictcompat.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug470377_4.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_bug514327_1.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug514327_2.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug514327_3.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+tags = blocklist
+[test_bug521905.js]
+[test_bug559800.js]
+[test_bug564030.js]
+[test_bug566626.js]
+[test_bug567184.js]
+[test_bug569138.js]
+[test_bug570173.js]
+[test_bug576735.js]
+[test_bug587088.js]
+skip-if = os == "win" # Bug 1358846
+[test_bug595081.js]
+[test_bug595573.js]
+[test_bug596607.js]
+[test_bug616841.js]
+# Bug 676992: test consistently fails on Android
+fail-if = os == "android"
+[test_bug619730.js]
+tags = blocklist
+[test_bug620837.js]
+tags = blocklist
+[test_bug655254.js]
+[test_bug659772.js]
+[test_bug675371.js]
+[test_bug740612.js]
+[test_bug753900.js]
+[test_bug757663.js]
+[test_bug953156.js]
+[test_checkcompatibility.js]
+[test_childprocess.js]
+[test_ChromeManifestParser.js]
+[test_compatoverrides.js]
+[test_corrupt.js]
+[test_corrupt_strictcompat.js]
+[test_corruptfile.js]
+[test_dataDirectory.js]
+[test_db_path.js]
+head =
+[test_default_providers_pref.js]
+[test_dictionary.js]
+[test_disable.js]
+[test_distribution.js]
+[test_duplicateplugins.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_error.js]
+[test_experiment.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_general.js]
+[test_getresource.js]
+[test_gfxBlacklist_Device.js]
+tags = blocklist
+[test_gfxBlacklist_DriverNew.js]
+tags = blocklist
+[test_gfxBlacklist_Equal_DriverNew.js]
+tags = blocklist
+[test_gfxBlacklist_Equal_DriverOld.js]
+tags = blocklist
+[test_gfxBlacklist_Equal_OK.js]
+tags = blocklist
+[test_gfxBlacklist_GTE_DriverOld.js]
+tags = blocklist
+[test_gfxBlacklist_GTE_OK.js]
+tags = blocklist
+[test_gfxBlacklist_No_Comparison.js]
+tags = blocklist
+[test_gfxBlacklist_OK.js]
+tags = blocklist
+[test_gfxBlacklist_OS.js]
+tags = blocklist
+[test_gfxBlacklist_OSVersion_match.js]
+tags = blocklist
+[test_gfxBlacklist_OSVersion_mismatch_OSVersion.js]
+tags = blocklist
+[test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js]
+tags = blocklist
+[test_gfxBlacklist_Vendor.js]
+tags = blocklist
+[test_gfxBlacklist_Version.js]
+tags = blocklist
+[test_gfxBlacklist_prefs.js]
+# Bug 1248787 - consistently fails
+skip-if = true
+tags = blocklist
+[test_install.js]
+[test_install_icons.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_install_strictcompat.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_isDebuggable.js]
+[test_legacy.js]
+skip-if = !allow_legacy_extensions || appname == "thunderbird"
+[test_locale.js]
+[test_locked.js]
+[test_locked2.js]
+[test_locked_strictcompat.js]
+[test_manifest.js]
+[test_mapURIToAddonID.js]
+# Same as test_bootstrap.js
+skip-if = os == "android"
+[test_multiprocessCompatible.js]
+[test_no_addons.js]
+[test_onPropertyChanged_appDisabled.js]
+[test_permissions.js]
+[test_permissions_prefs.js]
+[test_plugins.js]
+[test_pluginchange.js]
+# PluginProvider.jsm is not shipped on Android
+skip-if = os == "android"
+[test_pluginBlocklistCtp.js]
+# Bug 676992: test consistently fails on Android
+fail-if = os == "android"
+tags = blocklist
+[test_pref_properties.js]
+[test_registry.js]
+[test_safemode.js]
+[test_signed_updatepref.js]
+run-if = addon_signing
+skip-if = require_signing || !allow_legacy_extensions
+[test_signed_verify.js]
+run-if = addon_signing
+[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_long.js]
+run-if = addon_signing
+[test_startup.js]
+# Bug 676992: test consistently fails on Android
+fail-if = os == "android"
+[test_syncGUID.js]
+[test_strictcompatibility.js]
+[test_targetPlatforms.js]
+[test_types.js]
+[test_undouninstall.js]
+skip-if = os == "win" # Bug 1358846
+[test_uninstall.js]
+[test_update.js]
+# Bug 676992: test consistently hangs on Android; bug 1330227 - linux
+skip-if = os == "android" || os == "linux"
+[test_update_webextensions.js]
+tags = webextensions
+[test_updateCancel.js]
+[test_update_strictcompat.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+[test_update_ignorecompat.js]
+skip-if = true # Bug 676922 Bug 1437697
+[test_updatecheck.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_json_updatecheck.js]
+[test_migrate_state_prefs.js]
+[test_seen.js]
+[test_updateid.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses hardcoded ports in xpi files.
+[test_update_compatmode.js]
+[test_upgrade.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses global XCurProcD dir.
+[test_upgrade_strictcompat.js]
+# Bug 676992: test consistently hangs on Android
+skip-if = os == "android"
+run-sequentially = Uses global XCurProcD dir.
+[test_overrideblocklist.js]
+run-sequentially = Uses global XCurProcD dir.
+tags = blocklist
+[test_sideloads.js]
+[test_sourceURI.js]
+[test_webextension_icons.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_webextension.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_webextension_events.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_webextension_install.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_webextension_embedded.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_webextension_langpack.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_webextension_install_syntax_error.js]
+skip-if = appname == "thunderbird"
+tags = webextensions
+[test_bootstrap_globals.js]
+[test_bug1180901_2.js]
+skip-if = os != "win"
+[test_bug1180901.js]
+skip-if = os != "win"
+[test_switch_os.js]
+# Bug 1246231
+skip-if = os == "mac" && debug
+[test_softblocked.js]
+tags = blocklist
+[test_ext_management.js]
+skip-if = appname == "thunderbird"
+tags = webextensions