Bug 1447903: Part 1 - Remove locked DB tests. r?aswan draft
authorKris Maglione <maglione.k@gmail.com>
Wed, 21 Mar 2018 15:37:09 -0700
changeset 772360 1530b8284a67e92c6e1694443bd5c0ba555cae93
parent 772359 81f979b3b3ff52f706de39422401ac6f21d408f8
child 772361 8f4457641385814d682f2777e611e312a5940f06
push id103897
push usermaglione.k@gmail.com
push dateMon, 26 Mar 2018 01:31:53 +0000
reviewersaswan
bugs1447903
milestone61.0a1
Bug 1447903: Part 1 - Remove locked DB tests. r?aswan These tests may have made a certain amount of sense when the DB was SQLite-based and likely to remain open for long periods of time. They make much less sense now that the DB is a JSON file that's only opened transiently. But even at that, they are complete over-kill, and try to enforce very specific behaviors for something that should only ensure non-catastrophic failure in a rare corner case. MozReview-Commit-ID: 4MvGJHDDXoP
toolkit/mozapps/extensions/test/xpcshell/head_addons.js
toolkit/mozapps/extensions/test/xpcshell/test_locked.js
toolkit/mozapps/extensions/test/xpcshell/test_locked2.js
toolkit/mozapps/extensions/test/xpcshell/test_locked_strictcompat.js
toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
--- a/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
@@ -115,19 +115,16 @@ const LEGACY_NON_RESTARTLESS_TESTS = new
   "test_distribution.js",
   "test_error.js",
   "test_filepointer.js",
   "test_install.js",
   "test_install_strictcompat.js",
   "test_invalid_install_rdf.js",
   "test_isDebuggable.js",
   "test_locale.js",
-  "test_locked.js",
-  "test_locked2.js",
-  "test_locked_strictcompat.js",
   "test_manifest.js",
   "test_migrate_state_prefs.js",
   "test_onPropertyChanged_appDisabled.js",
   "test_proxies.js",
   "test_safemode.js",
   "test_sideloads.js",
   "test_signed_verify.js",
   "test_softblocked.js",
