Bug 1675349: Update tests under browser/base/content/test for the removal of plugins. r=jmathies
authorDavid Parks <daparks@mozilla.com>
Wed, 18 Nov 2020 15:56:56 +0000
changeset 557831 05e018338f4e4e42ae0efa6069abb92a8439ad4d
parent 557830 dd70b7c8df80c1814bc0d3ebd8fc2a0fcea3c26d
child 557832 e38cc205b04ccf7d48ae98d20659caa1375e4abe
push id37962
push userapavel@mozilla.com
push dateWed, 18 Nov 2020 21:51:58 +0000
treeherdermozilla-central@9d797387f57c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjmathies
bugs1675349, 797677, 926605, 1129040, 743421, 744745, 787619, 812562, 818118, 1318383, 1110887
milestone85.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 1675349: Update tests under browser/base/content/test for the removal of plugins. r=jmathies UPDATED ------- browser/base/content/test/plugins/browser_CTP_favorfallback.js Test that plugin fallback behavior is correct. Updated to reflect that plugins always show "alternate" content, which is either the user fallback of the browser's transparent fallback, regardless of the HTML. browser/base/content/test/plugins/browser_CTP_outsideScrollArea.js Test that overlay is visible (in layout sense) only if plugin is partially or completely visible. Changed to test new fallback behavior where overlay is a hidden element with "blockall" atribute. browser/base/content/test/plugins/browser_CTP_zoom.js Test that overlay is present and visible at multiple zoom levels. Adjusted to work with hidden overlay. browser/base/content/test/performance/browser_startup_mainthreadio.js Track IO done at browser startup Removed `UserPlugins.parent` from list since we no longer scan for plugins. browser/base/content/test/plugins/browser_bug797677.js bug 797677 Test that plugin instantiation fails (with PLUGIN_UNSUPPORTED and no console error) when MIME type missing. Removed the cleanup of (unused) test plugin. browser/base/content/test/contextMenu/browser_contextmenu.js Test context menu for many types of elements Removed plugin element portion. REMOVED ------- browser/base/content/test/plugins/browser_CTP_contextmenu.js Test that the CTP activate action in content menus for plugins works browser/base/content/test/plugins/browser_CTP_crashreporting.js Test that plugin crash submissions still work properly after click-to-play activation. browser/base/content/test/plugins/browser_CTP_drag_drop.js Test that plugin CTP dialog behaves correctly when dragging tab out of/into a window browser/base/content/test/plugins/browser_CTP_hide_overlay.js Test ability to close plugin "overlay" placeholder (the grey lego element) browser/base/content/test/plugins/browser_CTP_iframe.js Test that overlay can be interacted with (closed) when in an iframe browser/base/content/test/plugins/browser_CTP_nonplugins.js Bug 926605 Says it tests that non-plugin <object> elements don't show CTP but it doesn't. It tests that removing a CTP plugin from a page does not remove CTP dialog (in case, for example, page shows, then quickly removes plugin). browser/base/content/test/plugins/browser_CTP_overlay_styles.js Verify that styling on overlay elements, based on sizing, is correct. browser/base/content/test/plugins/browser_CTP_resize.js Test that a resize properly updates the overlay styling, which is only visible when large enough. browser/base/content/test/plugins/browser_CTP_shouldShowOverlay.js Test that partially obscured plugins show the overlay, properly styled (when they should). browser/base/content/test/plugins/browser_blocking.js bug 1129040 Test CTP behavior -- overlay dialog behavior, vulnerable plugin user approval, plugin's infoURL, etc. browser/base/content/test/plugins/browser_blocklist_content.js bug 1129040 Test (plugin) blocklist, including attempt to "hack" it in a content process. browser/base/content/test/plugins/browser_bug743421.js Test CTP approval persists for new plugin instances in page. browser/base/content/test/plugins/browser_bug744745.js Test that CTP notification correctly appears despite plugin with opacity: 0 !important browser/base/content/test/plugins/browser_bug787619.js bug 787619 Make sure CTP works for plugins nested inside <a></a> elements. browser/base/content/test/plugins/browser_bug812562.js bug 812562 Navigating away from, then back to a page should restore its CTP status. browser/base/content/test/plugins/browser_bug818118.js bug 818118 Test that CTP plugin and "unknown" plugin type work correctly on same page. browser/base/content/test/plugins/browser_clearplugindata.js Test clearing plugin data using Sanitizer.jsm browser/base/content/test/plugins/browser_iterate_hidden_plugins.js Bug 1318383 Test `plugins.navigator.hidden_ctp_plugin`, which hides CTP plugins from `navigator.plugins`. browser/base/content/test/plugins/browser_pluginCrashCommentAndURL.js Test plugin crash detection and reporting browser/base/content/test/plugins/browser_pluginCrashReportNonDeterminism.js Bug 1110887 Test both "plugin process crash notification" orders -- content proc before main proc and vice-versa. browser/base/content/test/plugins/browser_plugin_reloading.js Bug 1129040 Re-instantiating plugin (using `plugin.src = new_value`) should retain CTP approval. browser/base/content/test/plugins/browser_plugin_framed_domain.js Plugin CTP prompts should adopt top-level page's principal for instead of closest frame's principal. browser/base/content/test/plugins/browser_pluginnotification.js Tests many CTP interface behavior cases -- doorhangers, overlays, multiple plugin instances, CTP choices (always, allow, never) browser/base/content/test/plugins/browser_private_clicktoplay.js Make sure CTP interface works in private windows browser/base/content/test/plugins/browser_subframe_access_hidden_plugins.js Allow navigator.plugins to list plugin after CTP approval, even if it listed in `plugins.navigator.hidden_ctp_plugin` Differential Revision: https://phabricator.services.mozilla.com/D95906
browser/base/content/test/contextMenu/browser_contextmenu.js
browser/base/content/test/contextMenu/subtst_contextmenu.html
browser/base/content/test/performance/browser_startup_mainthreadio.js
browser/base/content/test/plugins/blockNoPlugins-plugins.json
browser/base/content/test/plugins/blockPluginHard-plugins.json
browser/base/content/test/plugins/blockPluginInfoURL-plugins.json
browser/base/content/test/plugins/blockPluginVulnerableNoUpdate-plugins.json
browser/base/content/test/plugins/blockPluginVulnerableUpdatable-plugins.json
browser/base/content/test/plugins/browser.ini
browser/base/content/test/plugins/browser_CTP_context_menu.js
browser/base/content/test/plugins/browser_CTP_crashreporting.js
browser/base/content/test/plugins/browser_CTP_drag_drop.js
browser/base/content/test/plugins/browser_CTP_favorfallback.js
browser/base/content/test/plugins/browser_CTP_hide_overlay.js
browser/base/content/test/plugins/browser_CTP_iframe.js
browser/base/content/test/plugins/browser_CTP_nonplugins.js
browser/base/content/test/plugins/browser_CTP_outsideScrollArea.js
browser/base/content/test/plugins/browser_CTP_overlay_styles.js
browser/base/content/test/plugins/browser_CTP_resize.js
browser/base/content/test/plugins/browser_CTP_shouldShowOverlay.js
browser/base/content/test/plugins/browser_CTP_zoom.js
browser/base/content/test/plugins/browser_blocking.js
browser/base/content/test/plugins/browser_blocklist_content.js
browser/base/content/test/plugins/browser_bug743421.js
browser/base/content/test/plugins/browser_bug744745.js
browser/base/content/test/plugins/browser_bug787619.js
browser/base/content/test/plugins/browser_bug797677.js
browser/base/content/test/plugins/browser_bug812562.js
browser/base/content/test/plugins/browser_bug818118.js
browser/base/content/test/plugins/browser_clearplugindata.html
browser/base/content/test/plugins/browser_clearplugindata.js
browser/base/content/test/plugins/browser_clearplugindata_noage.html
browser/base/content/test/plugins/browser_iterate_hidden_plugins.js
browser/base/content/test/plugins/browser_pluginCrashCommentAndURL.js
browser/base/content/test/plugins/browser_pluginCrashReportNonDeterminism.js
browser/base/content/test/plugins/browser_plugin_framed_domain.js
browser/base/content/test/plugins/browser_plugin_reloading.js
browser/base/content/test/plugins/browser_pluginnotification.js
browser/base/content/test/plugins/browser_private_clicktoplay.js
browser/base/content/test/plugins/browser_subframe_access_hidden_plugins.js
browser/base/content/test/plugins/plugin_add_dynamically.html
browser/base/content/test/plugins/plugin_alternate_content.html
browser/base/content/test/plugins/plugin_big.html
browser/base/content/test/plugins/plugin_both.html
browser/base/content/test/plugins/plugin_both2.html
browser/base/content/test/plugins/plugin_bug744745.html
browser/base/content/test/plugins/plugin_bug749455.html
browser/base/content/test/plugins/plugin_bug787619.html
browser/base/content/test/plugins/plugin_crashCommentAndURL.html
browser/base/content/test/plugins/plugin_hidden_to_visible.html
browser/base/content/test/plugins/plugin_iframe.html
browser/base/content/test/plugins/plugin_overlay_styles.html
browser/base/content/test/plugins/plugin_shouldShowOverlay.html
browser/base/content/test/plugins/plugin_small.html
browser/base/content/test/plugins/plugin_small_2.html
browser/base/content/test/plugins/plugin_syncRemoved.html
browser/base/content/test/plugins/plugin_test2.html
browser/base/content/test/plugins/plugin_two_types.html
browser/base/content/test/plugins/plugin_unknown.html
--- a/browser/base/content/test/contextMenu/browser_contextmenu.js
+++ b/browser/base/content/test/contextMenu/browser_contextmenu.js
@@ -1723,75 +1723,16 @@ add_task(async function test_select_inpu
           win.getSelection().removeAllRanges();
         });
       }
     }
   );
   */
 });
 
