Bug 1257565 - move blocklist tests to their own dir so we can easily keep them working and separate from tests for the new implementation, r=aswan
authorGijs Kruitbosch <gijskruitbosch@gmail.com>
Tue, 07 May 2019 00:55:02 +0000
changeset 531621 9ba2aa4a61437e0dd44dc8c5b48d3961b7b8ace1
parent 531620 5268e93ef3483469953bf60e346af77b16687935
child 531622 f960290161ab3be6793e7eabc27d34573dea9a6e
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersaswan
bugs1257565
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1257565 - move blocklist tests to their own dir so we can easily keep them working and separate from tests for the new implementation, r=aswan Differential Revision: https://phabricator.services.mozilla.com/D29831
toolkit/mozapps/extensions/test/moz.build
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_appversion.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_gfx.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_metadata_filters.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_osabi.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_flashonly.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_outdated.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_regexp.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_severities.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_prefs.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_severities.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_url_parameters.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_url_ping_count.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklistchange.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_No_Comparison.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_match.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_mismatch_OSVersion.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Version.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js
toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
toolkit/mozapps/extensions/test/xpcshell/test_pluginBlocklistCtp.js
toolkit/mozapps/extensions/test/xpcshell/test_pluginInfoURL.js
toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/head.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_appversion.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_gfx.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_metadata_filters.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_osabi.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_flashonly.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_outdated.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_regexp.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_severities.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_prefs.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_severities.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_url_parameters.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_url_ping_count.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklistchange.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Device.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_DriverNew.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_DriverNew.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_DriverOld.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_OK.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_GTE_DriverOld.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_GTE_OK.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_No_Comparison.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OK.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OS.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_match.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_mismatch_OSVersion.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Vendor.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Version.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_prefs.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_overrideblocklist.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_pluginBlocklistCtp.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_pluginInfoURL.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_softblocked.js
toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/xpcshell.ini
toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
--- a/toolkit/mozapps/extensions/test/moz.build
+++ b/toolkit/mozapps/extensions/test/moz.build
@@ -5,11 +5,12 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += ['browser']
 
 BROWSER_CHROME_MANIFESTS += ['xpinstall/browser.ini']
 MOCHITEST_MANIFESTS += ['mochitest/mochitest.ini']
 
 XPCSHELL_TESTS_MANIFESTS += [
+    'xpcshell/xml-blocklist/xpcshell.ini',
     'xpcshell/xpcshell-unpack.ini',
     'xpcshell/xpcshell.ini',
 ]
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/head.js
@@ -0,0 +1,6 @@
+// Appease eslint.
+/* import-globals-from ../head_addons.js */
+{
+  let {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+  Services.prefs.setBoolPref("extensions.blocklist.useXML", true);
+}
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_appversion.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_appversion.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_appversion.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_appversion.js
@@ -1,17 +1,17 @@
 /* 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/.
  */
 
 const Cm = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
 
 var testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
-testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/data/", do_get_file("../data"));
 
 var ADDONS = [{
   id: "test_bug449027_1@tests.mozilla.org",
   name: "Bug 449027 Addon Test 1",
   version: "5",
   start: false,
   appBlocks: false,
   toolkitBlocks: false,
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_gfx.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_gfx.js
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_metadata_filters.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_metadata_filters.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_metadata_filters.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_metadata_filters.js
@@ -5,17 +5,17 @@
 // Tests blocking of extensions by ID, name, creator, homepageURL, updateURL
 // and RegExps for each. See bug 897735.
 
 const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul";
 
 var testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = testserver.identity.primaryPort;
 
-testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/data/", do_get_file("../data"));
 
 const profileDir = gProfD.clone();
 profileDir.append("extensions");
 
 // Don't need the full interface, attempts to call other methods will just
 // throw which is just fine
 var WindowWatcher = {
   openWindow(parent, url, name, features, args) {
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_osabi.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_osabi.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_osabi.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_osabi.js
@@ -1,17 +1,17 @@
 /* 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/.
  */
 
 var testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = testserver.identity.primaryPort;
 
-testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/data/", do_get_file("../data"));
 
 const profileDir = gProfD.clone();
 profileDir.append("extensions");
 
 const ADDONS = [
   {
     id: "test_bug393285_1@tests.mozilla.org",
     name: "extension 1",
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_flashonly.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_flashonly.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_flashonly.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_flashonly.js
@@ -13,17 +13,17 @@ function get_test_plugintag() {
       return tag;
   }
   return null;
 }
 
 add_task(async function checkFlashOnlyPluginState() {
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
 
-  copyBlocklistToProfile(do_get_file("data/test_bug514327_2.xml"));
+  copyBlocklistToProfile(do_get_file("../data/test_bug514327_2.xml"));
 
   Services.prefs.setBoolPref("plugin.load_flash_only", false);
 
   var plugin = get_test_plugintag();
   if (!plugin)
     do_throw("Plugin tag not found");
 
   // run the code after the blocklist is closed
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_outdated.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_outdated.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_outdated.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_outdated.js
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const Cm = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
 
 const nsIBLS = Ci.nsIBlocklistService;
 
 var gBlocklist = null;
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 var PLUGINS = [{
   // Tests a plugin whose state goes from not-blocked, to outdated
   name: "test_bug514327_outdated",
   version: "5",
   disabled: false,
   blocklisted: false,
 }, {
@@ -62,17 +62,17 @@ let factory = XPCOMUtils.generateSinglet
 Cm.registerFactory(Components.ID("{26d32654-30c7-485d-b983-b4d2568aebba}"),
                    "Blocklist Prompt",
                    "@mozilla.org/addons/blocklist-prompt;1", factory);
 
 add_task(async function setup() {
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
 
   // initialize the blocklist with no entries
-  copyBlocklistToProfile(do_get_file("data/test_bug514327_3_empty.xml"));
+  copyBlocklistToProfile(do_get_file("../data/test_bug514327_3_empty.xml"));
 
   await promiseStartupManager();
 
   gBlocklist = Services.blocklist;
 
   // The blocklist service defers plugin request until the Blocklist
   // module loads. Make sure it loads, or we'll wait forever.
   executeSoon(() => {
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_regexp.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_regexp.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_regexp.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_regexp.js
@@ -31,17 +31,17 @@ var PLUGINS = [{
   blocklisted: false,
 }];
 
 
 add_task(async function checkBlocklistForRegexes() {
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
 
   // We cannot force the blocklist to update so just copy our test list to the profile
-  copyBlocklistToProfile(do_get_file("data/test_bug468528.xml"));
+  copyBlocklistToProfile(do_get_file("../data/test_bug468528.xml"));
 
   var {blocklist} = Services;
 
   // The blocklist service defers plugin request until the Blocklist
   // module loads. Make sure it loads, or we'll wait forever.
   executeSoon(() => {
     void Blocklist;
   });
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_severities.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_severities.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_plugin_severities.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_plugin_severities.js
@@ -31,17 +31,17 @@ var PLUGINS = [{
   blocklisted: false,
   outdated: false,
 }];
 
 
 add_task(async function checkBlocklistSeverities() {
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
 
-  copyBlocklistToProfile(do_get_file("data/test_bug514327_1.xml"));
+  copyBlocklistToProfile(do_get_file("../data/test_bug514327_1.xml"));
 
   var {blocklist} = Services;
 
   // The blocklist service defers plugin request until the Blocklist
   // module loads. Make sure it loads, or we'll wait forever.
   executeSoon(() => {
     void Blocklist;
   });
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_prefs.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_prefs.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_prefs.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_prefs.js
@@ -5,17 +5,17 @@
 // Tests resetting of preferences in blocklist entry when an add-on is blocked.
 // See bug 802434.
 
 const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul";
 
 var testserver = createHttpServer({hosts: ["example.com"]});
 gPort = testserver.identity.primaryPort;
 
-testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/data/", do_get_file("../data"));
 
 // A window watcher to handle the blocklist UI.
 // Don't need the full interface, attempts to call other methods will just
 // throw which is just fine
 var WindowWatcher = {
   openWindow(parent, url, name, features, args) {
     // Should be called to list the newly blocklisted items
     Assert.equal(url, URI_EXTENSION_BLOCKLIST_DIALOG);
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_severities.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_severities.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_severities.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_severities.js
@@ -1,17 +1,17 @@
 /* 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/.
  */
 
 const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul";
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 // Workaround for Bug 658720 - URL formatter can leak during xpcshell tests
 const PREF_BLOCKLIST_ITEM_URL = "extensions.blocklist.itemURL";
 Services.prefs.setCharPref(PREF_BLOCKLIST_ITEM_URL, "http://example.com/blocklist/%blockID%");
 
 async function getAddonBlocklistURL(addon) {
   let entry = await Blocklist.getAddonBlocklistEntry(addon);
   return entry && entry.url;
@@ -72,17 +72,17 @@ var ADDONS = [{
   version: "5",
   appVersion: "3",
 }];
 
 // Copy the initial blocklist into the profile to check add-ons start in the
 // right state.
 // Make sure to do this before we touch the plugin service, since that
 // will force a blocklist load.
-copyBlocklistToProfile(do_get_file("data/bug455906_start.xml"));
+copyBlocklistToProfile(do_get_file("../data/bug455906_start.xml"));
 
 var PLUGINS = [
   // Tests how the blocklist affects a disabled plugin
   new MockPluginTag({name: "test_bug455906_1", version: "5"}, Ci.nsIPluginTag.STATE_DISABLED),
   // Tests how the blocklist affects an enabled plugin
   new MockPluginTag({name: "test_bug455906_2", version: "5"}, Ci.nsIPluginTag.STATE_ENABLED),
   // Tests how the blocklist affects an enabled plugin, to be disabled by the notification
   new MockPluginTag({name: "test_bug455906_3", version: "5"}, Ci.nsIPluginTag.STATE_ENABLED),
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_url_parameters.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_url_parameters.js
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklist_url_ping_count.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklist_url_ping_count.js
rename from toolkit/mozapps/extensions/test/xpcshell/test_blocklistchange.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklistchange.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklistchange.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_blocklistchange.js
@@ -27,17 +27,17 @@ const URI_EXTENSION_BLOCKLIST_DIALOG = "
 
 // Allow insecure updates
 Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false);
 
 Services.prefs.setBoolPref("extensions.webextPermissionPrompts", false);
 
 var testserver = createHttpServer({hosts: ["example.com"]});
 
-testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/data/", do_get_file("../data"));
 
 const XPIS = {};
 
 const ADDON_IDS = ["softblock1@tests.mozilla.org",
                    "softblock2@tests.mozilla.org",
                    "softblock3@tests.mozilla.org",
                    "softblock4@tests.mozilla.org",
                    "hardblock@tests.mozilla.org",
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Device.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Device.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which differs only on device ID, but otherwise
 // exactly matches the blacklist entry, is not blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_DriverNew.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_DriverNew.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a new-enough driver bypasses the blacklist, even if the rest of
 // the attributes match the blacklist entry.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_DriverNew.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_DriverNew.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which is newer than the equal
 // blacklist entry is allowed.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_DriverOld.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_DriverOld.js
@@ -5,17 +5,17 @@
 // This should eventually be moved to head_addons.js
 // Test whether a machine which is older than the equal
 // blacklist entry is correctly allowed.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_OK.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Equal_OK.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which exactly matches the equal
 // blacklist entry is successfully blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_GTE_DriverOld.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_GTE_DriverOld.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which is lower than the greater-than-or-equal
 // blacklist entry is allowed.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_GTE_OK.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_GTE_OK.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which exactly matches the greater-than-or-equal
 // blacklist entry is successfully blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_No_Comparison.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_No_Comparison.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_No_Comparison.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_No_Comparison.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which exactly matches the blacklist entry is
 // successfully blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OK.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OK.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which exactly matches the blacklist entry is
 // successfully blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OS.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OS.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which differs only on OS version, but otherwise
 // exactly matches the blacklist entry, is not blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_match.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_match.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_match.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_match.js
@@ -3,17 +3,17 @@
  */
 
 // This should eventually be moved to head_addons.js
 // Test whether new OS versions are matched properly.
 // Uses test_gfxBlacklist_OS.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_mismatch_DriverVersion.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether blocklists specifying new OSeswcorrectly don't block if driver
 // versions are appropriately up-to-date.
 // Uses test_gfxBlacklist_OS.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_mismatch_OSVersion.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_mismatch_OSVersion.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OSVersion_mismatch_OSVersion.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_OSVersion_mismatch_OSVersion.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether old OS versions are not matched when the blacklist contains
 // only new OS versions.
 // Uses test_gfxBlacklist_OS.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Vendor.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Vendor.js
@@ -4,17 +4,17 @@
 
 // This should eventually be moved to head_addons.js
 // Test whether a machine which differs only on vendor, but otherwise
 // exactly matches the blacklist entry, is not blocked.
 // Uses test_gfxBlacklist.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Version.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Version.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Version.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_Version.js
@@ -3,17 +3,17 @@
  */
 
 // Test whether a machine which exactly matches the blacklist entry is
 // successfully blocked.
 // Uses test_gfxBlacklist_AllOS.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_prefs.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_gfxBlacklist_prefs.js
@@ -3,17 +3,17 @@
  */
 
 // Test whether the blacklist successfully adds and removes the prefs that store
 // its decisions when the remote blacklist is changed.
 // Uses test_gfxBlacklist.xml and test_gfxBlacklist2.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 function load_blocklist(file) {
   Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
                              gPort + "/data/" + file);
   var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
                   getService(Ci.nsITimerCallback);
   blocklist.notify(null);
 }
rename from toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_overrideblocklist.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_overrideblocklist.js
@@ -3,19 +3,19 @@
  */
 
 const KEY_PROFILEDIR                  = "ProfD";
 const KEY_APPDIR                      = "XCurProcD";
 const FILE_BLOCKLIST                  = "blocklist.xml";
 
 const PREF_BLOCKLIST_ENABLED          = "extensions.blocklist.enabled";
 
-const OLD = do_get_file("data/test_overrideblocklist/old.xml");
-const NEW = do_get_file("data/test_overrideblocklist/new.xml");
-const ANCIENT = do_get_file("data/test_overrideblocklist/ancient.xml");
+const OLD = do_get_file("../data/test_overrideblocklist/old.xml");
+const NEW = do_get_file("../data/test_overrideblocklist/new.xml");
+const ANCIENT = do_get_file("../data/test_overrideblocklist/ancient.xml");
 
 const gAppDir = FileUtils.getFile(KEY_APPDIR, []);
 
 var oldAddon = {
   id: "old@tests.mozilla.org",
   version: 1,
 };
 var newAddon = {
rename from toolkit/mozapps/extensions/test/xpcshell/test_pluginBlocklistCtp.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_pluginBlocklistCtp.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_pluginBlocklistCtp.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_pluginBlocklistCtp.js
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const nsIBLS = Ci.nsIBlocklistService;
 
 var gNotifier = null;
 var gPluginHost = null;
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
-gTestserver.registerDirectory("/data/", do_get_file("data"));
+gTestserver.registerDirectory("/data/", do_get_file("../data"));
 
 var PLUGINS = [{
   // severity=0, vulnerabilitystatus=0 -> outdated
   name: "test_plugin_0",
   version: "5",
   disabled: false,
   blocklisted: false,
 },
rename from toolkit/mozapps/extensions/test/xpcshell/test_pluginInfoURL.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_pluginInfoURL.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_pluginInfoURL.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_pluginInfoURL.js
@@ -27,17 +27,17 @@ const PLUGINS = [
   new MockPlugin("test_newVersion", "3", Ci.nsIPluginTag.STATE_ENABLED),
 ];
 
 /**
  * The entry point of the unit tests, which is also responsible of
  * copying the blocklist file to the profile folder.
  */
 add_task(async function setup() {
-  copyBlocklistToProfile(do_get_file("data/pluginInfoURL_block.xml"));
+  copyBlocklistToProfile(do_get_file("../data/pluginInfoURL_block.xml"));
 
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8");
   await promiseStartupManager();
 });
 
 /**
  * Test that the blocklist service correctly loads and returns the infoURL for
  * a plugin that matches the first entry in the blocklist.
rename from toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js
rename to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_softblocked.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/test_softblocked.js
@@ -1,15 +1,15 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
 const testserver = createHttpServer();
 gPort = testserver.identity.primaryPort;
-testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/data/", do_get_file("../data"));
 
 
 function load_blocklist(aFile) {
   return new Promise((resolve, reject) => {
     Services.obs.addObserver(function observer() {
       Services.obs.removeObserver(observer, "blocklist-updated");
 
       resolve();
copy from toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
copy to toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/xpcshell.ini
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xml-blocklist/xpcshell.ini
@@ -1,278 +1,63 @@
 [DEFAULT]
 skip-if = toolkit == 'android'
-tags = addons
-head = head_addons.js
+tags = addons blocklist
+head = head.js ../head_addons.js
 firefox-appdir = browser
-dupe-manifest =
 support-files =
-  data/**
+  ../data/**
 
-[test_AbuseReporter.js]
-[test_AddonRepository.js]
-[test_AddonRepository_cache.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_AddonRepository_langpacks.js]
-[test_AddonRepository_paging.js]
-[test_ProductAddonChecker.js]
-[test_XPIStates.js]
-[test_XPIcancel.js]
-[test_addon_manager_telemetry_events.js]
-[test_addonStartup.js]
-[test_bad_json.js]
-[test_badschema.js]
 [test_blocklist_appversion.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_gfx.js]
-tags = blocklist
 [test_blocklist_metadata_filters.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_osabi.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_plugin_flashonly.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_plugin_outdated.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_plugin_severities.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_prefs.js]
-tags = blocklist
 [test_blocklist_severities.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_url_parameters.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-tags = blocklist
 [test_blocklist_url_ping_count.js]
-tags = blocklist
 [test_blocklistchange.js]
 # Times out during parallel runs on desktop
 requesttimeoutfactor = 2
-tags = blocklist
-[test_builtin_location.js]
-[test_cacheflush.js]
-[test_childprocess.js]
-[test_compatoverrides.js]
-head = head_addons.js head_compat.js
-[test_cookies.js]
-[test_corrupt.js]
-[test_crash_annotation_quoting.js]
-[test_db_path.js]
-head =
-[test_delay_update_webextension.js]
-tags = webextensions
-[test_dependencies.js]
-[test_dictionary_webextension.js]
-[test_distribution.js]
-[test_duplicateplugins.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_error.js]
-# Bug 1508482
-skip-if = os == "win"
-[test_ext_management.js]
-tags = webextensions
-[test_general.js]
-[test_getInstallSourceFromHost.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_DriverVersion.js]
-tags = blocklist
 [test_gfxBlacklist_OSVersion_mismatch_OSVersion.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_gmpProvider.js]
-skip-if = appname != "firefox" || (os == "win" && processor == "aarch64") # bug 1536637
-[test_harness.js]
-[test_hidden.js]
-[test_install.js]
-[test_install_icons.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_isDebuggable.js]
-[test_isReady.js]
-[test_json_updatecheck.js]
-[test_locale.js]
-[test_moved_extension_metadata.js]
-skip-if = true
-[test_no_addons.js]
-[test_nodisable_hidden.js]
-[test_onPropertyChanged_appDisabled.js]
-head = head_addons.js head_compat.js
 [test_overrideblocklist.js]
 run-sequentially = Uses global XCurProcD dir.
-tags = blocklist
-[test_permissions.js]
-[test_permissions_prefs.js]
 [test_pluginBlocklistCtp.js]
 # Bug 676992: test consistently fails on Android
 fail-if = os == "android"
-tags = blocklist
 [test_pluginInfoURL.js]
-tags = blocklist
-[test_pluginchange.js]
-# PluginProvider.jsm is not shipped on Android
-skip-if = os == "android"
-[test_plugins.js]
-[test_pref_properties.js]
-[test_provider_markSafe.js]
-[test_provider_shutdown.js]
-[test_provider_unsafe_access_shutdown.js]
-[test_provider_unsafe_access_startup.js]
-[test_proxies.js]
-skip-if = require_signing
-[test_registerchrome.js]
-[test_registry.js]
-skip-if = os != 'win'
-[test_reinstall_disabled_addon.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_safemode.js]
-[test_schema_change.js]
-[test_seen.js]
-[test_shutdown.js]
-[test_sideloads.js]
-[test_signed_inject.js]
-# Bug 1394122
-skip-if = true
-[test_signed_install.js]
-[test_signed_langpack.js]
-[test_signed_long.js]
-[test_signed_updatepref.js]
-skip-if = require_signing || !allow_legacy_extensions
-[test_signed_verify.js]
 [test_softblocked.js]
-tags = blocklist
-[test_startup.js]
-# Bug 676992: test consistently fails on Android
-fail-if = os == "android"
-[test_strictcompatibility.js]
-head = head_addons.js head_compat.js
-[test_syncGUID.js]
-[test_system_allowed.js]
-head = head_addons.js head_system_addons.js
-[test_system_delay_update.js]
-head = head_addons.js head_system_addons.js
-skip-if = true # Bug 1495021
-[test_system_repository.js]
-head = head_addons.js head_system_addons.js
-[test_system_reset.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_blank.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_checkSizeHash.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_custom.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_empty.js]
-head = head_addons.js head_system_addons.js
-skip-if = true # Failing intermittently due to a race condition in the test, see bug 1348981
-[test_system_update_enterprisepolicy.js]
-head = head_addons.js head_system_addons.js
-skip-if = appname == "thunderbird"
-[test_system_update_fail.js]
-head = head_addons.js head_system_addons.js
-skip-if = true # Bug 1501879
-[test_system_update_newset.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_overlapping.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_uninstall_check.js]
-head = head_addons.js head_system_addons.js
-[test_system_update_upgrades.js]
-head = head_addons.js head_system_addons.js
-[test_temporary.js]
-skip-if = os == "win" # Bug 1469904
-tags = webextensions
-[test_trash_directory.js]
-skip-if = os != "win"
-[test_types.js]
-[test_systemaddomstartupprefs.js]
-head = head_addons.js head_system_addons.js
-[test_undouninstall.js]
-skip-if = os == "win" # Bug 1358846
-[test_update.js]
-# Bug 676992: test consistently hangs on Android; bug 1330227 - linux
-skip-if = os == "android"
-[test_updateCancel.js]
-[test_update_compatmode.js]
-head = head_addons.js head_compat.js
-[test_update_ignorecompat.js]
-skip-if = true # Bug 676922 Bug 1437697
-[test_update_noSystemAddonUpdate.js]
-head = head_addons.js head_system_addons.js
-[test_update_strictcompat.js]
-head = head_addons.js head_compat.js
-[test_update_webextensions.js]
-tags = webextensions
-[test_updatecheck.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_updatecheck_errors.js]
-[test_updateid.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_upgrade.js]
-head = head_addons.js head_compat.js
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses global XCurProcD dir.
-[test_upgrade_incompatible.js]
-[test_webextension.js]
-tags = webextensions
-[test_webextension_events.js]
-tags = webextensions
-[test_webextension_icons.js]
-tags = webextensions
-[test_webextension_install.js]
-tags = webextensions
-[test_webextension_install_syntax_error.js]
-tags = webextensions
-[test_webextension_langpack.js]
-tags = webextensions
-[test_webextension_theme.js]
-tags = webextensions
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -16,58 +16,16 @@ skip-if = os == "android"
 [test_AddonRepository_paging.js]
 [test_ProductAddonChecker.js]
 [test_XPIStates.js]
 [test_XPIcancel.js]
 [test_addon_manager_telemetry_events.js]
 [test_addonStartup.js]
 [test_bad_json.js]
 [test_badschema.js]
-[test_blocklist_appversion.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_gfx.js]
-tags = blocklist
-[test_blocklist_metadata_filters.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_osabi.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_plugin_flashonly.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_plugin_outdated.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_plugin_severities.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_prefs.js]
-tags = blocklist
-[test_blocklist_severities.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_url_parameters.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-tags = blocklist
-[test_blocklist_url_ping_count.js]
-tags = blocklist
-[test_blocklistchange.js]
-# Times out during parallel runs on desktop
-requesttimeoutfactor = 2
-tags = blocklist
 [test_builtin_location.js]
 [test_cacheflush.js]
 [test_childprocess.js]
 [test_compatoverrides.js]
 head = head_addons.js head_compat.js
 [test_cookies.js]
 [test_corrupt.js]
 [test_crash_annotation_quoting.js]
@@ -83,50 +41,16 @@ tags = webextensions
 skip-if = os == "android"
 [test_error.js]
 # Bug 1508482
 skip-if = os == "win"
 [test_ext_management.js]
 tags = webextensions
 [test_general.js]
 [test_getInstallSourceFromHost.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_DriverVersion.js]
-tags = blocklist
-[test_gfxBlacklist_OSVersion_mismatch_OSVersion.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_gmpProvider.js]
 skip-if = appname != "firefox" || (os == "win" && processor == "aarch64") # bug 1536637
 [test_harness.js]
 [test_hidden.js]
 [test_install.js]
 [test_install_icons.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
@@ -135,27 +59,18 @@ skip-if = os == "android"
 [test_json_updatecheck.js]
 [test_locale.js]
 [test_moved_extension_metadata.js]
 skip-if = true
 [test_no_addons.js]
 [test_nodisable_hidden.js]
 [test_onPropertyChanged_appDisabled.js]
 head = head_addons.js head_compat.js
-[test_overrideblocklist.js]
-run-sequentially = Uses global XCurProcD dir.
-tags = blocklist
 [test_permissions.js]
 [test_permissions_prefs.js]
-[test_pluginBlocklistCtp.js]
-# Bug 676992: test consistently fails on Android
-fail-if = os == "android"
-tags = blocklist
-[test_pluginInfoURL.js]
-tags = blocklist
 [test_pluginchange.js]
 # PluginProvider.jsm is not shipped on Android
 skip-if = os == "android"
 [test_plugins.js]
 [test_pref_properties.js]
 [test_provider_markSafe.js]
 [test_provider_shutdown.js]
 [test_provider_unsafe_access_shutdown.js]
@@ -180,18 +95,16 @@ tags = webextensions
 # Bug 1394122
 skip-if = true
 [test_signed_install.js]
 [test_signed_langpack.js]
 [test_signed_long.js]
 [test_signed_updatepref.js]
 skip-if = require_signing || !allow_legacy_extensions
 [test_signed_verify.js]
-[test_softblocked.js]
-tags = blocklist
 [test_startup.js]
 # Bug 676992: test consistently fails on Android
 fail-if = os == "android"
 [test_strictcompatibility.js]
 head = head_addons.js head_compat.js
 [test_syncGUID.js]
 [test_system_allowed.js]
 head = head_addons.js head_system_addons.js