deleted file mode 100755
--- a/toolkit/mozapps/extensions/test/xpcshell/test_locked.js
+++ /dev/null
@@ -1,551 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Checks that we rebuild something sensible from a corrupt database
-
-ChromeUtils.import("resource://testing-common/httpd.js");
-ChromeUtils.import("resource://gre/modules/osfile.jsm");
-
-var testserver = new HttpServer();
-testserver.start(-1);
-gPort = testserver.identity.primaryPort;
-mapFile("/data/test_corrupt.json", testserver);
-testserver.registerDirectory("/addons/", do_get_file("addons"));
-
-// The test extension uses an insecure update url.
-Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
-Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, false);
-
-// Will be enabled
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will be disabled
-var addon2 = {
-  id: "addon2@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 2",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will get a compatibility update and stay enabled
-var addon3 = {
-  id: "addon3@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 3",
-  updateURL: "http://localhost:" + gPort + "/data/test_corrupt.json",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Will get a compatibility update and be enabled
-var addon4 = {
-  id: "addon4@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 4",
-  updateURL: "http://localhost:" + gPort + "/data/test_corrupt.json",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Would stay incompatible with strict compat
-var addon5 = {
-  id: "addon5@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 5",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Enabled bootstrapped
-var addon6 = {
-  id: "addon6@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 6",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Disabled bootstrapped
-var addon7 = {
-  id: "addon7@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 7",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// The default theme
-var theme1 = {
-  id: "theme1@tests.mozilla.org",
-  version: "1.0",
-  name: "Theme 1",
-  internalName: "classic/1.0",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// The selected theme
-var theme2 = {
-  manifest: {
-    manifest_version: 2,
-    name: "Theme 2",
-    version: "1.0",
-    theme: { images: { headerURL: "example.png" } },
-    applications: {
-      gecko: {
-        id: "theme2@tests.mozilla.org",
-      },
-    },
-  },
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-add_task(async function init() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  writeInstallRDFForExtension(addon2, profileDir);
-  writeInstallRDFForExtension(addon3, profileDir);
-  writeInstallRDFForExtension(addon4, profileDir);
-  writeInstallRDFForExtension(addon5, profileDir);
-  writeInstallRDFForExtension(addon6, profileDir);
-  writeInstallRDFForExtension(addon7, profileDir);
-  writeInstallRDFForExtension(theme1, profileDir);
-  let theme2XPI = createTempWebExtensionFile(theme2);
-  await AddonTestUtils.manuallyInstall(theme2XPI);
-
-  // Startup the profile and setup the initial state
-  startupManager();
-
-  // New profile so new add-ons are ignored
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-  let [a2, a3, a4, a7, t2] =
-    await promiseAddonsByIDs(["addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon7@tests.mozilla.org",
-                              "theme2@tests.mozilla.org"]);
-
-    await new Promise(resolve => {
-    // Set up the initial state
-    a2.userDisabled = true;
-    a4.userDisabled = true;
-    a7.userDisabled = true;
-    t2.userDisabled = false;
-    a3.findUpdates({
-      onUpdateFinished() {
-        a4.findUpdates({
-          onUpdateFinished() {
-            // Let the updates finish before restarting the manager
-            resolve();
-          }
-        }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-      }
-    }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-
-  });
-});
-
-
-add_task(async function run_test_1() {
-  restartManager();
-
-  let [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org",
-                              "addon6@tests.mozilla.org",
-                              "addon7@tests.mozilla.org",
-                              "theme1@tests.mozilla.org",
-                              "theme2@tests.mozilla.org"]);
-
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(!a2.isActive);
-  Assert.ok(a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(a3.isActive);
-  Assert.ok(!a3.userDisabled);
-  Assert.ok(!a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-  Assert.notEqual(a4, null);
-  Assert.ok(!a4.isActive);
-  Assert.ok(a4.userDisabled);
-  Assert.ok(!a4.appDisabled);
-  Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-  Assert.notEqual(a5, null);
-  Assert.ok(a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(!a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a7, null);
-  Assert.ok(!a7.isActive);
-  Assert.ok(a7.userDisabled);
-  Assert.ok(!a7.appDisabled);
-  Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(t1, null);
-  Assert.ok(!t1.isActive);
-  Assert.ok(t1.userDisabled);
-  Assert.ok(!t1.appDisabled);
-  Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-  // Disabled due to bug 1394117
-  // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-  Assert.notEqual(t2, null);
-  Assert.ok(t2.isActive);
-  Assert.ok(!t2.userDisabled);
-  Assert.ok(!t2.appDisabled);
-  Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-  // Disabled due to bug 1394117
-  // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-  // Open another handle on the JSON DB with as much Unix and Windows locking
-  // as we can to simulate some other process interfering with it
-  shutdownManager();
-  info("Locking " + gExtensionsJSON.path);
-  let options = {
-    winShare: 0
-  };
-  if (OS.Constants.libc.O_EXLOCK)
-    options.unixFlags = OS.Constants.libc.O_EXLOCK;
-
-  let file = await OS.File.open(gExtensionsJSON.path, {read: true, write: true, existing: true}, options);
-
-  let filePermissions = gExtensionsJSON.permissions;
-  if (!OS.Constants.Win) {
-    gExtensionsJSON.permissions = 0;
-  }
-  startupManager(false);
-
-  // Shouldn't have seen any startup changes
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-  // Accessing the add-ons should open and recover the database
-  [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org",
-                              "addon6@tests.mozilla.org",
-                              "addon7@tests.mozilla.org",
-                              "theme1@tests.mozilla.org",
-                              "theme2@tests.mozilla.org"]);
-
-   // Should be correctly recovered
-   Assert.notEqual(a1, null);
-   Assert.ok(a1.isActive);
-   Assert.ok(!a1.userDisabled);
-   Assert.ok(!a1.appDisabled);
-   Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-   // Should be correctly recovered
-   Assert.notEqual(a2, null);
-   Assert.ok(!a2.isActive);
-   Assert.ok(a2.userDisabled);
-   Assert.ok(!a2.appDisabled);
-   Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-   // The compatibility update won't be recovered but it should still be
-   // active for this session
-   Assert.notEqual(a3, null);
-   Assert.ok(a3.isActive);
-   Assert.ok(!a3.userDisabled);
-   Assert.ok(!a3.appDisabled);
-   Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-   // The compatibility update won't be recovered and with strict
-   // compatibility it would not have been able to tell that it was
-   // previously userDisabled. However, without strict compat, it wasn't
-   // appDisabled, so it knows it must have been userDisabled.
-   Assert.notEqual(a4, null);
-   Assert.ok(!a4.isActive);
-   Assert.ok(a4.userDisabled);
-   Assert.ok(!a4.appDisabled);
-   Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-   Assert.notEqual(a5, null);
-   Assert.ok(a5.isActive);
-   Assert.ok(!a5.userDisabled);
-   Assert.ok(!a5.appDisabled);
-   Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-   Assert.notEqual(a6, null);
-   Assert.ok(a6.isActive);
-   Assert.ok(!a6.userDisabled);
-   Assert.ok(!a6.appDisabled);
-   Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-   Assert.notEqual(a7, null);
-   Assert.ok(!a7.isActive);
-   Assert.ok(a7.userDisabled);
-   Assert.ok(!a7.appDisabled);
-   Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-   // Should be correctly recovered
-   Assert.notEqual(t1, null);
-   // Disabled due to bug 1394117
-   // do_check_false(t1.isActive);
-   // do_check_true(t1.userDisabled);
-   Assert.ok(!t1.appDisabled);
-   Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-   // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-   // Should be correctly recovered
-   Assert.notEqual(t2, null);
-   Assert.ok(t2.isActive);
-   // Disabled due to bug 1394117
-   // do_check_false(t2.userDisabled);
-   Assert.ok(!t2.appDisabled);
-   // do_check_eq(t2.pendingOperations, AddonManager.PENDING_NONE);
-   // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-   // Restarting will actually apply changes to extensions.ini which will
-   // then be put into the in-memory database when we next fail to load the
-   // real thing
-   try {
-     shutdownManager();
-   } catch (e) {
-     // We're expecting an error here.
-   }
-   startupManager(false);
-
-   // Shouldn't have seen any startup changes
-   check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-   [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-     await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org",
-                               "addon5@tests.mozilla.org",
-                               "addon6@tests.mozilla.org",
-                               "addon7@tests.mozilla.org",
-                               "theme1@tests.mozilla.org",
-                               "theme2@tests.mozilla.org"]);
-
-   Assert.notEqual(a1, null);
-   Assert.ok(a1.isActive);
-   Assert.ok(!a1.userDisabled);
-   Assert.ok(!a1.appDisabled);
-   Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-   Assert.notEqual(a2, null);
-   Assert.ok(!a2.isActive);
-   Assert.ok(a2.userDisabled);
-   Assert.ok(!a2.appDisabled);
-   Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-   Assert.notEqual(a3, null);
-   Assert.ok(a3.isActive);
-   Assert.ok(!a3.userDisabled);
-   Assert.ok(!a3.appDisabled);
-   Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-   Assert.notEqual(a4, null);
-   Assert.ok(!a4.isActive);
-   Assert.ok(a4.userDisabled);
-   Assert.ok(!a4.appDisabled);
-   Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-   Assert.notEqual(a5, null);
-   Assert.ok(a5.isActive);
-   Assert.ok(!a5.userDisabled);
-   Assert.ok(!a5.appDisabled);
-   Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-   Assert.notEqual(a6, null);
-   Assert.ok(a6.isActive);
-   Assert.ok(!a6.userDisabled);
-   Assert.ok(!a6.appDisabled);
-   Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-   Assert.notEqual(a7, null);
-   Assert.ok(!a7.isActive);
-   Assert.ok(a7.userDisabled);
-   Assert.ok(!a7.appDisabled);
-   Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-   Assert.notEqual(t1, null);
-   // Disabled due to bug 1394117
-   // do_check_false(t1.isActive);
-   // do_check_true(t1.userDisabled);
-   Assert.ok(!t1.appDisabled);
-   Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-   // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-   Assert.notEqual(t2, null);
-   // Disabled due to bug 1394117
-   // do_check_true(t2.isActive);
-   // do_check_false(t2.userDisabled);
-   Assert.ok(!t2.appDisabled);
-   Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-   // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-   // After allowing access to the original DB things should go back to as
-   // they were previously
-   try {
-     shutdownManager();
-   } catch (e) {
-     // We're expecting an error here.
-   }
-   info("Unlocking " + gExtensionsJSON.path);
-   await file.close();
-   gExtensionsJSON.permissions = filePermissions;
-   await promiseStartupManager();
-
-   // Shouldn't have seen any startup changes
-   check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-   [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-     await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org",
-                               "addon5@tests.mozilla.org",
-                               "addon6@tests.mozilla.org",
-                               "addon7@tests.mozilla.org",
-                               "theme1@tests.mozilla.org",
-                               "theme2@tests.mozilla.org"]);
-
-   Assert.notEqual(a1, null);
-   Assert.ok(a1.isActive);
-   Assert.ok(!a1.userDisabled);
-   Assert.ok(!a1.appDisabled);
-   Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-   Assert.notEqual(a2, null);
-   Assert.ok(!a2.isActive);
-   Assert.ok(a2.userDisabled);
-   Assert.ok(!a2.appDisabled);
-   Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-   Assert.notEqual(a3, null);
-   Assert.ok(a3.isActive);
-   Assert.ok(!a3.userDisabled);
-   Assert.ok(!a3.appDisabled);
-   Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-   Assert.notEqual(a4, null);
-   Assert.ok(!a4.isActive);
-   Assert.ok(a4.userDisabled);
-   Assert.ok(!a4.appDisabled);
-   Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-   Assert.notEqual(a5, null);
-   Assert.ok(a5.isActive);
-   Assert.ok(!a5.userDisabled);
-   Assert.ok(!a5.appDisabled);
-   Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-   Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-   Assert.notEqual(a6, null);
-   Assert.ok(a6.isActive);
-   Assert.ok(!a6.userDisabled);
-   Assert.ok(!a6.appDisabled);
-   Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-   Assert.notEqual(a7, null);
-   Assert.ok(!a7.isActive);
-   Assert.ok(a7.userDisabled);
-   Assert.ok(!a7.appDisabled);
-   Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-   Assert.notEqual(t1, null);
-   // Disabled due to bug 1394117
-   // do_check_false(t1.isActive);
-   // do_check_true(t1.userDisabled);
-   Assert.ok(!t1.appDisabled);
-   Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-   // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-   Assert.notEqual(t2, null);
-   // Disabled due to bug 1394117
-   // do_check_true(t2.isActive);
-   // do_check_false(t2.userDisabled);
-   Assert.ok(!t2.appDisabled);
-   Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-   // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-   try {
-     shutdownManager();
-   } catch (e) {
-     // We're expecting an error here.
-   }
-});
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_locked2.js
+++ /dev/null
@@ -1,292 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Checks that we handle a locked database when there are extension changes
-// in progress
-
-ChromeUtils.import("resource://gre/modules/osfile.jsm");
-
-// Will be left alone
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will be enabled
-var addon2 = {
-  id: "addon2@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 2",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will be disabled
-var addon3 = {
-  id: "addon3@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 3",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will be uninstalled
-var addon4 = {
-  id: "addon4@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 4",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-
-// Will be updated
-var addon5 = {
-  id: "addon5@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 5",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-add_task(async function() {
-
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  writeInstallRDFForExtension(addon2, profileDir);
-  writeInstallRDFForExtension(addon3, profileDir);
-  writeInstallRDFForExtension(addon4, profileDir);
-  writeInstallRDFForExtension(addon5, profileDir);
-
-  // Make it look like add-on 5 was installed some time in the past so the update is
-  // detected
-  let path = getFileForAddon(profileDir, addon5.id).path;
-  await promiseSetExtensionModifiedTime(path, Date.now() - (60000));
-
-  // Startup the profile and setup the initial state
-  startupManager();
-
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-  check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
-
-  let a1, a2, a3, a4, a5, a6;
-
-  [a2] = await promiseAddonsByIDs(["addon2@tests.mozilla.org"]);
-  a2.userDisabled = true;
-
-  restartManager();
-
-  [a1, a2, a3, a4, a5] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org"]);
-
-  a2.userDisabled = false;
-  a3.userDisabled = true;
-  a4.uninstall();
-
-  await promiseInstallAllFiles([do_get_addon("test_locked2_5"),
-                                do_get_addon("test_locked2_6")]);
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(!a2.isActive);
-  Assert.ok(!a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_ENABLE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(a3.isActive);
-  Assert.ok(a3.userDisabled);
-  Assert.ok(!a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_DISABLE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-  Assert.notEqual(a4, null);
-  Assert.ok(a4.isActive);
-  Assert.ok(!a4.userDisabled);
-  Assert.ok(!a4.appDisabled);
-  Assert.equal(a4.pendingOperations, AddonManager.PENDING_UNINSTALL);
-  Assert.ok(isExtensionInAddonsList(profileDir, a4.id));
-
-  Assert.notEqual(a5, null);
-  Assert.equal(a5.version, "1.0");
-  Assert.ok(a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(!a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_UPGRADE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-  // Open another handle on the JSON DB with as much Unix and Windows locking
-  // as we can to simulate some other process interfering with it
-  shutdownManager();
-  info("Locking " + gExtensionsJSON.path);
-  let options = {
-    winShare: 0
-  };
-  if (OS.Constants.libc.O_EXLOCK)
-    options.unixFlags = OS.Constants.libc.O_EXLOCK;
-
-  let file = await OS.File.open(gExtensionsJSON.path, {read: true, write: true, existing: true}, options);
-
-  let filePermissions = gExtensionsJSON.permissions;
-  if (!OS.Constants.Win) {
-    gExtensionsJSON.permissions = 0;
-  }
-  await promiseStartupManager(false);
-
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-  check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
-
-  [a1, a2, a3, a4, a5, a6] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org",
-                              "addon6@tests.mozilla.org"]);
-
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(a2.isActive);
-  Assert.ok(!a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(!a3.isActive);
-  Assert.ok(a3.userDisabled);
-  Assert.ok(!a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a3.id));
-
-  Assert.equal(a4, null);
-
-  Assert.notEqual(a5, null);
-  Assert.equal(a5.version, "2.0");
-  Assert.ok(a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(!a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a6.id));
-
-  // After allowing access to the original DB things should still be
-  // back how they were before the lock
-  let shutdownError;
-  try {
-    shutdownManager();
-  } catch (e) {
-    shutdownError = e;
-  }
-  await file.close();
-  gExtensionsJSON.permissions = filePermissions;
-  await promiseStartupManager();
-
-  // On Unix, we can save the DB even when the original file wasn't
-  // readable, so our changes were saved. On Windows,
-  // these things happened when we had no access to the database so
-  // they are seen as external changes when we get the database back
-  if (shutdownError) {
-    info("Previous XPI save failed");
-    check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED,
-        ["addon6@tests.mozilla.org"]);
-    check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED,
-        ["addon4@tests.mozilla.org"]);
-  } else {
-    info("Previous XPI save succeeded");
-    check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-    check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
-  }
-
-  [a1, a2, a3, a4, a5, a6] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org",
-                              "addon6@tests.mozilla.org"]);
-
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(a2.isActive);
-  Assert.ok(!a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(!a3.isActive);
-  Assert.ok(a3.userDisabled);
-  Assert.ok(!a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a3.id));
-
-  Assert.equal(a4, null);
-
-  Assert.notEqual(a5, null);
-  Assert.equal(a5.version, "2.0");
-  Assert.ok(a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(!a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a6.id));
-});
-
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_locked_strictcompat.js
+++ /dev/null
@@ -1,570 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Checks that we rebuild something sensible from a corrupt database
-
-ChromeUtils.import("resource://testing-common/httpd.js");
-ChromeUtils.import("resource://gre/modules/osfile.jsm");
-
-var testserver = new HttpServer();
-testserver.start(-1);
-gPort = testserver.identity.primaryPort;
-mapFile("/data/test_corrupt.json", testserver);
-testserver.registerDirectory("/addons/", do_get_file("addons"));
-
-// The test extension uses an insecure update url.
-Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
-Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-
-// Will be enabled
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will be disabled
-var addon2 = {
-  id: "addon2@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 2",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will get a compatibility update and be enabled
-var addon3 = {
-  id: "addon3@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 3",
-  updateURL: "http://localhost:" + gPort + "/data/test_corrupt.json",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Will get a compatibility update and be disabled
-var addon4 = {
-  id: "addon4@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 4",
-  updateURL: "http://localhost:" + gPort + "/data/test_corrupt.json",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Stays incompatible
-var addon5 = {
-  id: "addon5@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 5",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Enabled bootstrapped
-var addon6 = {
-  id: "addon6@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 6",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Disabled bootstrapped
-var addon7 = {
-  id: "addon7@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 7",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// The default theme
-var theme1 = {
-  id: "theme1@tests.mozilla.org",
-  version: "1.0",
-  name: "Theme 1",
-  internalName: "classic/1.0",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// The selected theme
-var theme2 = {
-  manifest: {
-    manifest_version: 2,
-    name: "Theme 2",
-    version: "1.0",
-    theme: { images: { headerURL: "example.png" } },
-    applications: {
-      gecko: {
-        id: "theme2@tests.mozilla.org",
-      },
-    },
-  },
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-add_task(async function init() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  writeInstallRDFForExtension(addon2, profileDir);
-  writeInstallRDFForExtension(addon3, profileDir);
-  writeInstallRDFForExtension(addon4, profileDir);
-  writeInstallRDFForExtension(addon5, profileDir);
-  writeInstallRDFForExtension(addon6, profileDir);
-  writeInstallRDFForExtension(addon7, profileDir);
-  writeInstallRDFForExtension(theme1, profileDir);
-  let theme2XPI = createTempWebExtensionFile(theme2);
-  await AddonTestUtils.manuallyInstall(theme2XPI);
-
-  // Startup the profile and setup the initial state
-  await promiseStartupManager();
-
-  // New profile so new add-ons are ignored
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-  let [a2, a3, a4, a7, t2] =
-    await promiseAddonsByIDs(["addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon7@tests.mozilla.org",
-                              "theme2@tests.mozilla.org"]);
-
-  // Set up the initial state
-  await new Promise(resolve => {
-
-    a2.userDisabled = true;
-    a4.userDisabled = true;
-    a7.userDisabled = true;
-    t2.userDisabled = false;
-    a3.findUpdates({
-      onUpdateFinished() {
-        a4.findUpdates({
-          onUpdateFinished() {
-            resolve();
-          }
-        }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-      }
-    }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-  });
-});
-
-add_task(async function run_test_1() {
-  let a1, a2, a3, a4, a5, a6, a7, t1, t2;
-
-  restartManager();
-  [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                             "addon2@tests.mozilla.org",
-                             "addon3@tests.mozilla.org",
-                             "addon4@tests.mozilla.org",
-                             "addon5@tests.mozilla.org",
-                             "addon6@tests.mozilla.org",
-                             "addon7@tests.mozilla.org",
-                             "theme1@tests.mozilla.org",
-                             "theme2@tests.mozilla.org"]);
-
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(!a2.isActive);
-  Assert.ok(a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(a3.isActive);
-  Assert.ok(!a3.userDisabled);
-  Assert.ok(!a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-  Assert.notEqual(a4, null);
-  Assert.ok(!a4.isActive);
-  Assert.ok(a4.userDisabled);
-  Assert.ok(!a4.appDisabled);
-  Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-  Assert.notEqual(a5, null);
-  Assert.ok(!a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a7, null);
-  Assert.ok(!a7.isActive);
-  Assert.ok(a7.userDisabled);
-  Assert.ok(!a7.appDisabled);
-  Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(t1, null);
-  Assert.ok(!t1.isActive);
-  Assert.ok(t1.userDisabled);
-  Assert.ok(!t1.appDisabled);
-  Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-  // Disabled due to bug 1394117
-  // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-  Assert.notEqual(t2, null);
-  Assert.ok(t2.isActive);
-  Assert.ok(!t2.userDisabled);
-  Assert.ok(!t2.appDisabled);
-  Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-  // Disabled due to bug 1394117
-  // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-  // Open another handle on the JSON DB with as much Unix and Windows locking
-  // as we can to simulate some other process interfering with it
-  shutdownManager();
-  info("Locking " + gExtensionsJSON.path);
-  let options = {
-    winShare: 0
-  };
-  if (OS.Constants.libc.O_EXLOCK)
-    options.unixFlags = OS.Constants.libc.O_EXLOCK;
-
-  let file = await OS.File.open(gExtensionsJSON.path, {read: true, write: true, existing: true}, options);
-
-  let filePermissions = gExtensionsJSON.permissions;
-  if (!OS.Constants.Win) {
-    gExtensionsJSON.permissions = 0;
-  }
-  await promiseStartupManager(false);
-
-  // Shouldn't have seen any startup changes
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-  // Accessing the add-ons should open and recover the database
-  [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org",
-                              "addon6@tests.mozilla.org",
-                              "addon7@tests.mozilla.org",
-                              "theme1@tests.mozilla.org",
-                              "theme2@tests.mozilla.org"]);
-
-  // Should be correctly recovered
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  // Should be correctly recovered
-  Assert.notEqual(a2, null);
-  Assert.ok(!a2.isActive);
-  Assert.ok(a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-  // The compatibility update won't be recovered but it should still be
-  // active for this session
-  Assert.notEqual(a3, null);
-  Assert.ok(a3.isActive);
-  Assert.ok(!a3.userDisabled);
-  Assert.ok(a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_DISABLE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-  // The compatibility update won't be recovered and it will not have been
-  // able to tell that it was previously userDisabled
-  Assert.notEqual(a4, null);
-  Assert.ok(!a4.isActive);
-  Assert.ok(!a4.userDisabled);
-  Assert.ok(a4.appDisabled);
-  Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-  Assert.notEqual(a5, null);
-  Assert.ok(!a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a7, null);
-  Assert.ok(!a7.isActive);
-  Assert.ok(a7.userDisabled);
-  Assert.ok(!a7.appDisabled);
-  Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-  // Should be correctly recovered
-  Assert.notEqual(t1, null);
-  // Disabled due to bug 1394117
-  // do_check_false(t1.isActive);
-  // do_check_true(t1.userDisabled);
-  Assert.ok(!t1.appDisabled);
-  Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-  // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-  // Should be correctly recovered
-  Assert.notEqual(t2, null);
-  Assert.ok(t2.isActive);
-  // Disabled due to bug 1394117
-  // do_check_false(t2.userDisabled);
-  Assert.ok(!t2.appDisabled);
-  // do_check_eq(t2.pendingOperations, AddonManager.PENDING_NONE);
-  // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-  // Restarting will actually apply changes to extensions.ini which will
-  // then be put into the in-memory database when we next fail to load the
-  // real thing
-  try {
-    shutdownManager();
-  } catch (e) {
-    // We're expecting an error here.
-  }
-  await promiseStartupManager(false);
-
-  // Shouldn't have seen any startup changes
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-  [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org",
-                               "addon5@tests.mozilla.org",
-                               "addon6@tests.mozilla.org",
-                               "addon7@tests.mozilla.org",
-                               "theme1@tests.mozilla.org",
-                               "theme2@tests.mozilla.org"]);
-
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(!a2.isActive);
-  Assert.ok(a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(!a3.isActive);
-  Assert.ok(!a3.userDisabled);
-  Assert.ok(a3.appDisabled);
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a3.id));
-
-  Assert.notEqual(a4, null);
-  Assert.ok(!a4.isActive);
-  Assert.ok(!a4.userDisabled);
-  Assert.ok(a4.appDisabled);
-  Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-
-  Assert.notEqual(a5, null);
-  Assert.ok(!a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a7, null);
-  Assert.ok(!a7.isActive);
-  Assert.ok(a7.userDisabled);
-  Assert.ok(!a7.appDisabled);
-  Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(t1, null);
-  // Disabled due to bug 1394117
-  // do_check_false(t1.isActive);
-  //  do_check_true(t1.userDisabled);
-  Assert.ok(!t1.appDisabled);
-  Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-  // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-  Assert.notEqual(t2, null);
-  // Disabled due to bug 1394117
-  // do_check_true(t2.isActive);
-  // do_check_false(t2.userDisabled);
-  Assert.ok(!t2.appDisabled);
-  Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-  // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-  // After allowing access to the original DB things should go back to as
-  // back how they were before the lock
-  let shutdownError;
-  try {
-    shutdownManager();
-  } catch (e) {
-    shutdownError = e;
-  }
-  info("Unlocking " + gExtensionsJSON.path);
-  await file.close();
-  gExtensionsJSON.permissions = filePermissions;
-  await promiseStartupManager(false);
-
-  // Shouldn't have seen any startup changes
-  check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
-
-  [a1, a2, a3, a4, a5, a6, a7, t1, t2] =
-    await promiseAddonsByIDs(["addon1@tests.mozilla.org",
-                              "addon2@tests.mozilla.org",
-                              "addon3@tests.mozilla.org",
-                              "addon4@tests.mozilla.org",
-                              "addon5@tests.mozilla.org",
-                              "addon6@tests.mozilla.org",
-                              "addon7@tests.mozilla.org",
-                              "theme1@tests.mozilla.org",
-                              "theme2@tests.mozilla.org"]);
-
-  Assert.notEqual(a1, null);
-  Assert.ok(a1.isActive);
-  Assert.ok(!a1.userDisabled);
-  Assert.ok(!a1.appDisabled);
-  Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-  Assert.notEqual(a2, null);
-  Assert.ok(!a2.isActive);
-  Assert.ok(a2.userDisabled);
-  Assert.ok(!a2.appDisabled);
-  Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a2.id));
-
-  Assert.notEqual(a3, null);
-  Assert.ok(!a3.userDisabled);
-  // On Unix, we may be able to save our changes over the locked DB so we
-  // remember that this extension was changed to disabled. On Windows we
-  // couldn't replace the old DB so we read the older version of the DB
-  // where the extension is enabled
-  if (shutdownError) {
-    info("XPI save failed");
-    Assert.ok(a3.isActive);
-    Assert.ok(!a3.appDisabled);
-    Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-  } else {
-    info("XPI save succeeded");
-    Assert.ok(!a3.isActive);
-    Assert.ok(a3.appDisabled);
-    Assert.ok(!isExtensionInAddonsList(profileDir, a3.id));
-  }
-  Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a4, null);
-  Assert.ok(!a4.isActive);
-  // The reverse of the platform difference for a3 - Unix should
-  // stay the same as the last iteration because the save succeeded,
-  // Windows should still say userDisabled
-  if (OS.Constants.Win) {
-    Assert.ok(a4.userDisabled);
-    Assert.ok(!a4.appDisabled);
-  } else {
-    Assert.ok(!a4.userDisabled);
-    Assert.ok(a4.appDisabled);
-  }
-  Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
-  Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a5, null);
-  Assert.ok(!a5.isActive);
-  Assert.ok(!a5.userDisabled);
-  Assert.ok(a5.appDisabled);
-  Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-  Assert.ok(!isExtensionInAddonsList(profileDir, a5.id));
-
-  Assert.notEqual(a6, null);
-  Assert.ok(a6.isActive);
-  Assert.ok(!a6.userDisabled);
-  Assert.ok(!a6.appDisabled);
-  Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(a7, null);
-  Assert.ok(!a7.isActive);
-  Assert.ok(a7.userDisabled);
-  Assert.ok(!a7.appDisabled);
-  Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-  Assert.notEqual(t1, null);
-  // Disabled due to bug 1394117
-  // do_check_false(t1.isActive);
-  // do_check_true(t1.userDisabled);
-  Assert.ok(!t1.appDisabled);
-  Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-  // do_check_false(isThemeInAddonsList(profileDir, t1.id));
-
-  Assert.notEqual(t2, null);
-  // Disabled due to bug 1394117
-  // do_check_true(t2.isActive);
-  // do_check_false(t2.userDisabled);
-  Assert.ok(!t2.appDisabled);
-  Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-  // do_check_true(isThemeInAddonsList(profileDir, t2.id));
-
-  try {
-    shutdownManager();
-  } catch (e) {
-    // An error is expected here.
-  }
-});
-
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -259,19 +259,16 @@ tags = blocklist
 skip-if = os == "android"
 [test_install_strictcompat.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 [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_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