-add_task(async function test_click_to_play_blocked_plugin() {
-  await test_contextmenu(
-    "#test-plugin",
-    [
-      "context-navigation",
-      null,
-      [
-        "context-back",
-        false,
-        "context-forward",
-        false,
-        "context-reload",
-        true,
-        "context-bookmarkpage",
-        true,
-      ],
-      null,
-      "---",
-      null,
-      "context-ctp-play",
-      true,
-      "context-ctp-hide",
-      true,
-      "---",
-      null,
-      "context-savepage",
-      true,
-      ...(hasPocket ? ["context-pocket", true] : []),
-      "---",
-      null,
-      "context-sendpagetodevice",
-      true,
-      [],
-      null,
-      "---",
-      null,
-      "context-viewbgimage",
-      false,
-      "context-selectall",
-      true,
-      "---",
-      null,
-      "context-viewsource",
-      true,
-      "context-viewinfo",
-      true,
-    ],
-    {
-      maybeScreenshotsPresent: true,
-      preCheckContextMenuFn() {
-        setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-      },
-      postCheckContextMenuFn() {
-        getTestPlugin().enabledState = Ci.nsIPluginTag.STATE_ENABLED;
-      },
-    }
-  );
-});
-
 add_task(async function test_longdesc() {
   await test_contextmenu("#test-longdesc", [
     "context-viewimage",
     true,
     "context-copyimage-contents",
     true,
     "context-copyimage",
     true,
--- a/browser/base/content/test/contextMenu/subtst_contextmenu.html
+++ b/browser/base/content/test/contextMenu/subtst_contextmenu.html
@@ -73,17 +73,16 @@ if ("ShadowRoot" in this) {
     <menuitem></menuitem>
   </menu>
 </div>
 <div id="test-select-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</div>
 <div id="test-select-text-link">http://mozilla.com</div>
 <a id="test-image-link" href="#"><img src="ctxmenu-image.png"></a>
 <input id="test-select-input-text" type="text" value="input">
 <input id="test-select-input-text-type-password" type="password" value="password">
-<embed id="test-plugin" style="width: 200px; height: 200px;" type="application/x-test"></embed>
 <img id="test-longdesc" src="ctxmenu-image.png" longdesc="http://www.mozilla.org"></embed>
 <iframe id="test-srcdoc" width="98"  height="98" srcdoc="Hello World" style="border: 1px solid black"></iframe>
 <svg id="svg-with-link" width=10 height=10><a xlink:href="http://example.com/"><circle cx="50%" cy="50%" r="50%" fill="blue"/></a></svg>
 <svg id="svg-with-link2" width=10 height=10><a xlink:href="http://example.com/" xlink:type="simple"><circle cx="50%" cy="50%" r="50%" fill="green"/></a></svg>
 <svg id="svg-with-link3" width=10 height=10><a href="http://example.com/"><circle cx="50%" cy="50%" r="50%" fill="red"/></a></svg>
 <svg id="svg-with-relative-link" width=10 height=10><a xlink:href="/"><circle cx="50%" cy="50%" r="50%" fill="blue"/></a></svg>
 <svg id="svg-with-relative-link2" width=10 height=10><a xlink:href="/" xlink:type="simple"><circle cx="50%" cy="50%" r="50%" fill="green"/></a></svg>
 <svg id="svg-with-relative-link3" width=10 height=10><a href="/"><circle cx="50%" cy="50%" r="50%" fill="red"/></a></svg>
--- a/browser/base/content/test/performance/browser_startup_mainthreadio.js
+++ b/browser/base/content/test/performance/browser_startup_mainthreadio.js
@@ -300,22 +300,16 @@ const startupPhases = {
     },
     {
       // bug 1446012
       path: "UpdRootD:updates/0/update.status",
       condition: WIN,
       stat: 1,
     },
     {
-      // bug 1586808
-      path: "UserPlugins.parent:",
-      condition: WIN,
-      stat: 1,
-    },
-    {
       path: "XREAppFeat:formautofill@mozilla.org.xpi",
       condition: !WIN,
       stat: 1,
       close: 1,
     },
     {
       // We only hit this for new profiles.
       path: "XREAppDist:distribution.ini",
deleted file mode 100644
--- a/browser/base/content/test/plugins/blockNoPlugins-plugins.json
+++ /dev/null
@@ -1,1 +0,0 @@
-[]
\ No newline at end of file
deleted file mode 100644
--- a/browser/base/content/test/plugins/blockPluginHard-plugins.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    "matchFilename": "libnptest\\.so|nptest\\.dll|Test\\.plugin",
-    "versionRange": [
-      {
-        "severity": "2"
-      }
-    ],
-    "blockID": "p9999"
-  }
-]
\ No newline at end of file
deleted file mode 100644
--- a/browser/base/content/test/plugins/blockPluginInfoURL-plugins.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
-  {
-    "matchFilename": "libnptest\\.so|nptest\\.dll|Test\\.plugin",
-    "versionRange": [
-      {
-        "severity": "2"
-      }
-    ],
-    "blockID": "p9999",
-    "infoURL": "http://test.url.com/"
-  }
-]
\ No newline at end of file
deleted file mode 100644
--- a/browser/base/content/test/plugins/blockPluginVulnerableNoUpdate-plugins.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
-  {
-    "matchFilename": "libnptest\\.so|nptest\\.dll|Test\\.plugin",
-    "versionRange": [
-      {
-        "severity": "0",
-        "vulnerabilityStatus": "2"
-      }
-    ],
-    "blockID": "p9999"
-  }
-]
\ No newline at end of file
deleted file mode 100644
--- a/browser/base/content/test/plugins/blockPluginVulnerableUpdatable-plugins.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
-  {
-    "matchFilename": "libnptest\\.so|nptest\\.dll|Test\\.plugin",
-    "versionRange": [
-      {
-        "severity": "0",
-        "vulnerabilityStatus": "1"
-      }
-    ],
-    "blockID": "p9999"
-  }
-]
\ No newline at end of file
--- a/browser/base/content/test/plugins/browser.ini
+++ b/browser/base/content/test/plugins/browser.ini
@@ -1,97 +1,25 @@
 [DEFAULT]
 prefs =
   plugin.load_flash_only=false
 support-files =
   BlocklistTestProxy.jsm
-  blockNoPlugins-plugins.json
-  blockPluginHard-plugins.json
-  blockPluginInfoURL-plugins.json
-  blockPluginVulnerableNoUpdate-plugins.json
-  blockPluginVulnerableUpdatable-plugins.json
-  browser_clearplugindata.html
-  browser_clearplugindata_noage.html
   empty_file.html
   head.js
-  plugin_add_dynamically.html
-  plugin_alternate_content.html
-  plugin_big.html
-  plugin_both.html
-  plugin_both2.html
-  plugin_bug744745.html
-  plugin_bug749455.html
-  plugin_bug787619.html
   plugin_bug797677.html
   plugin_favorfallback.html
-  plugin_hidden_to_visible.html
-  plugin_iframe.html
   plugin_outsideScrollArea.html
-  plugin_overlay_styles.html
   plugin_simple_blank.swf
-  plugin_shouldShowOverlay.html
-  plugin_small.html
-  plugin_small_2.html
-  plugin_syncRemoved.html
   plugin_test.html
-  plugin_test2.html
-  plugin_two_types.html
-  plugin_unknown.html
-  plugin_crashCommentAndURL.html
   plugin_zoom.html
 
-[browser_bug743421.js]
-tags = blocklist
-[browser_bug744745.js]
-[browser_bug787619.js]
 [browser_bug797677.js]
-[browser_bug812562.js]
-tags = blocklist
-[browser_bug818118.js]
-[browser_clearplugindata.js]
-tags = blocklist
-[browser_CTP_context_menu.js]
-skip-if = fission || toolkit == "gtk" # Fails with Fission, and we're unlikely to spend time to fix it. fails intermittently on Linux (bug 909342)
-tags = blocklist
-[browser_CTP_crashreporting.js]
-skip-if = !crashreporter || verify || os == 'win' # bug 1442837
-tags = blocklist
-[browser_CTP_drag_drop.js]
-tags = blocklist
 [browser_CTP_favorfallback.js]
-[browser_CTP_hide_overlay.js]
-tags = blocklist
-[browser_CTP_iframe.js]
-tags = blocklist
-[browser_CTP_nonplugins.js]
-skip-if = verify
-tags = blocklist
 [browser_CTP_outsideScrollArea.js]
 tags = blocklist
-[browser_CTP_overlay_styles.js]
-[browser_CTP_resize.js]
-tags = blocklist
-[browser_CTP_shouldShowOverlay.js]
 [browser_CTP_zoom.js]
 tags = blocklist
-[browser_blocking.js]
-tags = blocklist
-[browser_iterate_hidden_plugins.js]
-[browser_plugin_framed_domain.js]
-[browser_pluginnotification.js]
-tags = blocklist
-[browser_plugin_reloading.js]
-tags = blocklist
-[browser_blocklist_content.js]
-skip-if = !e10s
-tags = blocklist
 [browser_enable_DRM_prompt.js]
 skip-if = (os == 'win' && processor == 'aarch64') # bug 1533164
 [browser_private_browsing_eme_persistent_state.js]
 [browser_globalplugin_crashinfobar.js]
 skip-if = !crashreporter
-[browser_pluginCrashCommentAndURL.js]
-skip-if = fission || !crashreporter # Fails with Fission, and we're unlikely to spend time to fix it.
-[browser_pluginCrashReportNonDeterminism.js]
-skip-if = !crashreporter
-[browser_private_clicktoplay.js]
-[browser_subframe_access_hidden_plugins.js]
-skip-if = fission # Fails with Fission, and we're unlikely to spend time to fix it.
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_context_menu.js
+++ /dev/null
@@ -1,91 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-// Test that the activate action in content menus for CTP plugins works
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-  let bindingPromise = BrowserTestUtils.waitForContentEvent(
-    gBrowser.selectedBrowser,
-    "PluginBindingAttached",
-    true,
-    null,
-    true
-  );
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-  await promiseUpdatePluginBindings(gBrowser.selectedBrowser);
-  await bindingPromise;
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gBrowser.selectedBrowser
-  );
-  ok(popupNotification, "Test 1, Should have a click-to-play notification");
-
-  // check plugin state
-  let pluginInfo = await promiseForPluginInfo("test", gBrowser.selectedBrowser);
-  ok(!pluginInfo.activated, "plugin should not be activated");
-
-  // Display a context menu on the test plugin so we can test
-  // activation menu options.
-  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    let bounds = plugin.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("contextmenu", left, top, 2, 1, 0);
-  });
-
-  popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gBrowser.selectedBrowser
-  );
-  ok(popupNotification, "Should have a click-to-play notification");
-  ok(popupNotification.dismissed, "notification should be dismissed");
-
-  // fixes a occasional test timeout on win7 opt
-  await promiseForCondition(() => document.getElementById("context-ctp-play"));
-
-  let actMenuItem = document.getElementById("context-ctp-play");
-  ok(actMenuItem, "Should have a context menu entry for activating the plugin");
-
-  // Activate the plugin via the context menu
-  EventUtils.synthesizeMouseAtCenter(actMenuItem, {});
-
-  await promiseForCondition(
-    () =>
-      !PopupNotifications.panel.dismissed &&
-      PopupNotifications.panel.firstElementChild
-  );
-
-  // Activate the plugin
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  // check plugin state
-  pluginInfo = await promiseForPluginInfo("test", gBrowser.selectedBrowser);
-  ok(pluginInfo.activated, "plugin should be activated");
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_crashreporting.js
+++ /dev/null
@@ -1,263 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-const SERVER_URL =
-  "http://example.com/browser/toolkit/crashreporter/test/browser/crashreport.sjs";
-const PLUGIN_PAGE = gTestRoot + "plugin_big.html";
-const PLUGIN_SMALL_PAGE = gTestRoot + "plugin_small.html";
-
-/**
- * Takes an nsIPropertyBag and converts it into a JavaScript Object. It
- * will also convert any nsIPropertyBag's within the nsIPropertyBag
- * recursively.
- *
- * @param aBag
- *        The nsIPropertyBag to convert.
- * @return Object
- *        Keyed on the names of the nsIProperty's within the nsIPropertyBag,
- *        and mapping to their values.
- */
-function convertPropertyBag(aBag) {
-  let result = {};
-  for (let { name, value } of aBag.enumerator) {
-    if (value instanceof Ci.nsIPropertyBag) {
-      value = convertPropertyBag(value);
-    }
-    result[name] = value;
-  }
-  return result;
-}
-
-add_task(async function setup() {
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  // The test harness sets MOZ_CRASHREPORTER_NO_REPORT, which disables plugin
-  // crash reports.  This test needs them enabled.  The test also needs a mock
-  // report server, and fortunately one is already set up by toolkit/
-  // crashreporter/test/Makefile.in.  Assign its URL to MOZ_CRASHREPORTER_URL,
-  // which CrashSubmit.jsm uses as a server override.
-  let env = Cc["@mozilla.org/process/environment;1"].getService(
-    Ci.nsIEnvironment
-  );
-  let noReport = env.get("MOZ_CRASHREPORTER_NO_REPORT");
-  let serverURL = env.get("MOZ_CRASHREPORTER_URL");
-  env.set("MOZ_CRASHREPORTER_NO_REPORT", "");
-  env.set("MOZ_CRASHREPORTER_URL", SERVER_URL);
-
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  registerCleanupFunction(function cleanUp() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    env.set("MOZ_CRASHREPORTER_NO_REPORT", noReport);
-    env.set("MOZ_CRASHREPORTER_URL", serverURL);
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    window.focus();
-  });
-});
-
-/**
- * Test that plugin crash submissions still work properly after
- * click-to-play activation.
- */
-add_task(async function() {
-  await BrowserTestUtils.withNewTab(PLUGIN_PAGE, async function(browser) {
-    // Work around for delayed PluginBindingAttached
-    await promiseUpdatePluginBindings(browser);
-
-    let pluginInfo = await promiseForPluginInfo("test", browser);
-    ok(!pluginInfo.activated, "Plugin should not be activated");
-
-    // Simulate clicking the "Allow Always" button.
-    let notification = PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      browser
-    );
-    await promiseForNotificationShown(notification, browser);
-    PopupNotifications.panel.firstElementChild.button.click();
-
-    // Prepare a crash report topic observer that only returns when
-    // the crash report has been successfully sent.
-    let crashReportChecker = (subject, data) => {
-      return data == "success";
-    };
-    let crashReportPromise = TestUtils.topicObserved(
-      "crash-report-status",
-      crashReportChecker
-    );
-
-    await SpecialPowers.spawn(browser, [], async function() {
-      let plugin = content.document.getElementById("test");
-
-      await ContentTaskUtils.waitForCondition(() => {
-        return plugin.activated;
-      }, "Waited too long for plugin to activate.");
-
-      try {
-        Cu.waiveXrays(plugin).crash();
-      } catch (e) {}
-
-      // Wait for the shadow DOM to be connected.
-      await ContentTaskUtils.waitForCondition(
-        () => plugin.openOrClosedShadowRoot,
-        "Need plugin shadow root"
-      );
-
-      let getUI = id => {
-        return plugin.openOrClosedShadowRoot.getElementById(id);
-      };
-
-      // Now wait until the plugin crash report UI shows itself, which is
-      // asynchronous.
-      let statusDiv;
-
-      await ContentTaskUtils.waitForCondition(() => {
-        statusDiv = getUI("submitStatus");
-        return statusDiv?.getAttribute("status") == "please";
-      }, "Waited too long for plugin to show crash report UI");
-
-      // Make sure the UI matches our expectations...
-      let style = content.getComputedStyle(getUI("pleaseSubmit"));
-      if (style.display != "block") {
-        throw new Error(
-          `Submission UI visibility is not correct. ` +
-            `Expected block style, got ${style.display}.`
-        );
-      }
-
-      // Fill the crash report in with some test values that we'll test for in
-      // the parent.
-      getUI("submitComment").value = "a test comment";
-      let optIn = getUI("submitURLOptIn");
-      if (!optIn.checked) {
-        throw new Error("URL opt-in should default to true.");
-      }
-
-      // Submit the report.
-      optIn.click();
-      getUI("submitButton").click();
-
-      // And wait for the parent to say that the crash report was submitted
-      // successfully. This can take time on debug builds.
-      await ContentTaskUtils.waitForCondition(
-        () => {
-          return statusDiv.getAttribute("status") == "success";
-        },
-        "Timed out waiting for plugin binding to be in success state",
-        100,
-        200
-      );
-    });
-
-    let [subject] = await crashReportPromise;
-
-    ok(
-      subject instanceof Ci.nsIPropertyBag,
-      "The crash report subject should be an nsIPropertyBag."
-    );
-
-    let crashData = convertPropertyBag(subject);
-    ok(crashData.serverCrashID, "Should have a serverCrashID set.");
-
-    // Remove the submitted report file after ensuring it exists.
-    let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
-    file.initWithPath(Services.crashmanager._submittedDumpsDir);
-    file.append(crashData.serverCrashID + ".txt");
-    ok(file.exists(), "Submitted report file should exist");
-    file.remove(false);
-
-    ok(crashData.extra, "Extra data should exist");
-    is(
-      crashData.extra.PluginUserComment,
-      "a test comment",
-      "Comment in extra data should match comment in textbox"
-    );
-
-    is(
-      crashData.extra.PluginContentURL,
-      undefined,
-      "URL should be absent from extra data when opt-in not checked"
-    );
-  });
-});
-
-/**
- * Test that plugin crash submissions still work properly after
- * click-to-play with the notification bar.
- */
-add_task(async function() {
-  await BrowserTestUtils.withNewTab(
-    {
-      gBrowser,
-      url: PLUGIN_SMALL_PAGE,
-    },
-    async function(browser) {
-      // Work around for delayed PluginBindingAttached
-      await promiseUpdatePluginBindings(browser);
-
-      let pluginInfo = await promiseForPluginInfo("test", browser);
-      ok(pluginInfo.activated, "Plugin should be activated from previous test");
-
-      // Prepare a crash report topic observer that only returns when
-      // the crash report has been successfully sent.
-      let crashReportChecker = (subject, data) => {
-        return data == "success";
-      };
-      let crashReportPromise = TestUtils.topicObserved(
-        "crash-report-status",
-        crashReportChecker
-      );
-
-      await SpecialPowers.spawn(browser, [], async function() {
-        let plugin = content.document.getElementById("test");
-
-        await ContentTaskUtils.waitForCondition(() => {
-          return plugin.activated;
-        }, "Waited too long for plugin to activate.");
-
-        try {
-          Cu.waiveXrays(plugin).crash();
-        } catch (e) {}
-      });
-
-      // Wait for the notification bar to be displayed.
-      let notification = await waitForNotificationBar(
-        "plugin-crashed",
-        browser
-      );
-
-      // Then click the button to submit the crash report.
-      let buttons = notification.querySelectorAll(".notification-button");
-      is(buttons.length, 2, "Should have two buttons.");
-
-      // The "Submit Crash Report" button should be the second one.
-      let submitButton = buttons[1];
-      submitButton.click();
-
-      let [subject] = await crashReportPromise;
-
-      ok(
-        subject instanceof Ci.nsIPropertyBag,
-        "The crash report subject should be an nsIPropertyBag."
-      );
-
-      let crashData = convertPropertyBag(subject);
-      ok(crashData.serverCrashID, "Should have a serverCrashID set.");
-
-      // Remove the submitted report file after ensuring it exists.
-      let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
-      file.initWithPath(Services.crashmanager._submittedDumpsDir);
-      file.append(crashData.serverCrashID + ".txt");
-      ok(file.exists(), "Submitted report file should exist");
-      file.remove(false);
-
-      is(
-        crashData.extra.PluginContentURL,
-        undefined,
-        "URL should be absent from extra data when opt-in not checked"
-      );
-    }
-  );
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_drag_drop.js
+++ /dev/null
@@ -1,159 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gNewWindow = null;
-
-add_task(async function() {
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    gNewWindow.close();
-    await BrowserTestUtils.waitForEvent(gNewWindow, "unload", true);
-    gNewWindow = null;
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gBrowser.selectedBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-});
-
-add_task(async function() {
-  gNewWindow = gBrowser.replaceTabWithWindow(gBrowser.selectedTab);
-
-  // XXX technically can't load fire before we get this call???
-  await BrowserTestUtils.waitForEvent(gNewWindow, "load", true);
-
-  await promisePopupNotification(
-    "click-to-play-plugins",
-    gNewWindow.gBrowser.selectedBrowser
-  );
-
-  ok(
-    PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gNewWindow.gBrowser.selectedBrowser
-    ),
-    "Should have a click-to-play notification in the tab in the new window"
-  );
-  ok(
-    !PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gBrowser.selectedBrowser
-    ),
-    "Should not have a click-to-play notification in the old window now"
-  );
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gBrowser.swapBrowsersAndCloseOther(
-    gBrowser.selectedTab,
-    gNewWindow.gBrowser.selectedTab
-  );
-
-  await promisePopupNotification(
-    "click-to-play-plugins",
-    gBrowser.selectedBrowser
-  );
-
-  ok(
-    PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gBrowser.selectedBrowser
-    ),
-    "Should have a click-to-play notification in the initial tab again"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gBrowser.selectedBrowser);
-});
-
-add_task(async function() {
-  await promisePopupNotification("click-to-play-plugins");
-
-  gNewWindow = gBrowser.replaceTabWithWindow(gBrowser.selectedTab);
-
-  await promiseWaitForFocus(gNewWindow);
-
-  await promisePopupNotification(
-    "click-to-play-plugins",
-    gNewWindow.gBrowser.selectedBrowser
-  );
-});
-
-add_task(async function() {
-  ok(
-    PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gNewWindow.gBrowser.selectedBrowser
-    ),
-    "Should have a click-to-play notification in the tab in the new window"
-  );
-  ok(
-    !PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gBrowser.selectedBrowser
-    ),
-    "Should not have a click-to-play notification in the old window now"
-  );
-
-  let pluginInfo = await promiseForPluginInfo(
-    "test",
-    gNewWindow.gBrowser.selectedBrowser
-  );
-  ok(!pluginInfo.activated, "plugin should not be activated");
-
-  await SpecialPowers.spawn(
-    gNewWindow.gBrowser.selectedBrowser,
-    [],
-    async function() {
-      let doc = content.document;
-      let plugin = doc.getElementById("test");
-      let bounds = plugin.getBoundingClientRect();
-      let left = (bounds.left + bounds.right) / 2;
-      let top = (bounds.top + bounds.bottom) / 2;
-      let utils = content.windowUtils;
-      utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-      utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-    }
-  );
-
-  let condition = () =>
-    !PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gNewWindow.gBrowser.selectedBrowser
-    ).dismissed && gNewWindow.PopupNotifications.panel.firstElementChild;
-  await promiseForCondition(condition);
-});
-
-add_task(async function() {
-  // Click the activate button on doorhanger to make sure it works
-  gNewWindow.PopupNotifications.panel.firstElementChild.button.click();
-
-  let pluginInfo = await promiseForPluginInfo(
-    "test",
-    gNewWindow.gBrowser.selectedBrowser
-  );
-  ok(pluginInfo.activated, "plugin should be activated");
-});
--- a/browser/base/content/test/plugins/browser_CTP_favorfallback.js
+++ b/browser/base/content/test/plugins/browser_CTP_favorfallback.js
@@ -3,28 +3,23 @@ const gTestRoot = rootDir.replace(
   "chrome://mochitests/content/",
   "http://127.0.0.1:8888/"
 );
 var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
 
 add_task(async function() {
   registerCleanupFunction(function() {
     clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Shockwave Flash");
     Services.prefs.clearUserPref("plugins.favorfallback.mode");
     Services.prefs.clearUserPref("plugins.favorfallback.rules");
   });
 });
 
 add_task(async function() {
   Services.prefs.setCharPref("plugins.favorfallback.mode", "follow-ctp");
-  setTestPluginEnabledState(
-    Ci.nsIPluginTag.STATE_CLICKTOPLAY,
-    "Shockwave Flash"
-  );
 });
 
 /* The expected behavior of each testcase is documented with its markup
  * in plugin_favorfallback.html.
  *
  *  - "name" is the name of the testcase in the test file.
  *  - "rule" is how the plugins.favorfallback.rules must be configured
  *           for this testcase.
@@ -76,18 +71,18 @@ add_task(async function() {
 
         for (let ctpPlugin of ctpPlugins) {
           ok(
             ctpPlugin instanceof Ci.nsIObjectLoadingContent,
             "This is a plugin object"
           );
           is(
             ctpPlugin.pluginFallbackType,
-            Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY,
-            "Plugin is CTP"
+            Ci.nsIObjectLoadingContent.PLUGIN_ALTERNATE,
+            "Plugins always use alternate content"
           );
         }
 
         let fallbackPlugins = testcaseDiv.querySelectorAll(
           ".expected_fallback"
         );
 
         for (let fallbackPlugin of fallbackPlugins) {
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_hide_overlay.js
+++ /dev/null
@@ -1,149 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-  setTestPluginEnabledState(
-    Ci.nsIPluginTag.STATE_CLICKTOPLAY,
-    "Second Test Plug-in"
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gBrowser.selectedBrowser);
-
-  // Tests that the overlay can be hidden for plugins using the close icon.
-  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    let closeIcon = plugin.openOrClosedShadowRoot.getElementById("closeIcon");
-    let bounds = closeIcon.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-
-    Assert.ok(
-      !overlay.classList.contains("visible"),
-      "overlay should be hidden."
-    );
-  });
-});
-
-// Test that the overlay cannot be interacted with after the user closes the overlay
-add_task(async function() {
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-  setTestPluginEnabledState(
-    Ci.nsIPluginTag.STATE_CLICKTOPLAY,
-    "Second Test Plug-in"
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gBrowser.selectedBrowser);
-
-  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    let closeIcon = plugin.openOrClosedShadowRoot.getElementById("closeIcon");
-    let closeIconBounds = closeIcon.getBoundingClientRect();
-    let overlayBounds = overlay.getBoundingClientRect();
-    let overlayLeft = (overlayBounds.left + overlayBounds.right) / 2;
-    let overlayTop = (overlayBounds.left + overlayBounds.right) / 2;
-    let closeIconLeft = (closeIconBounds.left + closeIconBounds.right) / 2;
-    let closeIconTop = (closeIconBounds.top + closeIconBounds.bottom) / 2;
-    let utils = content.windowUtils;
-    // Simulate clicking on the close icon.
-    utils.sendMouseEvent(
-      "mousedown",
-      closeIconLeft,
-      closeIconTop,
-      0,
-      1,
-      0,
-      false,
-      0,
-      0
-    );
-    utils.sendMouseEvent(
-      "mouseup",
-      closeIconLeft,
-      closeIconTop,
-      0,
-      1,
-      0,
-      false,
-      0,
-      0
-    );
-
-    // Simulate clicking on the overlay.
-    utils.sendMouseEvent(
-      "mousedown",
-      overlayLeft,
-      overlayTop,
-      0,
-      1,
-      0,
-      false,
-      0,
-      0
-    );
-    utils.sendMouseEvent(
-      "mouseup",
-      overlayLeft,
-      overlayTop,
-      0,
-      1,
-      0,
-      false,
-      0,
-      0
-    );
-
-    Assert.ok(
-      overlay.hasAttribute("dismissed") &&
-        !overlay.classList.contains("visible"),
-      "Overlay should be hidden"
-    );
-  });
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins"
-  );
-
-  ok(notification.dismissed, "No notification should be shown");
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_iframe.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_iframe.html"
-  );
-
-  // Tests that the overlays are visible and actionable if the plugin is in an iframe.
-
-  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() {
-    let frame = content.document.getElementById("frame");
-    let doc = frame.contentDocument;
-    let plugin = doc.getElementById("test");
-    await ContentTaskUtils.waitForCondition(
-      () => plugin.openOrClosedShadowRoot?.getElementById("main"),
-      "Wait for plugin shadow root"
-    );
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      plugin && overlay.classList.contains("visible"),
-      "Test 1, Plugin overlay should exist, not be hidden"
-    );
-
-    let closeIcon = plugin.openOrClosedShadowRoot.getElementById("closeIcon");
-    let bounds = closeIcon.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = doc.defaultView.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-    Assert.ok(
-      !overlay.classList.contains("visible"),
-      "Test 1, Plugin overlay should exist, be hidden"
-    );
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_nonplugins.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_DISABLED, "Test Plug-in");
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_two_types.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gBrowser.selectedBrowser);
-
-  // Test that the click-to-play notification is not shown for non-plugin object elements
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gBrowser.selectedBrowser
-  );
-  ok(popupNotification, "Test 1, Should have a click-to-play notification");
-
-  let pluginRemovedPromise = BrowserTestUtils.waitForContentEvent(
-    gBrowser.selectedBrowser,
-    "PluginRemoved",
-    true,
-    null,
-    true
-  );
-  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() {
-    let plugin = content.document.getElementById("secondtestA");
-    plugin.remove();
-    plugin = content.document.getElementById("secondtestB");
-    plugin.remove();
-
-    let image = content.document.createElement("object");
-    image.type = "image/png";
-    image.data = "moz.png";
-    content.document.body.appendChild(image);
-  });
-  await pluginRemovedPromise;
-
-  popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gBrowser.selectedBrowser
-  );
-  ok(popupNotification, "Test 2, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    plugin.remove();
-  });
-
-  popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gBrowser.selectedBrowser
-  );
-  ok(
-    popupNotification,
-    "Test 3, Should still have a click-to-play notification"
-  );
-});
--- a/browser/base/content/test/plugins/browser_CTP_outsideScrollArea.js
+++ b/browser/base/content/test/plugins/browser_CTP_outsideScrollArea.js
@@ -4,143 +4,119 @@ const gTestRoot = rootDir.replace(
   "http://127.0.0.1:8888/"
 );
 var gTestBrowser = null;
 var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
 
 add_task(async function() {
   registerCleanupFunction(function() {
     clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
     Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
     gBrowser.removeCurrentTab();
     window.focus();
     gTestBrowser = null;
   });
 });
 
 add_task(async function() {
   Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
 
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    !popupNotification,
-    "Test 1, Should not have a click-to-play notification"
-  );
 });
 
-// Test that the click-to-play overlay is not hidden for elements
-// partially or fully outside the viewport.
+// Test that the plugin "blockall" overlay is always present but hidden,
+// regardless of whether the overlay is fully, partially, or not in the
+// viewport.
+
+// fully in viewport
+add_task(async function() {
+  await promiseTabLoadEvent(
+    gBrowser.selectedTab,
+    gTestRoot + "plugin_outsideScrollArea.html"
+  );
+
+  await SpecialPowers.spawn(gTestBrowser, [], async function() {
+    let doc = content.document;
+    let p = doc.createElement("embed");
 
+    p.setAttribute("id", "test");
+    p.setAttribute("type", "application/x-shockwave-flash");
+    p.style.left = "0";
+    p.style.bottom = "200px";
+
+    doc.getElementById("container").appendChild(p);
+  });
+
+  // Work around for delayed PluginBindingAttached
+  await promiseUpdatePluginBindings(gTestBrowser);
+
+  await SpecialPowers.spawn(gTestBrowser, [], async function() {
+    let plugin = content.document.getElementById("test");
+    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
+    Assert.ok(overlay);
+    Assert.ok(!overlay.getAttribute("visible"));
+    Assert.ok(overlay.getAttribute("blockall") == "blockall");
+  });
+});
+
+// partially in viewport
 add_task(async function() {
   await promiseTabLoadEvent(
     gBrowser.selectedTab,
     gTestRoot + "plugin_outsideScrollArea.html"
   );
 
   await SpecialPowers.spawn(gTestBrowser, [], async function() {
     let doc = content.document;
     let p = doc.createElement("embed");
 
     p.setAttribute("id", "test");
-    p.setAttribute("type", "application/x-test");
+    p.setAttribute("type", "application/x-shockwave-flash");
     p.style.left = "0";
-    p.style.bottom = "200px";
+    p.style.bottom = "-410px";
 
     doc.getElementById("container").appendChild(p);
   });
 
   // Work around for delayed PluginBindingAttached
   await promiseUpdatePluginBindings(gTestBrowser);
 
-  await promisePopupNotification("click-to-play-plugins");
-
   await SpecialPowers.spawn(gTestBrowser, [], async function() {
     let plugin = content.document.getElementById("test");
     let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay &&
-        overlay.classList.contains("visible") &&
-        overlay.getAttribute("sizing") != "blank",
-      "Test 2, overlay should be visible."
-    );
+    Assert.ok(overlay);
+    Assert.ok(!overlay.getAttribute("visible"));
+    Assert.ok(overlay.getAttribute("blockall") == "blockall");
   });
 });
 
+// not in viewport
 add_task(async function() {
   await promiseTabLoadEvent(
     gBrowser.selectedTab,
     gTestRoot + "plugin_outsideScrollArea.html"
   );
 
   await SpecialPowers.spawn(gTestBrowser, [], async function() {
     let doc = content.document;
     let p = doc.createElement("embed");
 
     p.setAttribute("id", "test");
-    p.setAttribute("type", "application/x-test");
-    p.style.left = "0";
-    p.style.bottom = "-410px";
-
-    doc.getElementById("container").appendChild(p);
-  });
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay &&
-        overlay.classList.contains("visible") &&
-        overlay.getAttribute("sizing") != "blank",
-      "Test 3, overlay should be visible."
-    );
-  });
-});
-
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_outsideScrollArea.html"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let p = doc.createElement("embed");
-
-    p.setAttribute("id", "test");
-    p.setAttribute("type", "application/x-test");
+    p.setAttribute("type", "application/x-shockwave-flash");
     p.style.left = "-600px";
     p.style.bottom = "0";
 
     doc.getElementById("container").appendChild(p);
   });
 
   // Work around for delayed PluginBindingAttached
   await promiseUpdatePluginBindings(gTestBrowser);
 
-  await promisePopupNotification("click-to-play-plugins");
   await SpecialPowers.spawn(gTestBrowser, [], async function() {
     let plugin = content.document.getElementById("test");
     let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      !overlay || overlay.getAttribute("sizing") == "blank",
-      "Test 4, overlay should be blank."
-    );
+    Assert.ok(overlay);
+    Assert.ok(!overlay.getAttribute("visible"));
+    Assert.ok(overlay.getAttribute("blockall") == "blockall");
   });
 });
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_overlay_styles.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-/* This test ensures that the click-to-play "Activate Plugin" overlay
- * is shown in the right style (which is dependent on its size).
- */
-
-const rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-
-var gTestBrowser = null;
-
-const gTestcases = {
-  // 10x10
-  testcase1: {
-    sizing: "blank",
-    notext: null,
-  },
-
-  // 40x40
-  testcase2: {
-    sizing: "tiny",
-    notext: "notext",
-  },
-
-  // 100x70
-  testcase3: {
-    sizing: "reduced",
-    notext: "notext",
-  },
-
-  // 200x200
-  testcase4: {
-    sizing: null,
-    notext: "notext",
-  },
-
-  // 300x300
-  testcase5: {
-    sizing: null,
-    notext: null,
-  },
-};
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    gBrowser.removeCurrentTab();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    !popupNotification,
-    "Sanity check, should not have a click-to-play notification"
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_overlay_styles.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [gTestcases], async function(
-    testcases
-  ) {
-    let doc = content.document;
-
-    for (let testcaseId of Object.keys(testcases)) {
-      let plugin = doc.querySelector(`#${testcaseId} > object`);
-      let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-      Assert.ok(overlay, `overlay exists in ${testcaseId}`);
-
-      let expectations = testcases[testcaseId];
-
-      Assert.ok(
-        overlay.classList.contains("visible"),
-        `The expected visibility is correct in ${testcaseId}`
-      );
-
-      Assert.ok(
-        overlay.getAttribute("sizing") == expectations.sizing,
-        `The expected sizing is correct in ${testcaseId}`
-      );
-
-      Assert.ok(
-        overlay.getAttribute("notext") == expectations.notext,
-        `The expected notext is correct in ${testcaseId}`
-      );
-    }
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_resize.js
+++ /dev/null
@@ -1,152 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  let newTab = BrowserTestUtils.addTab(gBrowser);
-  gBrowser.selectedTab = newTab;
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    !popupNotification,
-    "Test 1, Should not have a click-to-play notification"
-  );
-
-  await promiseTabLoadEvent(newTab, gTestRoot + "plugin_small.html"); // 10x10 plugin
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-});
-
-// Test that the overlay is hidden for "small" plugin elements and is shown
-// once they are resized to a size that can hold the overlay
-add_task(async function() {
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(popupNotification, "Test 2, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      !overlay || overlay.getAttribute("sizing") == "blank",
-      "Test 2, overlay should be blank."
-    );
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    plugin.style.width = "300px";
-  });
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      !overlay || overlay.getAttribute("sizing") == "blank",
-      "Test 3, overlay should be blank."
-    );
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    plugin.style.height = "300px";
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    content.document.getElementById("test").clientTop;
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay && overlay.getAttribute("sizing") != "blank",
-      "Test 4, overlay should be visible."
-    );
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    plugin.style.width = "10px";
-    plugin.style.height = "10px";
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    content.document.getElementById("test").clientTop;
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      !overlay || overlay.getAttribute("sizing") == "blank",
-      "Test 5, overlay should be blank."
-    );
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    plugin.style.height = "300px";
-    plugin.style.width = "300px";
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    content.document.getElementById("test").clientTop;
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay && overlay.getAttribute("sizing") != "blank",
-      "Test 6, overlay should be visible."
-    );
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_CTP_shouldShowOverlay.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-/* This test ensures that the click-to-play "Activate Plugin" overlay
- * is shown when expected.
- * All testcases are in the plugin_shouldShowOverlay.html file.
- *
- * Note: Technically, the overlay is *always* shown. When this test was
- * originally written, the meaning of "shown" was "shown with the contents",
- * as opposed to "shown as blank". The behavior hasn't changed, but the naming
- * has: now, a "shown as blank" overlay no longer receives a ".hidden" class.
- * It receives a sizing="blank" attribute.
- */
-
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-
-var gTestBrowser = null;
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    gBrowser.removeCurrentTab();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    !popupNotification,
-    "Sanity check, should not have a click-to-play notification"
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_shouldShowOverlay.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let testcases = doc.querySelectorAll(".testcase");
-
-    for (let testcase of testcases) {
-      let plugin = testcase.querySelector("object");
-      Assert.ok(plugin, `plugin exists in ${testcase.id}`);
-
-      let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-      Assert.ok(overlay, `overlay exists in ${testcase.id}`);
-
-      let expectedVisibility = testcase.getAttribute("shouldshow") == "true";
-      Assert.ok(
-        (overlay.getAttribute("sizing") != "blank") == expectedVisibility,
-        `The expected visibility is correct in ${testcase.id}`
-      );
-    }
-  });
-});
--- a/browser/base/content/test/plugins/browser_CTP_zoom.js
+++ b/browser/base/content/test/plugins/browser_CTP_zoom.js
@@ -6,55 +6,37 @@ const gTestRoot = rootDir.replace(
   "http://127.0.0.1:8888/"
 );
 
 var gTestBrowser = null;
 
 add_task(async function() {
   registerCleanupFunction(function() {
     clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
     Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
     FullZoom.reset(); // must be called before closing the tab we zoomed!
     gBrowser.removeCurrentTab();
     window.focus();
     gTestBrowser = null;
   });
 });
 
 add_task(async function() {
   Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   gTestBrowser = gBrowser.selectedBrowser;
 
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    !popupNotification,
-    "Test 1, Should not have a click-to-play notification"
-  );
-
   await promiseTabLoadEvent(
     gBrowser.selectedTab,
     gTestRoot + "plugin_zoom.html"
   );
 
   // Work around for delayed PluginBindingAttached
   await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
 });
 
 // Enlarges the zoom level 4 times and tests that the overlay is
 // visible after each enlargement.
 add_task(async function() {
   for (let count = 0; count < 4; count++) {
     FullZoom.enlarge();
 
@@ -64,14 +46,16 @@ add_task(async function() {
       gTestRoot + "plugin_zoom.html"
     );
     await promiseUpdatePluginBindings(gTestBrowser);
     await SpecialPowers.spawn(gTestBrowser, [{ count }], async function(args) {
       let doc = content.document;
       let plugin = doc.getElementById("test");
       let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
       Assert.ok(
-        overlay && overlay.classList.contains("visible"),
-        "Overlay should be visible for zoom change count " + args.count
+        overlay &&
+          !overlay.classList.contains("visible") &&
+          overlay.getAttribute("blockall") == "blockall",
+        "Overlay should be present for zoom change count " + args.count
       );
     });
   }
 });
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_blocking.js
+++ /dev/null
@@ -1,433 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-
-function updateAllTestPlugins(aState) {
-  setTestPluginEnabledState(aState, "Test Plug-in");
-  setTestPluginEnabledState(aState, "Second Test Plug-in");
-}
-
-function promisePluginActivated() {
-  return SpecialPowers.spawn(gBrowser.selectedBrowser, [], function() {
-    return ContentTaskUtils.waitForCondition(
-      () => content.document.getElementById("test").activated,
-      "Wait for plugin to be activated"
-    );
-  });
-}
-
-add_task(async function() {
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    updateAllTestPlugins(Ci.nsIPluginTag.STATE_ENABLED);
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    await asyncSetAndUpdateBlocklist(
-      gTestRoot + "blockNoPlugins",
-      gTestBrowser
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  // Prime the content process
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>hi</html>"
-  );
-});
-
-// Tests a vulnerable, updatable plugin
-
-add_task(async function() {
-  // enable hard blocklisting of test
-  await asyncSetAndUpdateBlocklist(
-    gTestRoot + "blockPluginVulnerableUpdatable",
-    gTestBrowser
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_UPDATABLE,
-    "Test 18a, plugin fallback type should be PLUGIN_VULNERABLE_UPDATABLE"
-  );
-  ok(!pluginInfo.activated, "Test 18a, Plugin should not be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay && overlay.classList.contains("visible"),
-      "Test 18a, Plugin overlay should exist, not be hidden"
-    );
-
-    let updateLink = plugin.openOrClosedShadowRoot.getElementById(
-      "checkForUpdatesLink"
-    );
-    Assert.ok(
-      updateLink.style.visibility != "hidden",
-      "Test 18a, Plugin should have an update link"
-    );
-  });
-
-  let promise = BrowserTestUtils.waitForEvent(
-    gBrowser.tabContainer,
-    "TabOpen",
-    true
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let updateLink = plugin.openOrClosedShadowRoot.getElementById(
-      "checkForUpdatesLink"
-    );
-    let bounds = updateLink.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-  await promise;
-
-  promise = BrowserTestUtils.waitForEvent(
-    gBrowser.tabContainer,
-    "TabClose",
-    true
-  );
-  gBrowser.removeCurrentTab();
-  await promise;
-});
-
-add_task(async function() {
-  // clicking the update link should not activate the plugin
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_UPDATABLE,
-    "Test 18a, plugin fallback type should be PLUGIN_VULNERABLE_UPDATABLE"
-  );
-  ok(!pluginInfo.activated, "Test 18b, Plugin should not be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay && overlay.classList.contains("visible"),
-      "Test 18b, Plugin overlay should exist, not be hidden"
-    );
-  });
-});
-
-// Tests a vulnerable plugin with no update
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await asyncSetAndUpdateBlocklist(
-    gTestRoot + "blockPluginVulnerableNoUpdate",
-    gTestBrowser
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 18c, Should have a click-to-play notification");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_NO_UPDATE,
-    "Test 18c, plugin fallback type should be PLUGIN_VULNERABLE_NO_UPDATE"
-  );
-  ok(!pluginInfo.activated, "Test 18c, Plugin should not be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(
-      overlay && overlay.classList.contains("visible"),
-      "Test 18c, Plugin overlay should exist, not be hidden"
-    );
-
-    let updateLink = plugin.openOrClosedShadowRoot.getElementById(
-      "checkForUpdatesLink"
-    );
-    Assert.ok(
-      updateLink && updateLink.style.display != "block",
-      "Test 18c, Plugin should not have an update link"
-    );
-  });
-
-  // check that click "Allow" works with blocked plugins
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  await promisePluginActivated();
-  pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_NO_UPDATE,
-    "Test 18c, plugin fallback type should be PLUGIN_VULNERABLE_NO_UPDATE"
-  );
-  ok(pluginInfo.activated, "Test 18c, Plugin should be activated");
-  let enabledState = getTestPluginEnabledState();
-  ok(
-    enabledState,
-    "Test 18c, Plugin enabled state should be STATE_CLICKTOPLAY"
-  );
-});
-
-// continue testing "Always allow", make sure it sticks.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Test 18d, Waited too long for plugin to activate");
-
-  clearAllPluginPermissions();
-});
-
-// clicking the in-content overlay of a vulnerable plugin should bring
-// up the notification and not directly activate the plugin
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 18f, Should have a click-to-play notification");
-  ok(notification.dismissed, "Test 18f, notification should start dismissed");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 18f, Waited too long for plugin to activate");
-
-  var oldEventCallback = notification.options.eventCallback;
-  let promise = promiseForCondition(() => oldEventCallback == null);
-  notification.options.eventCallback = function() {
-    if (oldEventCallback) {
-      oldEventCallback();
-    }
-    oldEventCallback = null;
-  };
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let bounds = plugin.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-  await promise;
-
-  ok(notification, "Test 18g, Should have a click-to-play notification");
-  ok(!notification.dismissed, "Test 18g, notification should be open");
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 18g, Plugin should not be activated");
-});
-
-// Test that "always allow"-ing a plugin will not allow it when it becomes
-// blocklisted.
-add_task(async function() {
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 24a, Should have a click-to-play notification");
-
-  // Plugin should start as CTP
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY,
-    "Test 24a, plugin fallback type should be PLUGIN_CLICK_TO_PLAY"
-  );
-  ok(!pluginInfo.activated, "Test 24a, Plugin should not be active.");
-
-  // simulate "allow"
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  await promisePluginActivated();
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Test 24a, Plugin should be active.");
-
-  await asyncSetAndUpdateBlocklist(
-    gTestRoot + "blockPluginVulnerableUpdatable",
-    gTestBrowser
-  );
-});
-
-// the plugin is now blocklisted, so it should not automatically load
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 24b, Should have a click-to-play notification");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_UPDATABLE,
-    "Test 24b, plugin fallback type should be PLUGIN_VULNERABLE_UPDATABLE"
-  );
-  ok(!pluginInfo.activated, "Test 24b, Plugin should not be active.");
-
-  // simulate "allow"
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  await promisePluginActivated();
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Test 24b, Plugin should be active.");
-
-  clearAllPluginPermissions();
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-});
-
-// Plugin sync removal test. Note this test produces a notification drop down since
-// the plugin we add has zero dims.
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_syncRemoved.html"
-  );
-
-  // Maybe there some better trick here, we need to wait for the page load, then
-  // wait for the js to execute in the page.
-  await waitForMs(500);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins"
-  );
-  ok(
-    notification,
-    "Test 25: There should be a plugin notification even if the plugin was immediately removed"
-  );
-  ok(
-    notification.dismissed,
-    "Test 25: The notification should be dismissed by default"
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>hi</html>"
-  );
-});
-
-// Tests a page with a blocked plugin in it and make sure the infoURL property
-// the blocklist file gets used.
-add_task(async function() {
-  clearAllPluginPermissions();
-
-  await asyncSetAndUpdateBlocklist(
-    gTestRoot + "blockPluginInfoURL",
-    gTestBrowser
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins"
-  );
-
-  // Since the plugin notification is dismissed by default, reshow it.
-  await promiseForNotificationShown(notification);
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_BLOCKLISTED,
-    "Test 26, plugin fallback type should be PLUGIN_BLOCKLISTED"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    Assert.ok(!plugin.activated, "Plugin should not be activated.");
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_blocklist_content.js
+++ /dev/null
@@ -1,149 +0,0 @@
-var gTestBrowser = null;
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gChromeRoot = getRootDirectory(gTestPath);
-
-add_task(async function() {
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    await asyncSetAndUpdateBlocklist(
-      gTestRoot + "blockNoPlugins",
-      gTestBrowser
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-  setTestPluginEnabledState(
-    Ci.nsIPluginTag.STATE_ENABLED,
-    "Second Test Plug-in"
-  );
-
-  // Prime the blocklist service, the remote service doesn't launch on startup.
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html></html>"
-  );
-});
-
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let test = content.document.getElementById("test");
-    Assert.ok(test.activated, "task 1a: test plugin should be activated!");
-  });
-});
-
-// Load a fresh page, load a new plugin blocklist, then load the same page again.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>GO!</html>"
-  );
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockPluginHard", gTestBrowser);
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let test = content.document.getElementById("test");
-    ok(!test.activated, "task 2a: test plugin shouldn't activate!");
-  });
-});
-
-// Unload the block list and lets do this again, only this time lets
-// hack around in the content blocklist service maliciously.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>GO!</html>"
-  );
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-
-  // Hack the planet! Load our blocklist shim, so we can mess with blocklist
-  // return results in the content process. Active until we close our tab.
-  let base = gChromeRoot.slice(0, -1);
-
-  let actor = {
-    child: {
-      moduleURI: `${base}/BlocklistTestProxy.jsm`,
-      observer: ["webnavigation-create"],
-    },
-  };
-  ChromeUtils.registerProcessActor("BlocklistTestProxy", actor);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let test = content.document.getElementById("test");
-    Assert.ok(test.activated, "task 3a: test plugin should be activated!");
-  });
-
-  registerCleanupFunction(async function() {
-    let dp =
-      gBrowser.selectedBrowser.browsingContext.currentWindowGlobal.domProcess;
-    await dp.getActor("BlocklistTestProxy").sendQuery("unload");
-
-    ChromeUtils.unregisterProcessActor("BlocklistTestProxy", actor);
-  });
-});
-
-// Load a fresh page, load a new plugin blocklist, then load the same page again.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>GO!</html>"
-  );
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockPluginHard", gTestBrowser);
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let test = content.document.getElementById("test");
-    Assert.ok(!test.activated, "task 4a: test plugin shouldn't activate!");
-  });
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_bug743421.js
+++ /dev/null
@@ -1,135 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-
-add_task(async function() {
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    await asyncSetAndUpdateBlocklist(
-      gTestRoot + "blockNoPlugins",
-      gTestBrowser
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  let newTab = BrowserTestUtils.addTab(gBrowser);
-  gBrowser.selectedTab = newTab;
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-  setTestPluginEnabledState(
-    Ci.nsIPluginTag.STATE_CLICKTOPLAY,
-    "Second Test Plug-in"
-  );
-
-  // Prime the blocklist service, the remote service doesn't launch on startup.
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html></html>"
-  );
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-});
-
-// Tests that navigation within the page and the window.history API doesn't break click-to-play state.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_add_dynamically.html"
-  );
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(!notification, "Test 1a, Should not have a click-to-play notification");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    new XPCNativeWrapper(XPCNativeWrapper.unwrap(content).addPlugin());
-  });
-
-  await promisePopupNotification("click-to-play-plugins");
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementsByTagName("embed")[0];
-    Assert.ok(!plugin.activated, "Test 1b, Plugin should not be activated");
-  });
-
-  // Click the activate button on doorhanger to make sure it works
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementsByTagName("embed")[0];
-    Assert.ok(plugin.activated, "Test 1b, Plugin should be activated");
-  });
-});
-
-add_task(async function() {
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 1c, Should still have a click-to-play notification");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    new XPCNativeWrapper(XPCNativeWrapper.unwrap(content).addPlugin());
-    let plugin = content.document.getElementsByTagName("embed")[1];
-    Assert.ok(
-      plugin.activated,
-      "Test 1c, Newly inserted plugin in activated page should be activated"
-    );
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementsByTagName("embed")[1];
-    Assert.ok(plugin.activated, "Test 1d, Plugin should be activated");
-
-    let promise = ContentTaskUtils.waitForEvent(content, "hashchange");
-    content.location += "#anchorNavigation";
-    await promise;
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    new XPCNativeWrapper(XPCNativeWrapper.unwrap(content).addPlugin());
-    let plugin = content.document.getElementsByTagName("embed")[2];
-    Assert.ok(plugin.activated, "Test 1e, Plugin should be activated");
-  });
-});
-
-add_task(async function() {
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementsByTagName("embed")[2];
-    Assert.ok(plugin.activated, "Test 1f, Plugin should be activated");
-
-    content.history.replaceState({}, "", "replacedState");
-    new XPCNativeWrapper(XPCNativeWrapper.unwrap(content).addPlugin());
-    plugin = content.document.getElementsByTagName("embed")[3];
-    Assert.ok(plugin.activated, "Test 1g, Plugin should be activated");
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_bug744745.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let promisePluginBindingAttached = BrowserTestUtils.waitForContentEvent(
-    gTestBrowser,
-    "PluginBindingAttached",
-    true,
-    null,
-    true
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_bug744745.html"
-  );
-
-  await promisePluginBindingAttached;
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    if (!plugin) {
-      Assert.ok(false, "plugin element not available.");
-      return;
-    }
-    // We can't use MochiKit's routine
-    let style = content.getComputedStyle(plugin);
-    Assert.ok(
-      "opacity" in style && style.opacity == 1,
-      "plugin style properly configured."
-    );
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_bug787619.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-var gWrapperClickCount = 0;
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  let testRoot = getRootDirectory(gTestPath).replace(
-    "chrome://mochitests/content/",
-    "http://127.0.0.1:8888/"
-  );
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    testRoot + "plugin_bug787619.html"
-  );
-
-  // Due to layout being async, "PluginBindAttached" may trigger later.
-  // This forces a layout flush, thus triggering it, and schedules the
-  // test so it is definitely executed afterwards.
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  // check plugin state
-  let pluginInfo = await promiseForPluginInfo("plugin");
-  ok(!pluginInfo.activated, "1a plugin should not be activated");
-
-  // click the overlay to prompt
-  let promise = promisePopupNotification("click-to-play-plugins");
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("plugin");
-    let bounds = plugin.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-  await promise;
-
-  // check plugin state
-  pluginInfo = await promiseForPluginInfo("plugin");
-  ok(!pluginInfo.activated, "1b plugin should not be activated");
-
-  let condition = () =>
-    !PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed && PopupNotifications.panel.firstElementChild;
-  await promiseForCondition(condition);
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  // check plugin state
-  pluginInfo = await promiseForPluginInfo("plugin");
-  ok(pluginInfo.activated, "plugin should be activated");
-
-  is(gWrapperClickCount, 0, "wrapper should not have received any clicks");
-});
--- a/browser/base/content/test/plugins/browser_bug797677.js
+++ b/browser/base/content/test/plugins/browser_bug797677.js
@@ -2,22 +2,16 @@ var gTestRoot = getRootDirectory(gTestPa
   "chrome://mochitests/content/",
   "http://127.0.0.1:8888/"
 );
 var gTestBrowser = null;
 var gConsoleErrors = 0;
 
 add_task(async function() {
   registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
     Services.console.unregisterListener(errorListener);
     gBrowser.removeCurrentTab();
     window.focus();
     gTestBrowser = null;
   });
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   gTestBrowser = gBrowser.selectedBrowser;
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_bug812562.js
+++ /dev/null
@@ -1,133 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-
-add_task(async function() {
-  await SpecialPowers.pushPrefEnv({
-    set: [["browser.navigation.requireUserInteraction", false]],
-  });
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    await asyncSetAndUpdateBlocklist(
-      gTestRoot + "blockNoPlugins",
-      gTestBrowser
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  // Prime the blocklist service, the remote service doesn't launch on startup.
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html></html>"
-  );
-});
-
-// Tests that the going back will reshow the notification for click-to-play
-// blocklisted plugins
-add_task(async function() {
-  await asyncSetAndUpdateBlocklist(
-    gTestRoot + "blockPluginVulnerableUpdatable",
-    gTestBrowser
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    popupNotification,
-    "test part 1: Should have a click-to-play notification"
-  );
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_UPDATABLE,
-    "plugin should be marked as VULNERABLE"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    Assert.ok(
-      !!content.document.getElementById("test"),
-      "test part 1: plugin should not be activated"
-    );
-  });
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html></html>"
-  );
-});
-
-add_task(async function() {
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    !popupNotification,
-    "test part 2: Should not have a click-to-play notification"
-  );
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    Assert.ok(
-      !content.document.getElementById("test"),
-      "test part 2: plugin should not be activated"
-    );
-  });
-
-  let obsPromise = TestUtils.topicObserved(
-    "PopupNotifications-updateNotShowing"
-  );
-  let overlayPromise = promisePopupNotification("click-to-play-plugins");
-  gTestBrowser.goBack();
-  await obsPromise;
-  await overlayPromise;
-});
-
-add_task(async function() {
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(
-    popupNotification,
-    "test part 3: Should have a click-to-play notification"
-  );
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_VULNERABLE_UPDATABLE,
-    "plugin should be marked as VULNERABLE"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    Assert.ok(
-      !!content.document.getElementById("test"),
-      "test part 3: plugin should not be activated"
-    );
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_bug818118.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    gBrowser.removeCurrentTab();
-    window.focus();
-    gTestBrowser = null;
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Test Plug-in");
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_both.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(popupNotification, "should have a click-to-play notification");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY,
-    "plugin should be click to play"
-  );
-  ok(!pluginInfo.activated, "plugin should not be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], () => {
-    let unknown = content.document.getElementById("unknown");
-    ok(unknown, "should have unknown plugin in page");
-  });
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_clearplugindata.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-  Any copyright is dedicated to the Public Domain.
-  http://creativecommons.org/publicdomain/zero/1.0/
--->
-<html>
-  <head>
-    <title>Plugin Clear Site Data sanitize test</title>
-
-    <embed id="plugin1" type="application/x-test" width="200" height="200"></embed>
-
-    <script type="application/javascript">
-      function testSteps() {
-        // Make sure clearing by timerange is supported.
-        var p = document.getElementById("plugin1");
-        p.setSitesWithDataCapabilities(true);
-
-        p.setSitesWithData(
-          "foo.com:0:5," +
-          "bar.com:0:100," +
-          "baz.com:1:5," +
-          "qux.com:1:100"
-        );
-      }
-    </script>
-  </head>
-
-  <body onload="testSteps();"></body>
-
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_clearplugindata.js
+++ /dev/null
@@ -1,122 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-var gTestBrowser = null;
-
-// Test clearing plugin data using Sanitizer.jsm.
-const testURL1 = gTestRoot + "browser_clearplugindata.html";
-const testURL2 = gTestRoot + "browser_clearplugindata_noage.html";
-
-const { Sanitizer } = ChromeUtils.import("resource:///modules/Sanitizer.jsm");
-
-const pluginHostIface = Ci.nsIPluginHost;
-var pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-pluginHost.QueryInterface(pluginHostIface);
-
-var pluginTag = getTestPlugin();
-
-function stored(needles) {
-  let something = pluginHost.siteHasData(this.pluginTag, null);
-  if (!needles) {
-    return something;
-  }
-
-  if (!something) {
-    return false;
-  }
-
-  for (let i = 0; i < needles.length; ++i) {
-    if (!pluginHost.siteHasData(this.pluginTag, needles[i])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-add_task(async function() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    if (gTestBrowser) {
-      gBrowser.removeCurrentTab();
-    }
-    window.focus();
-    gTestBrowser = null;
-  });
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-  setTestPluginEnabledState(
-    Ci.nsIPluginTag.STATE_ENABLED,
-    "Second Test Plug-in"
-  );
-});
-
-function setPrefs(cookies, pluginData) {
-  let itemPrefs = Services.prefs.getBranch("privacy.cpd.");
-  itemPrefs.setBoolPref("history", false);
-  itemPrefs.setBoolPref("downloads", false);
-  itemPrefs.setBoolPref("cache", false);
-  itemPrefs.setBoolPref("cookies", cookies);
-  itemPrefs.setBoolPref("formdata", false);
-  itemPrefs.setBoolPref("offlineApps", false);
-  itemPrefs.setBoolPref("passwords", false);
-  itemPrefs.setBoolPref("sessions", false);
-  itemPrefs.setBoolPref("siteSettings", false);
-  itemPrefs.setBoolPref("pluginData", pluginData);
-}
-
-async function testClearingData(url) {
-  // Load page to set data for the plugin.
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  await promiseTabLoadEvent(gBrowser.selectedTab, url);
-
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  ok(
-    stored(["foo.com", "bar.com", "baz.com", "qux.com"]),
-    "Data stored for sites"
-  );
-
-  // Clear 20 seconds ago.
-  // In the case of testURL2 the plugin will throw
-  // NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED, which should result in us
-  // clearing all data regardless of age.
-  let now_uSec = Date.now() * 1000;
-  let range = [now_uSec - 20 * 1000000, now_uSec];
-  await Sanitizer.sanitize(null, { range, ignoreTimespan: false });
-
-  if (url == testURL1) {
-    ok(stored(["bar.com", "qux.com"]), "Data stored for sites");
-    ok(!stored(["foo.com"]), "Data cleared for foo.com");
-    ok(!stored(["baz.com"]), "Data cleared for baz.com");
-
-    // Clear everything.
-    await Sanitizer.sanitize(null, { ignoreTimespan: false });
-  }
-
-  ok(!stored(null), "All data cleared");
-
-  gBrowser.removeCurrentTab();
-  gTestBrowser = null;
-}
-
-add_task(async function() {
-  // Test when sanitizing cookies.
-  await setPrefs(true, false);
-  await testClearingData(testURL1);
-  await testClearingData(testURL2);
-
-  // Test when sanitizing pluginData.
-  await setPrefs(false, true);
-  await testClearingData(testURL1);
-  await testClearingData(testURL2);
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_clearplugindata_noage.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-  Any copyright is dedicated to the Public Domain.
-  http://creativecommons.org/publicdomain/zero/1.0/
--->
-<html>
-  <head>
-    <title>Plugin Clear Site Data sanitize test without age</title>
-
-    <embed id="plugin1" type="application/x-test" width="200" height="200"></embed>
-
-    <script type="application/javascript">
-      function testSteps() {
-        // Make sure clearing by timerange is disabled.
-        var p = document.getElementById("plugin1");
-        p.setSitesWithDataCapabilities(false);
-
-        p.setSitesWithData(
-          "foo.com:0:5," +
-          "bar.com:0:100," +
-          "baz.com:1:5," +
-          "qux.com:1:100"
-        );
-      }
-    </script>
-  </head>
-
-  <body onload="testSteps();"></body>
-
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_iterate_hidden_plugins.js
+++ /dev/null
@@ -1,82 +0,0 @@
-"use strict";
-
-const TEST_PLUGIN_NAME = "Test Plug-in";
-const HIDDEN_CTP_PLUGIN_PREF = "plugins.navigator.hidden_ctp_plugin";
-
-/**
- * If a plugin is click-to-play and named in HIDDEN_CTP_PLUGIN_PREF,
- * then the plugin should be hidden in the navigator.plugins list by default
- * when iterating.
- */
-
-add_task(async function setup() {
-  // We'll make the Test Plugin click-to-play.
-  let originalPluginState = getTestPluginEnabledState();
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-  registerCleanupFunction(() => {
-    setTestPluginEnabledState(originalPluginState);
-  });
-
-  // And then make the plugin hidden.
-  await SpecialPowers.pushPrefEnv({
-    set: [
-      [HIDDEN_CTP_PLUGIN_PREF, TEST_PLUGIN_NAME],
-      ["plugins.show_infobar", true],
-    ],
-  });
-});
-
-/**
- * Tests that if a plugin is click-to-play and in the
- * HIDDEN_CTP_PLUGIN_PREF list, then it shouldn't be visible
- * when iterating navigator.plugins.
- */
-add_task(async function test_plugin_is_hidden_on_iteration() {
-  // The plugin should not be visible when we iterate
-  // navigator.plugins.
-  await BrowserTestUtils.withNewTab(
-    {
-      gBrowser,
-      url: "http://example.com",
-    },
-    async function(browser) {
-      await SpecialPowers.spawn(browser, [TEST_PLUGIN_NAME], async function(
-        pluginName
-      ) {
-        let plugins = Array.from(content.navigator.plugins);
-        Assert.ok(
-          plugins.every(p => p.name != pluginName),
-          "Should not find Test Plugin"
-        );
-      });
-    }
-  );
-
-  // Now clear the HIDDEN_CTP_PLUGIN_PREF temporarily and
-  // make sure we can see the plugin again.
-  await SpecialPowers.pushPrefEnv({
-    set: [[HIDDEN_CTP_PLUGIN_PREF, ""]],
-  });
-
-  // Note that I have to do this in a new tab since navigator
-  // caches navigator.plugins after an initial read.
-  await BrowserTestUtils.withNewTab(
-    {
-      gBrowser,
-      url: "http://example.com",
-    },
-    async function(browser) {
-      await SpecialPowers.spawn(browser, [TEST_PLUGIN_NAME], async function(
-        pluginName
-      ) {
-        let plugins = Array.from(content.navigator.plugins);
-        Assert.ok(
-          plugins.some(p => p.name == pluginName),
-          "Should have found the Test Plugin"
-        );
-      });
-    }
-  );
-
-  await SpecialPowers.popPrefEnv();
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_pluginCrashCommentAndURL.js
+++ /dev/null
@@ -1,315 +0,0 @@
-/* global gBrowser */
-ChromeUtils.import("resource://gre/modules/CrashSubmit.jsm", this);
-
-const SERVER_URL =
-  "http://example.com/browser/toolkit/crashreporter/test/browser/crashreport.sjs";
-
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gTestBrowser = null;
-var config = {};
-
-add_task(async function() {
-  // The test harness sets MOZ_CRASHREPORTER_NO_REPORT, which disables plugin
-  // crash reports.  This test needs them enabled.  The test also needs a mock
-  // report server, and fortunately one is already set up by toolkit/
-  // crashreporter/test/Makefile.in.  Assign its URL to MOZ_CRASHREPORTER_URL,
-  // which CrashSubmit.jsm uses as a server override.
-  let env = Cc["@mozilla.org/process/environment;1"].getService(
-    Ci.nsIEnvironment
-  );
-  let noReport = env.get("MOZ_CRASHREPORTER_NO_REPORT");
-  let serverUrl = env.get("MOZ_CRASHREPORTER_URL");
-  env.set("MOZ_CRASHREPORTER_NO_REPORT", "");
-  env.set("MOZ_CRASHREPORTER_URL", SERVER_URL);
-
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  // Crash immediately
-  Services.prefs.setIntPref("dom.ipc.plugins.timeoutSecs", 0);
-
-  registerCleanupFunction(async function() {
-    Services.prefs.clearUserPref("dom.ipc.plugins.timeoutSecs");
-    env.set("MOZ_CRASHREPORTER_NO_REPORT", noReport);
-    env.set("MOZ_CRASHREPORTER_URL", serverUrl);
-    env = null;
-    config = null;
-    gTestBrowser = null;
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  config = {
-    shouldSubmissionUIBeVisible: true,
-    comment: "",
-    urlOptIn: false,
-  };
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED);
-
-  let pluginCrashed = promisePluginCrashed();
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_crashCommentAndURL.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  // Wait for the plugin to crash
-  await pluginCrashed;
-
-  let crashReportStatus = TestUtils.topicObserved(
-    "crash-report-status",
-    onSubmitStatus
-  );
-
-  // Test that the crash submission UI is actually visible and submit the crash report.
-  await SpecialPowers.spawn(gTestBrowser, [config], async function(aConfig) {
-    let doc = content.document;
-    let plugin = doc.getElementById("plugin");
-    let pleaseSubmit = plugin.openOrClosedShadowRoot.getElementById(
-      "pleaseSubmit"
-    );
-    let submitButton = plugin.openOrClosedShadowRoot.getElementById(
-      "submitButton"
-    );
-    // Test that we don't send the URL when urlOptIn is false.
-    plugin.openOrClosedShadowRoot.getElementById("submitURLOptIn").checked =
-      aConfig.urlOptIn;
-    submitButton.click();
-    Assert.equal(
-      content.getComputedStyle(pleaseSubmit).display == "block",
-      aConfig.shouldSubmissionUIBeVisible,
-      "The crash UI should be visible"
-    );
-  });
-
-  await crashReportStatus;
-});
-
-add_task(async function() {
-  config = {
-    shouldSubmissionUIBeVisible: true,
-    comment: "a test comment",
-    urlOptIn: true,
-  };
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED);
-
-  let pluginCrashed = promisePluginCrashed();
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_crashCommentAndURL.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  // Wait for the plugin to crash
-  await pluginCrashed;
-
-  let crashReportStatus = TestUtils.topicObserved(
-    "crash-report-status",
-    onSubmitStatus
-  );
-
-  // Test that the crash submission UI is actually visible and submit the crash report.
-  await SpecialPowers.spawn(gTestBrowser, [config], async function(aConfig) {
-    let doc = content.document;
-    let plugin = doc.getElementById("plugin");
-    let pleaseSubmit = plugin.openOrClosedShadowRoot.getElementById(
-      "pleaseSubmit"
-    );
-    let submitButton = plugin.openOrClosedShadowRoot.getElementById(
-      "submitButton"
-    );
-    // Test that we send the URL when urlOptIn is true.
-    plugin.openOrClosedShadowRoot.getElementById("submitURLOptIn").checked =
-      aConfig.urlOptIn;
-    plugin.openOrClosedShadowRoot.getElementById("submitComment").value =
-      aConfig.comment;
-    submitButton.click();
-    Assert.equal(
-      content.getComputedStyle(pleaseSubmit).display == "block",
-      aConfig.shouldSubmissionUIBeVisible,
-      "The crash UI should be visible"
-    );
-  });
-
-  await crashReportStatus;
-});
-
-add_task(async function() {
-  config = {
-    shouldSubmissionUIBeVisible: false,
-    comment: "",
-    urlOptIn: true,
-  };
-
-  // Deferred promise object used by the test to wait for the crash handler
-  let crashDeferred = PromiseUtils.defer();
-
-  // Clear out any minidumps we create from plugin crashes, this is needed
-  // because we do not submit the crash otherwise the submission process would
-  // have deleted the crash dump files for us.
-  let crashObserver = (subject, topic, data) => {
-    if (topic != "plugin-crashed") {
-      return;
-    }
-
-    let propBag = subject.QueryInterface(Ci.nsIPropertyBag2);
-    let minidumpID = propBag.getPropertyAsAString("pluginDumpID");
-    let additionalDumps = propBag.getPropertyAsACString("additionalMinidumps");
-
-    Services.crashmanager.ensureCrashIsPresent(minidumpID).then(() => {
-      let minidumpDir = Services.dirsvc.get("UAppData", Ci.nsIFile);
-      minidumpDir.append("Crash Reports");
-      minidumpDir.append("pending");
-
-      let pluginDumpFile = minidumpDir.clone();
-      pluginDumpFile.append(minidumpID + ".dmp");
-
-      let extraFile = minidumpDir.clone();
-      extraFile.append(minidumpID + ".extra");
-
-      pluginDumpFile.remove(false);
-      extraFile.remove(false);
-
-      if (additionalDumps.length) {
-        const names = additionalDumps.split(",");
-        for (const name of names) {
-          let additionalDumpFile = minidumpDir.clone();
-          additionalDumpFile.append(minidumpID + "-" + name + ".dmp");
-          additionalDumpFile.remove(false);
-        }
-      }
-
-      crashDeferred.resolve();
-    });
-  };
-
-  Services.obs.addObserver(crashObserver, "plugin-crashed");
-
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED);
-
-  let pluginCrashed = promisePluginCrashed();
-
-  // Make sure that the plugin container is too small to display the crash submission UI
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot +
-      "plugin_crashCommentAndURL.html?" +
-      encodeURIComponent(JSON.stringify({ width: 300, height: 300 }))
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  // Wait for the plugin to crash
-  await pluginCrashed;
-
-  // Test that the crash submission UI is not visible and do not submit a crash report.
-  await SpecialPowers.spawn(gTestBrowser, [config], async function(aConfig) {
-    let doc = content.document;
-    let plugin = doc.getElementById("plugin");
-    let pleaseSubmit = plugin.openOrClosedShadowRoot.getElementById(
-      "pleaseSubmit"
-    );
-    Assert.equal(
-      !!pleaseSubmit &&
-        content.getComputedStyle(pleaseSubmit).display == "block",
-      aConfig.shouldSubmissionUIBeVisible,
-      "Plugin crash UI should not be visible"
-    );
-  });
-
-  await crashDeferred.promise;
-  Services.obs.removeObserver(crashObserver, "plugin-crashed");
-});
-
-function promisePluginCrashed() {
-  return new ContentTask.spawn(gTestBrowser, {}, async function() {
-    await new Promise(resolve => {
-      addEventListener(
-        "PluginCrashReporterDisplayed",
-        function onPluginCrashed() {
-          removeEventListener("PluginCrashReporterDisplayed", onPluginCrashed);
-          resolve();
-        }
-      );
-    });
-  });
-}
-
-function onSubmitStatus(aSubject, aData) {
-  if (aData === "submitting") {
-    return false;
-  }
-
-  is(aData, "success", "The crash report should be submitted successfully");
-
-  let propBag = aSubject.QueryInterface(Ci.nsIPropertyBag);
-  if (aData == "success") {
-    let remoteID = getPropertyBagValue(propBag, "serverCrashID");
-    ok(!!remoteID, "serverCrashID should be set");
-
-    // Remove the submitted report file.
-    let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
-    file.initWithPath(Services.crashmanager._submittedDumpsDir);
-    file.append(remoteID + ".txt");
-    ok(file.exists(), "Submitted report file should exist");
-    file.remove(false);
-  }
-
-  let extra = getPropertyBagValue(propBag, "extra");
-  ok(extra instanceof Ci.nsIPropertyBag, "Extra data should be property bag");
-
-  let val = getPropertyBagValue(extra, "PluginUserComment");
-  if (config.comment) {
-    is(
-      val,
-      config.comment,
-      "Comment in extra data should match comment in textbox"
-    );
-  } else {
-    ok(
-      val === undefined,
-      "Comment should be absent from extra data when textbox is empty"
-    );
-  }
-
-  val = getPropertyBagValue(extra, "PluginContentURL");
-  if (config.urlOptIn) {
-    is(
-      val,
-      gBrowser.currentURI.spec,
-      "URL in extra data should match browser URL when opt-in checked"
-    );
-  } else {
-    ok(
-      val === undefined,
-      "URL should be absent from extra data when opt-in not checked"
-    );
-  }
-
-  return true;
-}
-
-function getPropertyBagValue(bag, key) {
-  try {
-    var val = bag.getProperty(key);
-  } catch (e) {
-    if (e.result != Cr.NS_ERROR_FAILURE) {
-      throw e;
-    }
-  }
-  return val;
-}
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_pluginCrashReportNonDeterminism.js
+++ /dev/null
@@ -1,321 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const { PromiseUtils } = ChromeUtils.import(
-  "resource://gre/modules/PromiseUtils.jsm"
-);
-
-const { PluginManager } = ChromeUtils.import(
-  "resource:///actors/PluginParent.jsm"
-);
-
-/**
- * With e10s, plugins must run in their own process. This means we have
- * three processes at a minimum when we're running a plugin:
- *
- * 1) The main browser, or "chrome" process
- * 2) The content process hosting the plugin instance
- * 3) The plugin process
- *
- * If the plugin process crashes, we cannot be sure if the chrome process
- * will hear about it first, or the content process will hear about it
- * first. Because of how IPC works, that's really up to the operating system,
- * and we assume any guarantees about it, so we have to account for both
- * possibilities.
- *
- * This test exercises the browser's reaction to both possibilities.
- */
-
-const CRASH_URL =
-  "http://example.com/browser/browser/base/content/test/plugins/plugin_crashCommentAndURL.html";
-
-/**
- * In order for our test to work, we need to be able to put a plugin
- * in a very specific state. Specifically, we need it to match the
- * :-moz-handler-crashed pseudoselector. The only way I can find to
- * do that is by actually crashing the plugin. So we wait for the
- * plugin to crash and show the "please" state (since that will
- * only show if both the message from the parent has been received
- * AND the PluginCrashed event has fired).
- *
- * Once in that state, we try to rewind the clock a little bit - we clear
- * out the crashData cache in the PluginContent with a message, and we also
- * override the pluginFallbackState of the <object> to fool PluginContent
- * into believing that the plugin is in a particular state.
- *
- * @param browser
- *        The browser that has loaded the CRASH_URL that we need to
- *        prepare to be in the special state.
- * @param pluginFallbackState
- *        The value we should override the <object>'s pluginFallbackState
- *        with.
- * @return Promise
- *        The Promise resolves when the plugin has officially been put into
- *        the crash reporter state, and then "rewound" to have the "status"
- *        attribute of the statusDiv removed. The resolved Promise returns
- *        the run ID for the crashed plugin. It rejects if we never get into
- *        the crash reporter state.
- */
-function preparePlugin(browser, pluginFallbackState) {
-  return SpecialPowers.spawn(browser, [pluginFallbackState], async function(
-    contentPluginFallbackState
-  ) {
-    let plugin = content.document.getElementById("plugin");
-    // CRASH_URL will load a plugin that crashes immediately. We
-    // wait until the plugin has finished being put into the crash
-    // state.
-    let statusDiv;
-    await ContentTaskUtils.waitForCondition(() => {
-      statusDiv = plugin.openOrClosedShadowRoot.getElementById("submitStatus");
-
-      return statusDiv && statusDiv.getAttribute("status") == "please";
-    }, "Timed out waiting for plugin to be in crash report state");
-
-    // "Rewind", by wiping out the status attribute...
-    statusDiv.removeAttribute("status");
-    // Somehow, I'm able to get away with overriding the getter for
-    // this XPCOM object. Probably because I've got chrome privledges.
-    Object.defineProperty(plugin, "pluginFallbackType", {
-      get() {
-        return contentPluginFallbackState;
-      },
-    });
-    return plugin.runID;
-  }).then(runID => {
-    let { currentWindowGlobal } = browser.frameLoader.browsingContext;
-    currentWindowGlobal
-      .getActor("Plugin")
-      .sendAsyncMessage("PluginParent:Test:ClearCrashData");
-    return runID;
-  });
-}
-
-// Bypass click-to-play
-setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED);
-
-// Deferred promise object used by the test to wait for the crash handler
-let crashDeferred = null;
-
-// Clear out any minidumps we create from plugins - we really don't care
-// about them.
-let crashObserver = (subject, topic, data) => {
-  if (topic != "plugin-crashed") {
-    return;
-  }
-
-  let propBag = subject.QueryInterface(Ci.nsIPropertyBag2);
-  let minidumpID = propBag.getPropertyAsAString("pluginDumpID");
-  let additionalMinidumps = propBag.getPropertyAsACString(
-    "additionalMinidumps"
-  );
-
-  Services.crashmanager.ensureCrashIsPresent(minidumpID).then(() => {
-    let minidumpDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
-    minidumpDir.append("minidumps");
-
-    let pluginDumpFile = minidumpDir.clone();
-    pluginDumpFile.append(minidumpID + ".dmp");
-
-    let extraFile = minidumpDir.clone();
-    extraFile.append(minidumpID + ".extra");
-
-    ok(pluginDumpFile.exists(), "Found minidump");
-    ok(extraFile.exists(), "Found extra file");
-
-    pluginDumpFile.remove(false);
-    extraFile.remove(false);
-
-    if (additionalMinidumps.length) {
-      const names = additionalMinidumps.split(",");
-      for (const name of names) {
-        let additionalDumpFile = minidumpDir.clone();
-        additionalDumpFile.append(minidumpID + "-" + name + ".dmp");
-        additionalDumpFile.remove(false);
-      }
-    }
-
-    crashDeferred.resolve();
-  });
-};
-
-Services.obs.addObserver(crashObserver, "plugin-crashed");
-// plugins.testmode will make PluginParent:Test:ClearCrashData work.
-Services.prefs.setBoolPref("plugins.testmode", true);
-registerCleanupFunction(() => {
-  Services.prefs.clearUserPref("plugins.testmode");
-  Services.obs.removeObserver(crashObserver, "plugin-crashed");
-});
-
-/**
- * In this case, the chrome process hears about the crash first.
- */
-add_task(async function testChromeHearsPluginCrashFirst() {
-  // Setup the crash observer promise
-  crashDeferred = PromiseUtils.defer();
-
-  // Open a remote window so that we can run this test even if e10s is not
-  // enabled by default.
-  let win = await BrowserTestUtils.openNewBrowserWindow({ remote: true });
-  let browser = win.gBrowser.selectedBrowser;
-
-  BrowserTestUtils.loadURI(browser, CRASH_URL);
-  await BrowserTestUtils.browserLoaded(browser);
-
-  // In this case, we want the <object> to match the -moz-handler-crashed
-  // pseudoselector, but we want it to seem still active, because the
-  // content process is not yet supposed to know that the plugin has
-  // crashed.
-  await preparePlugin(browser, Ci.nsIObjectLoadingContent.PLUGIN_ACTIVE);
-
-  // In this case, the parent responds immediately when the child asks
-  // for crash data. in `testContentHearsCrashFirst we will delay the
-  // response (simulating what happens if the parent doesn't know about
-  // the crash yet).
-  await SpecialPowers.spawn(browser, [], async function() {
-    // At this point, the content process should have heard the
-    // plugin crash message from the parent, and we are OK to emit
-    // the PluginCrashed event.
-    let plugin = content.document.getElementById("plugin");
-    let statusDiv = plugin.openOrClosedShadowRoot.getElementById(
-      "submitStatus"
-    );
-
-    if (statusDiv.getAttribute("status") == "please") {
-      Assert.ok(false, "Did not expect plugin to be in crash report mode yet.");
-      return;
-    }
-
-    // Now we need the plugin to seem crashed to the child actor, without
-    // actually crashing the plugin again. We hack around this by overriding
-    // the pluginFallbackType again.
-    Object.defineProperty(plugin, "pluginFallbackType", {
-      get() {
-        return Ci.nsIObjectLoadingContent.PLUGIN_CRASHED;
-      },
-    });
-
-    let event = new content.PluginCrashedEvent("PluginCrashed", {
-      pluginName: "",
-      pluginDumpID: "",
-      submittedCrashReport: false,
-      bubbles: true,
-      cancelable: true,
-    });
-
-    plugin.dispatchEvent(event);
-    // The plugin child actor will go fetch crash info in the parent. Wait
-    // for it to come back:
-    await ContentTaskUtils.waitForCondition(
-      () => statusDiv.getAttribute("status") == "please"
-    );
-    Assert.equal(
-      statusDiv.getAttribute("status"),
-      "please",
-      "Should have been showing crash report UI"
-    );
-  });
-  await BrowserTestUtils.closeWindow(win);
-  await crashDeferred.promise;
-});
-
-/**
- * In this case, the content process hears about the crash first.
- */
-add_task(async function testContentHearsCrashFirst() {
-  // Setup the crash observer promise
-  crashDeferred = PromiseUtils.defer();
-
-  // Open a remote window so that we can run this test even if e10s is not
-  // enabled by default.
-  let win = await BrowserTestUtils.openNewBrowserWindow({ remote: true });
-  let browser = win.gBrowser.selectedBrowser;
-
-  BrowserTestUtils.loadURI(browser, CRASH_URL);
-  await BrowserTestUtils.browserLoaded(browser);
-
-  // In this case, we want the <object> to match the -moz-handler-crashed
-  // pseudoselector, and we want the plugin to seem crashed, since the
-  // content process in this case has heard about the crash first.
-  let runID = await preparePlugin(
-    browser,
-    Ci.nsIObjectLoadingContent.PLUGIN_CRASHED
-  );
-
-  // We resolve this promise when we're ready to tell the child from the parent.
-  let allowParentToRespond = PromiseUtils.defer();
-  // This promise is resolved as soon as we're contacted by the child.
-  // It forces the parent not to respond until `allowParentToRespond` has been
-  // resolved.
-  let parentRequestPromise = new Promise(resolve => {
-    PluginManager.mockResponse(browser, function(data) {
-      resolve(data);
-
-      return allowParentToRespond.promise.then(() => {
-        return { pluginName: "", runID, state: "please" };
-      });
-    });
-  });
-
-  await SpecialPowers.spawn(browser, [], async function() {
-    // At this point, the content process has not yet heard from the
-    // parent about the crash report. Let's ensure that by making sure
-    // we're not showing the plugin crash report UI.
-    let plugin = content.document.getElementById("plugin");
-    let statusDiv = plugin.openOrClosedShadowRoot.getElementById(
-      "submitStatus"
-    );
-
-    if (statusDiv.getAttribute("status") == "please") {
-      Assert.ok(false, "Did not expect plugin to be in crash report mode yet.");
-    }
-
-    let event = new content.PluginCrashedEvent("PluginCrashed", {
-      pluginName: "",
-      pluginDumpID: "",
-      submittedCrashReport: false,
-      bubbles: true,
-      cancelable: true,
-    });
-
-    plugin.dispatchEvent(event);
-  });
-  let receivedData = await parentRequestPromise;
-  is(receivedData.runID, runID, "Should get a request for the same crash.");
-
-  await SpecialPowers.spawn(browser, [], function() {
-    let plugin = content.document.getElementById("plugin");
-    let statusDiv = plugin.openOrClosedShadowRoot.getElementById(
-      "submitStatus"
-    );
-    Assert.notEqual(
-      statusDiv.getAttribute("status"),
-      "please",
-      "Should not yet be showing crash report UI"
-    );
-  });
-
-  // Now allow the parent to respond to the child with crash info:
-  allowParentToRespond.resolve();
-
-  await SpecialPowers.spawn(browser, [], async function() {
-    // At this point, the content process will have heard the message
-    // from the parent and reacted to it. We should be showing the plugin
-    // crash report UI now.
-    let plugin = content.document.getElementById("plugin");
-    let statusDiv = plugin.openOrClosedShadowRoot.getElementById(
-      "submitStatus"
-    );
-    await ContentTaskUtils.waitForCondition(() => {
-      return statusDiv && statusDiv.getAttribute("status") == "please";
-    });
-
-    Assert.equal(
-      statusDiv.getAttribute("status"),
-      "please",
-      "Should have been showing crash report UI"
-    );
-  });
-
-  await BrowserTestUtils.closeWindow(win);
-  await crashDeferred.promise;
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_plugin_framed_domain.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "https://example.com/"
-);
-
-/**
- * Verify that giving permission to a plugin works based on the toplevel
- * page's principal, so that permissions meant for framed plugins persist
- * correctly for the duration of the session.
- */
-add_task(async function test_toplevel_frame_permission() {
-  await BrowserTestUtils.withNewTab(
-    gTestRoot + "empty_file.html",
-    async browser => {
-      // Add a cross-origin iframe and return when it's loaded.
-      await SpecialPowers.spawn(browser.browsingContext, [], async function() {
-        let doc = content.document;
-        let iframe = doc.createElement("iframe");
-        let loadPromise = ContentTaskUtils.waitForEvent(iframe, "load");
-        iframe.src = doc.location.href.replace(".com/", ".org/");
-        doc.body.appendChild(iframe);
-        // Note that we cannot return (rather than await) loadPromise, because
-        // it resolves with the event, which isn't structured-clonable.
-        await loadPromise;
-      });
-
-      // Show a plugin notification from the iframe's actor:
-      let { currentWindowGlobal } = browser.browsingContext.children[0];
-      let actor = currentWindowGlobal.getActor("Plugin");
-      const kHost = Cc["@mozilla.org/plugin/host;1"].getService(
-        Ci.nsIPluginHost
-      );
-      const { PLUGIN_CLICK_TO_PLAY } = Ci.nsIObjectLoadingContent;
-      let plugin = kHost.getPluginTags()[0];
-      actor.showClickToPlayNotification(
-        browser,
-        { id: plugin.id, fallbackType: PLUGIN_CLICK_TO_PLAY },
-        false /* showNow */
-      );
-
-      // Check that it is associated with the toplevel origin (.com), not
-      // the subframe's origin (.org):
-      let notification = PopupNotifications.getNotification(
-        "click-to-play-plugins",
-        browser
-      );
-      is(
-        notification.options.principal.host,
-        "example.com",
-        "Should use top host for permission prompt!"
-      );
-    }
-  );
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_plugin_reloading.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-var gTestBrowser = null;
-
-function updateAllTestPlugins(aState) {
-  setTestPluginEnabledState(aState, "Test Plug-in");
-  setTestPluginEnabledState(aState, "Second Test Plug-in");
-}
-
-add_task(async function() {
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    await asyncSetAndUpdateBlocklist(
-      gTestRoot + "blockNoPlugins",
-      gTestBrowser
-    );
-    gTestBrowser = null;
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  // Prime the blocklist service, the remote service doesn't launch on startup.
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html></html>"
-  );
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-});
-
-// Tests that a click-to-play plugin retains its activated state upon reloading
-add_task(async function() {
-  clearAllPluginPermissions();
-
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 1, Should have a click-to-play notification");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY,
-    "Test 2, plugin fallback type should be PLUGIN_CLICK_TO_PLAY"
-  );
-
-  // run the plugin
-  await promisePlayObject("test");
-
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.displayedType,
-    Ci.nsIObjectLoadingContent.TYPE_PLUGIN,
-    "Test 3, plugin should have started"
-  );
-  ok(pluginInfo.activated, "Test 4, plugin node should not be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    let npobj1 = Cu.waiveXrays(plugin).getObjectValue();
-    // eslint-disable-next-line no-self-assign
-    plugin.src = plugin.src;
-    let pluginsDiffer = false;
-    try {
-      Cu.waiveXrays(plugin).checkObjectValue(npobj1);
-    } catch (e) {
-      pluginsDiffer = true;
-    }
-
-    Assert.ok(pluginsDiffer, "Test 5, plugins differ.");
-  });
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(
-    pluginInfo.activated,
-    "Test 6, Plugin should have retained activated state."
-  );
-  is(
-    pluginInfo.displayedType,
-    Ci.nsIObjectLoadingContent.TYPE_PLUGIN,
-    "Test 7, plugin should have started"
-  );
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_pluginnotification.js
+++ /dev/null
@@ -1,626 +0,0 @@
-var gTestRoot = getRootDirectory(gTestPath).replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-var gTestBrowser = null;
-
-function updateAllTestPlugins(aState) {
-  setTestPluginEnabledState(aState, "Test Plug-in");
-  setTestPluginEnabledState(aState, "Second Test Plug-in");
-}
-
-add_task(async function() {
-  registerCleanupFunction(async function() {
-    clearAllPluginPermissions();
-    setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, "Test Plug-in");
-    setTestPluginEnabledState(
-      Ci.nsIPluginTag.STATE_ENABLED,
-      "Second Test Plug-in"
-    );
-    await asyncSetAndUpdateBlocklist(
-      gTestRoot + "blockNoPlugins",
-      gTestBrowser
-    );
-    gTestBrowser = null;
-    gBrowser.removeCurrentTab();
-    window.focus();
-  });
-});
-
-add_task(async function() {
-  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  gTestBrowser = gBrowser.selectedBrowser;
-
-  Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
-
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  // Prime the blocklist service, the remote service doesn't launch on startup.
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html></html>"
-  );
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-});
-
-// Tests a page with an unknown plugin in it.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_unknown.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let pluginInfo = await promiseForPluginInfo("unknown");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_UNSUPPORTED,
-    "Test 1a, plugin fallback type should be PLUGIN_UNSUPPORTED"
-  );
-});
-
-// Test that the doorhanger is shown when the user clicks on the overlay
-// after having previously blocked the plugin.
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Plugin should not be activated");
-
-  // Simulate clicking the "Allow" button.
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Plugin should be activated");
-
-  // Simulate clicking the "Block" button.
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.secondaryButton.click();
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Plugin should not be activated");
-
-  let browserLoaded = BrowserTestUtils.browserLoaded(gTestBrowser);
-  gTestBrowser.reload();
-  await browserLoaded;
-  notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-
-  // Simulate clicking the overlay
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let bounds = plugin.openOrClosedShadowRoot
-      .getElementById("main")
-      .getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-
-  ok(!notification.dismissed, "A plugin notification should be shown.");
-
-  clearAllPluginPermissions();
-});
-
-// Tests that going back will reshow the notification for click-to-play plugins
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>hi</html>"
-  );
-
-  // make sure the notification is gone
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(!notification, "Test 11b, Should not have a click-to-play notification");
-
-  gTestBrowser.webNavigation.goBack();
-
-  await promisePopupNotification("click-to-play-plugins");
-});
-
-// Tests that the "Allow Always" permission works for click-to-play plugins
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 12a, Plugin should not be activated");
-
-  // Simulate clicking the "Allow" button.
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-
-  await promiseForNotificationShown(notification);
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Test 12a, Plugin should be activated");
-});
-
-// Test that the "Always" permission, when set for just the Test plugin,
-// does not also allow the Second Test plugin.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_two_types.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  await promisePopupNotification("click-to-play-plugins");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let test = content.document.getElementById("test");
-    let secondtestA = content.document.getElementById("secondtestA");
-    let secondtestB = content.document.getElementById("secondtestB");
-    Assert.ok(
-      test.activated && !secondtestA.activated && !secondtestB.activated,
-      "Content plugins are set up"
-    );
-  });
-
-  clearAllPluginPermissions();
-});
-
-// Tests that the plugin's "activated" property is true for working plugins
-// with click-to-play disabled.
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_ENABLED);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test2.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let pluginInfo = await promiseForPluginInfo("test1");
-  ok(pluginInfo.activated, "Test 14, Plugin should be activated");
-});
-
-// Tests that the overlay is shown instead of alternate content when
-// plugins are click to play.
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_alternate_content.html"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let mainBox = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(!!mainBox, "Test 15, Plugin overlay should exist");
-  });
-});
-
-// Tests that mContentType is used for click-to-play plugins, and not the
-// inspected type.
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_bug749455.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 17, Should have a click-to-play notification");
-});
-
-// Tests that clicking the icon of the overlay activates the doorhanger
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  await asyncSetAndUpdateBlocklist(gTestRoot + "blockNoPlugins", gTestBrowser);
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 18g, Plugin should not be activated");
-
-  ok(
-    PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed,
-    "Test 19a, Doorhanger should start out dismissed"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let icon = plugin.openOrClosedShadowRoot.getElementById("icon");
-    let bounds = icon.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-
-  let condition = () =>
-    !PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed;
-  await promiseForCondition(condition);
-});
-
-// Tests that clicking the text of the overlay activates the plugin
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 18g, Plugin should not be activated");
-
-  ok(
-    PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed,
-    "Test 19c, Doorhanger should start out dismissed"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let text = plugin.openOrClosedShadowRoot.getElementById("clickToPlay");
-    let bounds = text.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-
-  let condition = () =>
-    !PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed;
-  await promiseForCondition(condition);
-});
-
-// Tests that clicking the box of the overlay activates the doorhanger
-// (just to be thorough)
-add_task(async function() {
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 18g, Plugin should not be activated");
-
-  ok(
-    PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed,
-    "Test 19e, Doorhanger should start out dismissed"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", 50, 50, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", 50, 50, 0, 1, 0, false, 0, 0);
-  });
-
-  let condition = () =>
-    !PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser)
-      .dismissed && PopupNotifications.panel.firstElementChild;
-  await promiseForCondition(condition);
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Test 19e, Plugin should not be activated");
-
-  clearAllPluginPermissions();
-});
-
-// Tests that a plugin in a div that goes from style="display: none" to
-// "display: block" can be clicked to activate.
-add_task(async function() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_hidden_to_visible.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 20a, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let overlay = plugin.openOrClosedShadowRoot.getElementById("main");
-    Assert.ok(!!overlay, "Test 20a, Plugin overlay should exist");
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let mainBox = plugin.openOrClosedShadowRoot.getElementById("main");
-    let overlayRect = mainBox.getBoundingClientRect();
-    Assert.ok(
-      overlayRect.width == 0 && overlayRect.height == 0,
-      "Test 20a, plugin should have an overlay with 0px width and height"
-    );
-  });
-
-  let pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 20b, plugin should not be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let div = doc.getElementById("container");
-    Assert.equal(
-      div.style.display,
-      "none",
-      "Test 20b, container div should be display: none"
-    );
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let div = doc.getElementById("container");
-    div.style.display = "block";
-  });
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    // Waiting for layout to flush and the overlay layout to compute
-    await new Promise(resolve => content.requestAnimationFrame(resolve));
-    await new Promise(resolve => content.requestAnimationFrame(resolve));
-
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let mainBox = plugin.openOrClosedShadowRoot.getElementById("main");
-    let overlayRect = mainBox.getBoundingClientRect();
-    Assert.ok(
-      overlayRect.width == 200 && overlayRect.height == 200,
-      "Test 20c, plugin should have overlay dims of 200px"
-    );
-  });
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(!pluginInfo.activated, "Test 20b, plugin should not be activated");
-
-  ok(notification.dismissed, "Test 20c, Doorhanger should start out dismissed");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    let bounds = plugin.getBoundingClientRect();
-    let left = (bounds.left + bounds.right) / 2;
-    let top = (bounds.top + bounds.bottom) / 2;
-    let utils = content.windowUtils;
-    utils.sendMouseEvent("mousedown", left, top, 0, 1, 0, false, 0, 0);
-    utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
-  });
-
-  let condition = () =>
-    !notification.dismissed && !!PopupNotifications.panel.firstElementChild;
-  await promiseForCondition(condition);
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  pluginInfo = await promiseForPluginInfo("test");
-  ok(pluginInfo.activated, "Test 20c, plugin should be activated");
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    Assert.ok(
-      !plugin.openOrClosedShadowRoot,
-      "Test 20c, CTP UA Widget Shadow Root is removed"
-    );
-  });
-
-  clearAllPluginPermissions();
-});
-
-// Tests that a click-to-play plugin resets its activated state when changing types
-add_task(async function() {
-  clearAllPluginPermissions();
-
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(notification, "Test 22, Should have a click-to-play notification");
-
-  // Plugin should start as CTP
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY,
-    "Test 23, plugin fallback type should be PLUGIN_CLICK_TO_PLAY"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    plugin.type = null;
-    // We currently don't properly change state just on type change,
-    // so rebind the plugin to tree. bug 767631
-    plugin.parentNode.appendChild(plugin);
-  });
-
-  pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.displayedType,
-    Ci.nsIObjectLoadingContent.TYPE_NULL,
-    "Test 23, plugin should be TYPE_NULL"
-  );
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let doc = content.document;
-    let plugin = doc.getElementById("test");
-    plugin.type = "application/x-test";
-    plugin.parentNode.appendChild(plugin);
-  });
-
-  pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.displayedType,
-    Ci.nsIObjectLoadingContent.TYPE_NULL,
-    "Test 23, plugin should be TYPE_NULL"
-  );
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY,
-    "Test 23, plugin fallback type should be PLUGIN_CLICK_TO_PLAY"
-  );
-  ok(!pluginInfo.activated, "Test 23, plugin node should not be activated");
-});
-
-// Plugin sync removal test. Note this test produces a notification drop down since
-// the plugin we add has zero dims.
-add_task(async function blockPluginSyncRemoved() {
-  updateAllTestPlugins(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_syncRemoved.html"
-  );
-
-  // Maybe there some better trick here, we need to wait for the page load, then
-  // wait for the js to execute in the page.
-  await waitForMs(500);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins"
-  );
-  ok(
-    notification,
-    "Test 25: There should be a plugin notification even if the plugin was immediately removed"
-  );
-  ok(
-    notification.dismissed,
-    "Test 25: The notification should be dismissed by default"
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    "data:text/html,<html>hi</html>"
-  );
-});
-
-// Tests a page with a blocked plugin in it and make sure the infoURL property
-// the blocklist file gets used.
-add_task(async function blockPluginInfoURL() {
-  clearAllPluginPermissions();
-
-  await asyncSetAndUpdateBlocklist(
-    gTestRoot + "blockPluginInfoURL",
-    gTestBrowser
-  );
-
-  await promiseTabLoadEvent(
-    gBrowser.selectedTab,
-    gTestRoot + "plugin_test.html"
-  );
-
-  // Work around for delayed PluginBindingAttached
-  info("Waiting for plugin bindings");
-  await promiseUpdatePluginBindings(gTestBrowser);
-
-  let notification = PopupNotifications.getNotification(
-    "click-to-play-plugins"
-  );
-
-  info("Waiting for notification to be shown");
-  // Since the plugin notification is dismissed by default, reshow it.
-  await promiseForNotificationShown(notification);
-
-  info("Waiting for plugin info");
-  let pluginInfo = await promiseForPluginInfo("test");
-  is(
-    pluginInfo.pluginFallbackType,
-    Ci.nsIObjectLoadingContent.PLUGIN_BLOCKLISTED,
-    "Test 26, plugin fallback type should be PLUGIN_BLOCKLISTED"
-  );
-  ok(!pluginInfo.activated, "Plugin should be activated.");
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_private_clicktoplay.js
+++ /dev/null
@@ -1,268 +0,0 @@
-var rootDir = getRootDirectory(gTestPath);
-const gTestRoot = rootDir;
-const gHttpTestRoot = rootDir.replace(
-  "chrome://mochitests/content/",
-  "http://127.0.0.1:8888/"
-);
-
-var gTestBrowser = null;
-var gNextTest = null;
-var gPluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
-
-var gPrivateWindow = null;
-var gPrivateBrowser = null;
-
-function finishTest() {
-  clearAllPluginPermissions();
-  gBrowser.removeCurrentTab();
-  if (gPrivateWindow) {
-    gPrivateWindow.close();
-  }
-  window.focus();
-}
-
-let createPrivateWindow = async function createPrivateWindow(url) {
-  gPrivateWindow = await BrowserTestUtils.openNewBrowserWindow({
-    private: true,
-  });
-  ok(!!gPrivateWindow, "should have created a private window.");
-  gPrivateBrowser = gPrivateWindow.gBrowser.selectedBrowser;
-
-  BrowserTestUtils.loadURI(gPrivateBrowser, url);
-  await BrowserTestUtils.browserLoaded(gPrivateBrowser, false, url);
-  info("loaded " + url);
-};
-
-add_task(async function test() {
-  registerCleanupFunction(function() {
-    clearAllPluginPermissions();
-    getTestPlugin().enabledState = Ci.nsIPluginTag.STATE_ENABLED;
-    getTestPlugin("Second Test Plug-in").enabledState =
-      Ci.nsIPluginTag.STATE_ENABLED;
-  });
-
-  // This test works under the assumption that private browsing windows
-  // share permissions with regular windows. Setting a pref to revert to this
-  // behavior. The test should be updated and the pref overwrite removed.
-  // See Bug 1588457
-  await SpecialPowers.pushPrefEnv({
-    set: [["permissions.isolateBy.privateBrowsing", false]],
-  });
-
-  let newTab = BrowserTestUtils.addTab(gBrowser);
-  gBrowser.selectedTab = newTab;
-  gTestBrowser = gBrowser.selectedBrowser;
-  let promise = BrowserTestUtils.browserLoaded(gTestBrowser);
-
-  getTestPlugin().enabledState = Ci.nsIPluginTag.STATE_CLICKTOPLAY;
-  getTestPlugin("Second Test Plug-in").enabledState =
-    Ci.nsIPluginTag.STATE_CLICKTOPLAY;
-  await promise;
-});
-
-add_task(async function test1a() {
-  await createPrivateWindow(gHttpTestRoot + "plugin_test.html");
-});
-
-add_task(async function test1b() {
-  let popupNotification = gPrivateWindow.PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gPrivateBrowser
-  );
-  ok(popupNotification, "Test 1b, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gPrivateBrowser, [], function() {
-    let plugin = content.document.getElementById("test");
-    ok(!plugin.activated, "Test 1b, Plugin should not be activated");
-  });
-
-  // Check the button status
-  let promiseShown = BrowserTestUtils.waitForEvent(
-    gPrivateWindow.PopupNotifications.panel,
-    "Shown"
-  );
-  popupNotification.reshow();
-
-  await promiseShown;
-  is(
-    gPrivateWindow.PopupNotifications.panel.firstElementChild.checkbox.hidden,
-    true,
-    "'Remember' checkbox should be hidden in private windows"
-  );
-
-  let promises = [
-    BrowserTestUtils.browserLoaded(
-      gTestBrowser,
-      false,
-      gHttpTestRoot + "plugin_test.html"
-    ),
-    BrowserTestUtils.waitForEvent(window, "activate"),
-  ];
-  gPrivateWindow.close();
-  BrowserTestUtils.loadURI(gTestBrowser, gHttpTestRoot + "plugin_test.html");
-  await Promise.all(promises);
-  await SimpleTest.promiseFocus(window);
-});
-
-add_task(async function test2a() {
-  // enable test plugin on this site
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(popupNotification, "Test 2a, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gTestBrowser, [], function() {
-    let plugin = content.document.getElementById("test");
-    ok(!plugin.activated, "Test 2a, Plugin should not be activated");
-  });
-
-  // Simulate clicking the "Allow Now" button.
-  let promiseShown = BrowserTestUtils.waitForEvent(
-    PopupNotifications.panel,
-    "Shown"
-  );
-  popupNotification.reshow();
-  await promiseShown;
-
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    let condition = () => plugin.activated;
-    await ContentTaskUtils.waitForCondition(
-      condition,
-      "Test 2a, Waited too long for plugin to activate"
-    );
-  });
-});
-
-add_task(async function test2c() {
-  let topicObserved = TestUtils.topicObserved(
-    "PopupNotifications-updateNotShowing"
-  );
-  await createPrivateWindow(gHttpTestRoot + "plugin_test.html");
-  await topicObserved;
-
-  let popupNotification = await TestUtils.waitForCondition(() => {
-    return gPrivateWindow.PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gPrivateBrowser
-    );
-  }, "Waiting for click-to-play-plugins notification in the private window");
-  ok(popupNotification, "Test 2c, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gPrivateBrowser, [], function() {
-    let plugin = content.document.getElementById("test");
-    ok(plugin.activated, "Test 2c, Plugin should be activated");
-  });
-
-  // Check the button status
-  let promiseShown = BrowserTestUtils.waitForEvent(
-    gPrivateWindow.PopupNotifications.panel,
-    "Shown"
-  );
-  popupNotification.reshow();
-  await promiseShown;
-  is(
-    gPrivateWindow.PopupNotifications.panel.firstElementChild.secondaryButton
-      .hidden,
-    false,
-    "Test 2c, Activated plugin in a private window should have visible 'Block' button."
-  );
-  is(
-    gPrivateWindow.PopupNotifications.panel.firstElementChild.checkbox.hidden,
-    true,
-    "Test 2c, Activated plugin in a private window should not have visible 'Remember' checkbox."
-  );
-
-  clearAllPluginPermissions();
-
-  let promises = [
-    BrowserTestUtils.browserLoaded(
-      gTestBrowser,
-      false,
-      gHttpTestRoot + "plugin_test.html"
-    ),
-    BrowserTestUtils.waitForEvent(window, "activate"),
-  ];
-  gPrivateWindow.close();
-  BrowserTestUtils.loadURI(gTestBrowser, gHttpTestRoot + "plugin_test.html");
-  await Promise.all(promises);
-  await SimpleTest.promiseFocus(window);
-});
-
-add_task(async function test3a() {
-  // enable test plugin on this site
-  let popupNotification = PopupNotifications.getNotification(
-    "click-to-play-plugins",
-    gTestBrowser
-  );
-  ok(popupNotification, "Test 3a, Should have a click-to-play notification");
-
-  await SpecialPowers.spawn(gTestBrowser, [], function() {
-    let plugin = content.document.getElementById("test");
-    ok(!plugin.activated, "Test 3a, Plugin should not be activated");
-  });
-
-  // Simulate clicking the "Allow" button.
-  let promiseShown = BrowserTestUtils.waitForEvent(
-    PopupNotifications.panel,
-    "Shown"
-  );
-  popupNotification.reshow();
-  await promiseShown;
-  PopupNotifications.panel.firstElementChild.button.click();
-
-  await SpecialPowers.spawn(gTestBrowser, [], async function() {
-    let plugin = content.document.getElementById("test");
-    let condition = () => plugin.activated;
-    await ContentTaskUtils.waitForCondition(
-      condition,
-      "Test 3a, Waited too long for plugin to activate"
-    );
-  });
-});
-
-add_task(async function test3c() {
-  let topicObserved = TestUtils.topicObserved(
-    "PopupNotifications-updateNotShowing"
-  );
-  await createPrivateWindow(gHttpTestRoot + "plugin_test.html");
-  await topicObserved;
-
-  let popupNotification = await TestUtils.waitForCondition(() => {
-    return gPrivateWindow.PopupNotifications.getNotification(
-      "click-to-play-plugins",
-      gPrivateBrowser
-    );
-  }, "Waiting for click-to-play-plugins notification in the private window");
-  ok(popupNotification, "Test 3c, Should have a click-to-play notification");
-
-  // Check the button status
-  let promiseShown = BrowserTestUtils.waitForEvent(
-    gPrivateWindow.PopupNotifications.panel,
-    "Shown"
-  );
-  popupNotification.reshow();
-  await promiseShown;
-  is(
-    gPrivateWindow.PopupNotifications.panel.firstElementChild.secondaryButton
-      .hidden,
-    false,
-    "Test 3c, Activated plugin in a private window should have visible 'Block' button."
-  );
-  is(
-    gPrivateWindow.PopupNotifications.panel.firstElementChild.checkbox.hidden,
-    true,
-    "Test 3c, Activated plugin in a private window should not have visible 'Remember' checkbox."
-  );
-
-  BrowserTestUtils.loadURI(
-    gPrivateBrowser,
-    gHttpTestRoot + "plugin_two_types.html"
-  );
-  await BrowserTestUtils.browserLoaded(gPrivateBrowser);
-
-  finishTest();
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/browser_subframe_access_hidden_plugins.js
+++ /dev/null
@@ -1,94 +0,0 @@
-"use strict";
-
-const TEST_PLUGIN_NAME = "Test Plug-in";
-const HIDDEN_CTP_PLUGIN_PREF = "plugins.navigator.hidden_ctp_plugin";
-const DOMAIN_1 = "http://example.com";
-const DOMAIN_2 = "http://mochi.test:8888";
-
-/**
- * If a plugin is click-to-play and named in HIDDEN_CTP_PLUGIN_PREF,
- * then the plugin should be hidden in the navigator.plugins list by
- * default. However, if a plugin has been allowed on a top-level
- * document, we should let subframes of that document access
- * navigator.plugins.
- */
-add_task(async function setup() {
-  // We'll make the Test Plugin click-to-play.
-  let originalPluginState = getTestPluginEnabledState();
-  setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-  registerCleanupFunction(() => {
-    setTestPluginEnabledState(originalPluginState);
-    clearAllPluginPermissions();
-  });
-
-  // And then make the plugin hidden.
-  await SpecialPowers.pushPrefEnv({
-    set: [[HIDDEN_CTP_PLUGIN_PREF, TEST_PLUGIN_NAME]],
-  });
-});
-
-add_task(async function test_plugin_accessible_in_subframe() {
-  // Let's make it so that DOMAIN_1 allows the test plugin to
-  // be activated. This permission will be cleaned up inside
-  // our registerCleanupFunction when the test ends.
-  let ssm = Services.scriptSecurityManager;
-  let principal = ssm.createContentPrincipalFromOrigin(DOMAIN_1);
-  let pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(
-    Ci.nsIPluginHost
-  );
-  let permString = pluginHost.getPermissionStringForType("application/x-test");
-  Services.perms.addFromPrincipal(
-    principal,
-    permString,
-    Ci.nsIPermissionManager.ALLOW_ACTION,
-    Ci.nsIPermissionManager.EXPIRE_NEVER,
-    0 /* expireTime */
-  );
-
-  await BrowserTestUtils.withNewTab(
-    {
-      gBrowser,
-      url: DOMAIN_1,
-    },
-    async function(browser) {
-      await SpecialPowers.spawn(
-        browser,
-        [[TEST_PLUGIN_NAME, DOMAIN_2]],
-        async function([pluginName, domain2]) {
-          Assert.ok(
-            content.navigator.plugins[pluginName],
-            "Top-level document should find Test Plugin"
-          );
-
-          // Now manually create a subframe hosted at domain2...
-          let subframe = content.document.createElement("iframe");
-          subframe.src = domain2;
-          let loadedPromise = ContentTaskUtils.waitForEvent(subframe, "load");
-          content.document.body.appendChild(subframe);
-          await loadedPromise;
-
-          // Make sure that the HiddenPlugin event never fires in content.
-          let sawEvent = false;
-          docShell.chromeEventHandler.addEventListener(
-            "HiddenPlugin",
-            function onHiddenPlugin(e) {
-              sawEvent = true;
-              docShell.chromeEventHandler.removeEventListener(
-                "HiddenPlugin",
-                onHiddenPlugin,
-                true
-              );
-            },
-            true
-          );
-
-          Assert.ok(
-            subframe.contentWindow.navigator.plugins[pluginName],
-            "Subframe should find Test Plugin"
-          );
-          Assert.ok(!sawEvent, "Should not have seen the HiddenPlugin event.");
-        }
-      );
-    }
-  );
-});
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_add_dynamically.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<script>
-function addPlugin(aId, aType = "application/x-test") {
-  var embed = document.createElement("embed");
-  embed.setAttribute("id", aId);
-  embed.style.width = "200px";
-  embed.style.height = "200px";
-  embed.setAttribute("type", aType);
-  return document.body.appendChild(embed);
-}
-</script>
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_alternate_content.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!-- bug 739575 -->
-<html>
-<head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
-</head>
-<body>
-<object id="test" type="application/x-test" style="height: 200px; width:200px">
-<p><a href="about:blank">you should not see this link when plugins are click-to-play</a></p>
-</object>
-</body></html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_big.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="test" style="width: 500px; height: 500px" type="application/x-test">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_both.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="unknown" style="width: 100px; height: 100px" type="application/x-unknown">
-<embed id="test" style="width: 100px; height: 100px" type="application/x-test">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_both2.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="test" style="width: 100px; height: 100px" type="application/x-test">
-<embed id="unknown" style="width: 100px; height: 100px" type="application/x-unknown">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_bug744745.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head><meta charset="utf-8"/></head>
-<body>
-<style>
-.x {
-  opacity: 0 !important;
-}
-</style>
-<object id="test" class="x" type="application/x-test" width=200 height=200></object>
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_bug749455.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!-- bug 749455 -->
-<html>
-<head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
-</head>
-<body>
-<embed src="plugin_bug749455.html" type="application/x-test" width="100px" height="100px"></embed>
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_bug787619.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head><meta charset="utf-8"/></head>
-<body>
-  <a id="wrapper">
-    <embed id="plugin" style="width: 200px; height: 200px" type="application/x-test">
-  </a>
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_crashCommentAndURL.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <script type="text/javascript">
-      function crash() {
-        var plugin = document.getElementById("plugin");
-        var argStr = decodeURIComponent(window.location.search.substr(1));
-        if (argStr) {
-          var args = JSON.parse(argStr);
-          for (var key in args)
-            plugin.setAttribute(key, args[key]);
-        }
-        try {
-          plugin.crash();
-        } catch (err) {}
-      }
-    </script>
-  </head>
-  <body onload="crash();">
-    <embed id="plugin" type="application/x-test"
-           width="400" height="400"
-           drawmode="solid" color="FF00FFFF">
-    </embed>
-  </body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_hidden_to_visible.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-  <div id="container" style="display: none">
-    <object id="test" type="application/x-test" style="width: 200px; height: 200px;"></object>
-  </div>
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_iframe.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<iframe id="frame" with="400" height="400" src="plugin_test.html">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_overlay_styles.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-
-  <div id="testcase1" class="testcase">
-    <object width="10" height="10" type="application/x-test"></object>
-  </div>
-
-  <div id="testcase2" class="testcase">
-    <object width="40" height="40" type="application/x-test"></object>
-  </div>
-
-  <div id="testcase3" class="testcase">
-    <object width="100" height="70" type="application/x-test"></object>
-  </div>
-
-  <div id="testcase4" class="testcase">
-    <object width="200" height="200" type="application/x-test"></object>
-  </div>
-
-  <div id="testcase5" class="testcase">
-    <object width="300" height="300" type="application/x-test"></object>
-  </div>
-
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_shouldShowOverlay.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<style>
-object {
-  width: 200px;
-  height: 200px;
-}
-
-.testcase {
-  position: relative;
-  margin-bottom: 5px;
-}
-
-.cover {
-  position: absolute;
-  width: 20px;
-  height: 20px;
-  background-color: green;
-}
-</style>
-</head>
-<body>
-
-  <div id="testcase1" class="testcase" shouldshow="true"
-       style="top: -100px">
-    <!-- Should show overlay even though the top part is outside
-       of the page. -->
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase2" class="testcase" shouldshow="true"
-       style="left: -100px">
-    <!-- Should show overlay even though the left part is outside
-       of the page. -->
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase3" class="testcase" shouldshow="false"
-       style="left: -210px">
-    <!-- The object is entirely outside of the page, so the overlay
-         should NOT show. -->
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase4" class="testcase" shouldshow="true">
-    <!-- Should show overlay even though the top-left corner is covered. -->
-    <div class="cover" style="top: 0; left: 0"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase5" class="testcase" shouldshow="true">
-    <!-- Should show overlay even though the top-right corner is covered. -->
-    <div class="cover" style="top: 0; left: 180px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase6" class="testcase" shouldshow="true">
-    <!-- Should show overlay even though the bottom-left corner is covered. -->
-    <div class="cover" style="top: 180px; left: 0"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-
-  <div id="testcase7" class="testcase" shouldshow="true">
-    <!-- Should show overlay even though the bottom-right corner is covered. -->
-    <div class="cover" style="top: 180px; left: 180px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase8" class="testcase" shouldshow="true">
-    <!-- Should show overlay even though the center is covered. -->
-    <div class="cover" style="top: 90px; left: 90px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase9" class="testcase" shouldshow="true">
-    <!-- Should show overlay even though multiple points are covered,
-       but not all of them. -->
-    <div class="cover" style="top: 0; left: 0"></div>
-    <div class="cover" style="top: 0; left: 180px"></div>
-    <div class="cover" style="top: 180px; left: 0"></div>
-    <div class="cover" style="top: 180px; left: 180px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase10" class="testcase" shouldshow="true">
-    <!-- Another case where 4 are covered, but not all. -->
-    <div class="cover" style="top: 90px; left: 90px"></div>
-    <div class="cover" style="top: 0; left: 180px"></div>
-    <div class="cover" style="top: 180px; left: 0"></div>
-    <div class="cover" style="top: 180px; left: 180px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase11" class="testcase" shouldshow="false">
-    <!-- All corners and center are covered here, so in this
-         case the overlay should NOT show. -->
-    <div class="cover" style="top: 0; left: 0"></div>
-    <div class="cover" style="top: 0; left: 180px"></div>
-    <div class="cover" style="top: 180px; left: 0"></div>
-    <div class="cover" style="top: 180px; left: 180px"></div>
-    <div class="cover" style="top: 90px; left: 90px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-  <div id="testcase12" class="testcase" shouldshow="false">
-        <!-- All corners and center are covered here, by a single
-        element. In this case the overlay should NOT show. -->
-    <div class="cover" style="width: 200px; height:200px"></div>
-    <object type="application/x-test"></object>
-  </div>
-
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_small.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="test" style="width: 10px; height: 10px" type="application/x-test">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_small_2.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="test" style="width: 10px; height: 10px" type="application/x-second-test">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_syncRemoved.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<body>
-<script type="text/javascript">
-  // create an embed, insert it in the doc and immediately remove it
-  var embed = document.createElement("embed");
-  embed.setAttribute("id", "test");
-  embed.setAttribute("type", "application/x-test");
-  embed.setAttribute("style", "width: 0px; height: 0px;");
-  document.body.appendChild(embed);
-  window.getComputedStyle(embed).top;
-  document.body.remove(embed);
-</script>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_test2.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="test1" style="width: 200px; height: 200px" type="application/x-test">
-<embed id="test2" style="width: 200px; height: 200px" type="application/x-test">
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_two_types.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head><meta charset="utf-8"/></head>
-<body>
-<embed id="test" style="width: 200px; height: 200px" type="application/x-test"/>
-<embed id="secondtestA" style="width: 200px; height: 200px" type="application/x-second-test"/>
-<embed id="secondtestB" style="width: 200px; height: 200px" type="application/x-second-test"/>
-</body>
-</html>
deleted file mode 100644
--- a/browser/base/content/test/plugins/plugin_unknown.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-</head>
-<body>
-<embed id="unknown" style="width: 100px; height: 100px" type="application/x-unknown">
-</body>
-</html>