diff --git a/toolkit/components/extensions/test/mochitest/chrome.ini b/toolkit/components/extensions/test/mochitest/chrome.ini
index 70ab3c37816c..d9ca44b6cb10 100644
--- a/toolkit/components/extensions/test/mochitest/chrome.ini
+++ b/toolkit/components/extensions/test/mochitest/chrome.ini
@@ -21,7 +21,6 @@ skip-if = (os == 'android') # browser.tabs is undefined. Bug 1258975 on android.
[test_chrome_ext_trustworthy_origin.html]
[test_chrome_ext_webnavigation_resolved_urls.html]
skip-if = (os == 'android') # browser.tabs is undefined. Bug 1258975 on android.
-[test_chrome_ext_shutdown_cleanup.html]
[test_chrome_native_messaging_paths.html]
skip-if = os != "mac" && os != "linux"
[test_ext_cookies_expiry.html]
diff --git a/toolkit/components/extensions/test/mochitest/test_chrome_ext_shutdown_cleanup.html b/toolkit/components/extensions/test/mochitest/test_chrome_ext_shutdown_cleanup.html
deleted file mode 100644
index f98434145943..000000000000
--- a/toolkit/components/extensions/test/mochitest/test_chrome_ext_shutdown_cleanup.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- WebExtension test
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js b/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js
new file mode 100644
index 000000000000..c0ce21335be7
--- /dev/null
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js
@@ -0,0 +1,30 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+
+"use strict";
+
+const {GlobalManager} = Cu.import("resource://gre/modules/Extension.jsm", {});
+
+add_task(function* test_global_manager_shutdown_cleanup() {
+ equal(GlobalManager.initialized, false,
+ "GlobalManager start as not initialized");
+
+ function background() {
+ browser.test.notifyPass("background page loaded");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ background,
+ });
+
+ yield extension.startup();
+ yield extension.awaitFinish("background page loaded");
+
+ equal(GlobalManager.initialized, true,
+ "GlobalManager has been initialized once an extension is started");
+
+ yield extension.unload();
+
+ equal(GlobalManager.initialized, false,
+ "GlobalManager has been uninitialized once all the webextensions have been stopped");
+});
diff --git a/toolkit/components/extensions/test/xpcshell/xpcshell.ini b/toolkit/components/extensions/test/xpcshell/xpcshell.ini
index 085d5c23a138..4f3ec224c995 100644
--- a/toolkit/components/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/components/extensions/test/xpcshell/xpcshell.ini
@@ -58,6 +58,7 @@ skip-if = release_or_beta
[test_ext_schemas_api_injection.js]
[test_ext_schemas_async.js]
[test_ext_schemas_allowed_contexts.js]
+[test_ext_shutdown_cleanup.js]
[test_ext_simple.js]
[test_ext_storage.js]
[test_ext_storage_sync.js]