Bug 1772360 - Remove unnecessary call for XPCOMUtils.defineLazyGlobalGetters. r=florian,webdriver-reviewers,webcompat-reviewers,denschub,whimboo
authorTooru Fujisawa <arai_a@mac.com>
Mon, 06 Jun 2022 04:42:10 +0000
changeset 619764 f35b0fca8a4ebcadb14c2c57a4cec7d9e3ea8aaa
parent 619763 d17e4b6ccd54649d53159081516c1698832091a1
child 619765 6fd0143dbbe49b842d7e0e2e142d9a55221d189b
push id39803
push userbszekely@mozilla.com
push dateMon, 06 Jun 2022 09:37:09 +0000
treeherdermozilla-central@6951cd731119 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersflorian, webdriver-reviewers, webcompat-reviewers, denschub, whimboo
bugs1772360
milestone103.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 1772360 - Remove unnecessary call for XPCOMUtils.defineLazyGlobalGetters. r=florian,webdriver-reviewers,webcompat-reviewers,denschub,whimboo Differential Revision: https://phabricator.services.mozilla.com/D148168
browser/actors/ContentSearchParent.jsm
browser/actors/ContextMenuChild.jsm
browser/components/BrowserContentHandler.jsm
browser/components/attribution/AttributionCode.jsm
browser/components/customizableui/CustomizeMode.jsm
browser/components/enterprisepolicies/Policies.jsm
browser/components/enterprisepolicies/helpers/ProxyPolicies.jsm
browser/components/migration/360seMigrationUtils.jsm
browser/components/migration/EdgeProfileMigrator.jsm
browser/components/migration/IEProfileMigrator.jsm
browser/components/migration/MSMigrationUtils.jsm
browser/components/migration/MigrationUtils.jsm
browser/components/migration/SafariProfileMigrator.jsm
browser/components/newtab/lib/DownloadsManager.jsm
browser/components/newtab/lib/ShortURL.jsm
browser/components/newtab/lib/TippyTopProvider.jsm
browser/components/places/PlacesUIUtils.jsm
browser/components/pocket/content/pktApi.jsm
browser/components/translation/BingTranslator.jsm
browser/components/translation/GoogleTranslator.jsm
browser/components/translation/TranslationDocument.jsm
browser/components/translation/YandexTranslator.jsm
browser/components/uitour/UITour.jsm
browser/components/urlbar/UrlbarProviderQuickSuggest.jsm
browser/components/urlbar/UrlbarQuickSuggest.jsm
browser/modules/FaviconLoader.jsm
browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Tabs.jsm
dom/manifest/ImageObjectProcessor.jsm
dom/manifest/ManifestProcessor.jsm
dom/manifest/ValueExtractor.jsm
remote/cdp/domains/parent/Network.jsm
remote/marionette/driver.js
remote/marionette/interaction.js
remote/marionette/l10n.js
remote/shared/webdriver/Capabilities.jsm
toolkit/actors/ContentMetaChild.jsm
toolkit/actors/SelectChild.jsm
toolkit/actors/ViewSourcePageChild.jsm
toolkit/components/captivedetect/CaptiveDetect.jsm
toolkit/components/cleardata/SiteDataTestUtils.jsm
toolkit/components/extensions/ExtensionContent.jsm
toolkit/components/extensions/ExtensionTestCommon.jsm
toolkit/components/extensions/ExtensionUtils.jsm
toolkit/components/extensions/Schemas.jsm
toolkit/components/extensions/webrequest/WebRequestUpload.jsm
toolkit/components/normandy/lib/Heartbeat.jsm
toolkit/components/normandy/lib/NormandyApi.jsm
toolkit/components/passwordmgr/LoginManagerParent.jsm
toolkit/components/passwordmgr/LoginRecipes.jsm
toolkit/components/pdfjs/content/PdfStreamConverter.jsm
toolkit/components/places/BookmarkHTMLUtils.jsm
toolkit/components/places/Bookmarks.jsm
toolkit/components/places/History.jsm
toolkit/components/places/PlacesSyncUtils.jsm
toolkit/components/places/PlacesTransactions.jsm
toolkit/components/places/PlacesUtils.jsm
toolkit/components/places/SyncedBookmarksMirror.jsm
toolkit/components/reader/ReaderMode.jsm
toolkit/components/taskscheduler/TaskSchedulerMacOSImpl.jsm
toolkit/components/taskscheduler/TaskSchedulerWinImpl.jsm
toolkit/components/thumbnails/PageThumbs.jsm
toolkit/components/utils/JsonSchemaValidator.jsm
toolkit/components/utils/Sampling.jsm
toolkit/crashreporter/CrashSubmit.jsm
toolkit/modules/AsanReporter.jsm
toolkit/modules/PropertyListUtils.jsm
toolkit/modules/ServiceRequest.jsm
toolkit/modules/Troubleshoot.jsm
toolkit/mozapps/extensions/AddonManager.jsm
toolkit/mozapps/extensions/internal/XPIInstall.jsm
toolkit/mozapps/update/UpdateService.jsm
--- a/browser/actors/ContentSearchParent.jsm
+++ b/browser/actors/ContentSearchParent.jsm
@@ -5,18 +5,16 @@
 
 var EXPORTED_SYMBOLS = ["ContentSearchParent", "ContentSearch"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   BrowserSearchTelemetry: "resource:///modules/BrowserSearchTelemetry.jsm",
   FormHistory: "resource://gre/modules/FormHistory.jsm",
   PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
   SearchSuggestionController:
     "resource://gre/modules/SearchSuggestionController.jsm",
   UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
 });
--- a/browser/actors/ContextMenuChild.jsm
+++ b/browser/actors/ContextMenuChild.jsm
@@ -8,18 +8,16 @@
 
 var EXPORTED_SYMBOLS = ["ContextMenuChild"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   E10SUtils: "resource://gre/modules/E10SUtils.jsm",
   SpellCheckHelper: "resource://gre/modules/InlineSpellChecker.jsm",
   LoginManagerChild: "resource://gre/modules/LoginManagerChild.jsm",
   WebNavigationFrames: "resource://gre/modules/WebNavigationFrames.jsm",
   PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
   SelectionUtils: "resource://gre/modules/SelectionUtils.jsm",
   InlineSpellCheckerContent:
--- a/browser/components/BrowserContentHandler.jsm
+++ b/browser/components/BrowserContentHandler.jsm
@@ -30,17 +30,16 @@ XPCOMUtils.defineLazyServiceGetters(this
   UpdateManager: ["@mozilla.org/updates/update-manager;1", "nsIUpdateManager"],
   WinTaskbar: ["@mozilla.org/windows-taskbar;1", "nsIWinTaskbar"],
   WindowsUIUtils: ["@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils"],
 });
 
 XPCOMUtils.defineLazyGetter(this, "gSystemPrincipal", () =>
   Services.scriptSecurityManager.getSystemPrincipal()
 );
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 
 // One-time startup homepage override configurations
 const ONCE_DOMAINS = ["mozilla.org", "firefox.com"];
 const ONCE_PREF = "browser.startup.homepage_override.once";
 
 // Index of Private Browsing icon in firefox.exe
 // Must line up with the one in nsNativeAppSupportWin.h.
 const PRIVATE_BROWSING_ICON_INDEX = 5;
--- a/browser/components/attribution/AttributionCode.jsm
+++ b/browser/components/attribution/AttributionCode.jsm
@@ -32,17 +32,16 @@ XPCOMUtils.defineLazyGetter(this, "log",
     // tip: set maxLogLevel to "debug" and use log.debug() to create detailed
     // messages during development. See LOG_LEVELS in Console.jsm for details.
     maxLogLevel: "error",
     maxLogLevelPref: "browser.attribution.loglevel",
     prefix: "AttributionCode",
   };
   return new ConsoleAPI(consoleOptions);
 });
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 
 // This maximum length was originally based on how much space we have in the PE
 // file header that we store attribution codes in for full and stub installers.
 // Windows Store builds instead use a "Campaign ID" passed through URLs to send
 // attribution information, which Microsoft's documentation claims must be no
 // longer than 100 characters. In our own testing, we've been able to retrieve
 // the first 208 characters of the Campaign ID. Either way, the "max" length
 // for Microsoft Store builds is much lower than this limit implies.
--- a/browser/components/customizableui/CustomizeMode.jsm
+++ b/browser/components/customizableui/CustomizeMode.jsm
@@ -28,18 +28,16 @@ const { CustomizableUI } = ChromeUtils.i
 );
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["CSS"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "AddonManager",
   "resource://gre/modules/AddonManager.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "AMTelemetry",
--- a/browser/components/enterprisepolicies/Policies.jsm
+++ b/browser/components/enterprisepolicies/Policies.jsm
@@ -30,18 +30,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
   AddonManager: "resource://gre/modules/AddonManager.jsm",
   BookmarksPolicies: "resource:///modules/policies/BookmarksPolicies.jsm",
   CustomizableUI: "resource:///modules/CustomizableUI.jsm",
   FileUtils: "resource://gre/modules/FileUtils.jsm",
   ProxyPolicies: "resource:///modules/policies/ProxyPolicies.jsm",
   WebsiteFilter: "resource:///modules/policies/WebsiteFilter.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["File", "FileReader"]);
-
 const PREF_LOGLEVEL = "browser.policies.loglevel";
 const BROWSER_DOCUMENT_URL = AppConstants.BROWSER_CHROME_URL;
 const ABOUT_CONTRACT = "@mozilla.org/network/protocol/about;1?what=";
 
 let env = Cc["@mozilla.org/process/environment;1"].getService(
   Ci.nsIEnvironment
 );
 const isXpcshell = env.exists("XPCSHELL_TEST_PROFILE_DIR");
--- a/browser/components/enterprisepolicies/helpers/ProxyPolicies.jsm
+++ b/browser/components/enterprisepolicies/helpers/ProxyPolicies.jsm
@@ -3,18 +3,16 @@
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 const PREF_LOGLEVEL = "browser.policies.loglevel";
 
 XPCOMUtils.defineLazyGetter(this, "log", () => {
   let { ConsoleAPI } = ChromeUtils.import("resource://gre/modules/Console.jsm");
   return new ConsoleAPI({
     prefix: "ProxyPolicies.jsm",
     // tip: set maxLogLevel to "debug" and use log.debug() to create detailed
     // messages during development. See LOG_LEVELS in Console.jsm for details.
--- a/browser/components/migration/360seMigrationUtils.jsm
+++ b/browser/components/migration/360seMigrationUtils.jsm
@@ -4,17 +4,16 @@
 
 "use strict";
 
 var EXPORTED_SYMBOLS = ["Qihoo360seMigrationUtils"];
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 XPCOMUtils.defineLazyModuleGetters(this, {
   MigrationUtils: "resource:///modules/MigrationUtils.jsm",
   PlacesUIUtils: "resource:///modules/PlacesUIUtils.jsm",
   PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
   Sqlite: "resource://gre/modules/Sqlite.jsm",
 });
 
 XPCOMUtils.defineLazyGetter(
--- a/browser/components/migration/EdgeProfileMigrator.jsm
+++ b/browser/components/migration/EdgeProfileMigrator.jsm
@@ -28,18 +28,16 @@ ChromeUtils.defineModuleGetter(
   "resource:///modules/PlacesUIUtils.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "ESEDBReader",
   "resource:///modules/ESEDBReader.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 const kEdgeRegistryRoot =
   "SOFTWARE\\Classes\\Local Settings\\Software\\" +
   "Microsoft\\Windows\\CurrentVersion\\AppContainer\\Storage\\" +
   "microsoft.microsoftedge_8wekyb3d8bbwe\\MicrosoftEdge";
 const kEdgeDatabasePath = "AC\\MicrosoftEdge\\User\\Default\\DataStore\\Data\\";
 
 XPCOMUtils.defineLazyGetter(this, "gEdgeDatabase", function() {
   let edgeDir = MSMigrationUtils.getEdgeLocalDataFolder();
--- a/browser/components/migration/IEProfileMigrator.jsm
+++ b/browser/components/migration/IEProfileMigrator.jsm
@@ -7,19 +7,16 @@
 const kLoginsKey =
   "Software\\Microsoft\\Internet Explorer\\IntelliForms\\Storage2";
 
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm");
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { MigrationUtils, MigratorPrototype } = ChromeUtils.import(
   "resource:///modules/MigrationUtils.jsm"
 );
 const { MSMigrationUtils } = ChromeUtils.import(
   "resource:///modules/MSMigrationUtils.jsm"
 );
 
 ChromeUtils.defineModuleGetter(
@@ -33,18 +30,16 @@ ChromeUtils.defineModuleGetter(
   "resource://gre/modules/PlacesUtils.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "OSCrypto",
   "resource://gre/modules/OSCrypto.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 // Resources
 
 function History() {}
 
 History.prototype = {
   type: MigrationUtils.resourceTypes.HISTORY,
 
   get exists() {
--- a/browser/components/migration/MSMigrationUtils.jsm
+++ b/browser/components/migration/MSMigrationUtils.jsm
@@ -4,26 +4,21 @@
 
 "use strict";
 
 var EXPORTED_SYMBOLS = ["MSMigrationUtils"];
 
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { MigrationUtils } = ChromeUtils.import(
   "resource:///modules/MigrationUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["FileReader"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "PlacesUtils",
   "resource://gre/modules/PlacesUtils.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "PlacesUIUtils",
@@ -54,18 +49,16 @@ const RESULT_SUCCESS = 0;
 const VAULT_ENUMERATE_ALL_ITEMS = 512;
 const WEB_CREDENTIALS_VAULT_ID = [
   0x4bf4c442,
   0x41a09b8a,
   0x4add80b3,
   0x28db4d70,
 ];
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["File"]);
-
 const wintypes = {
   BOOL: ctypes.int,
   DWORD: ctypes.uint32_t,
   DWORDLONG: ctypes.uint64_t,
   CHAR: ctypes.char,
   PCHAR: ctypes.char.ptr,
   LPCWSTR: ctypes.char16_t.ptr,
   PDWORD: ctypes.uint32_t.ptr,
--- a/browser/components/migration/MigrationUtils.jsm
+++ b/browser/components/migration/MigrationUtils.jsm
@@ -15,18 +15,16 @@ const TOPIC_PLACES_DEFAULTS_FINISHED = "
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "BookmarkHTMLUtils",
   "resource://gre/modules/BookmarkHTMLUtils.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "LoginHelper",
--- a/browser/components/migration/SafariProfileMigrator.jsm
+++ b/browser/components/migration/SafariProfileMigrator.jsm
@@ -3,19 +3,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 const { FileUtils } = ChromeUtils.import(
   "resource://gre/modules/FileUtils.jsm"
 );
 const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { MigrationUtils, MigratorPrototype } = ChromeUtils.import(
   "resource:///modules/MigrationUtils.jsm"
 );
 
 ChromeUtils.defineModuleGetter(
   this,
   "PropertyListUtils",
   "resource://gre/modules/PropertyListUtils.jsm"
@@ -31,18 +28,16 @@ ChromeUtils.defineModuleGetter(
   "resource:///modules/PlacesUIUtils.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "FormHistory",
   "resource://gre/modules/FormHistory.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 function Bookmarks(aBookmarksFile) {
   this._file = aBookmarksFile;
   this._histogramBookmarkRoots = 0;
 }
 Bookmarks.prototype = {
   type: MigrationUtils.resourceTypes.BOOKMARKS,
 
   migrate: function B_migrate(aCallback) {
--- a/browser/components/newtab/lib/DownloadsManager.jsm
+++ b/browser/components/newtab/lib/DownloadsManager.jsm
@@ -1,17 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 const { actionTypes: at } = ChromeUtils.import(
   "resource://activity-stream/common/Actions.jsm"
 );
 
 XPCOMUtils.defineLazyModuleGetters(this, {
   DownloadsCommon: "resource:///modules/DownloadsCommon.jsm",
   DownloadsViewUI: "resource:///modules/DownloadsViewUI.jsm",
   FileUtils: "resource://gre/modules/FileUtils.jsm",
--- a/browser/components/newtab/lib/ShortURL.jsm
+++ b/browser/components/newtab/lib/ShortURL.jsm
@@ -9,18 +9,16 @@ const { Services } = ChromeUtils.import(
 
 XPCOMUtils.defineLazyServiceGetter(
   this,
   "IDNService",
   "@mozilla.org/network/idn-service;1",
   "nsIIDNService"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 /**
  * Properly convert internationalized domain names.
  * @param {string} host Domain hostname.
  * @returns {string} Hostname suitable to be displayed.
  */
 function handleIDNHost(hostname) {
   try {
     return IDNService.convertToDisplayIDN(hostname, {});
--- a/browser/components/newtab/lib/TippyTopProvider.jsm
+++ b/browser/components/newtab/lib/TippyTopProvider.jsm
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["fetch", "URL"]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
 
 const TIPPYTOP_PATH = "chrome://activity-stream/content/data/content/tippytop/";
 const TIPPYTOP_JSON_PATH =
   "chrome://activity-stream/content/data/content/tippytop/top_sites.json";
 
 /*
  * Get a domain from a url optionally stripping subdomains.
  */
--- a/browser/components/places/PlacesUIUtils.jsm
+++ b/browser/components/places/PlacesUIUtils.jsm
@@ -11,18 +11,16 @@ const { XPCOMUtils } = ChromeUtils.impor
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { clearTimeout, setTimeout } = ChromeUtils.import(
   "resource://gre/modules/Timer.jsm"
 );
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["Element"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
   CustomizableUI: "resource:///modules/CustomizableUI.jsm",
   MigrationUtils: "resource:///modules/MigrationUtils.jsm",
   OpenInTabsUtils: "resource:///modules/OpenInTabsUtils.jsm",
   PlacesTransactions: "resource://gre/modules/PlacesTransactions.jsm",
   PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
   PluralForm: "resource://gre/modules/PluralForm.jsm",
--- a/browser/components/pocket/content/pktApi.jsm
+++ b/browser/components/pocket/content/pktApi.jsm
@@ -49,17 +49,16 @@ const { XPCOMUtils } = ChromeUtils.impor
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 ChromeUtils.defineModuleGetter(
   this,
   "IndexedDB",
   "resource://gre/modules/IndexedDB.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
 XPCOMUtils.defineLazyPreferenceGetter(
   this,
   "gCookieFirstPartyIsolate",
   "privacy.firstparty.isolate",
   false
 );
 
 const DB_NAME = "SaveToPocket";
--- a/browser/components/translation/BingTranslator.jsm
+++ b/browser/components/translation/BingTranslator.jsm
@@ -7,21 +7,16 @@
 var EXPORTED_SYMBOLS = ["BingTranslator"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { PromiseUtils } = ChromeUtils.import(
   "resource://gre/modules/PromiseUtils.jsm"
 );
 const { Async } = ChromeUtils.import("resource://services-common/async.js");
 const { httpRequest } = ChromeUtils.import("resource://gre/modules/Http.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
 
 // The maximum amount of net data allowed per request on Bing's API.
 const MAX_REQUEST_DATA = 5000; // Documentation says 10000 but anywhere
 // close to that is refused by the service.
 
 // The maximum number of chunks allowed to be translated in a single
 // request.
 const MAX_REQUEST_CHUNKS = 1000; // Documentation says 2000.
--- a/browser/components/translation/GoogleTranslator.jsm
+++ b/browser/components/translation/GoogleTranslator.jsm
@@ -6,20 +6,16 @@
 
 var EXPORTED_SYMBOLS = ["GoogleTranslator"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { PromiseUtils } = ChromeUtils.import(
   "resource://gre/modules/PromiseUtils.jsm"
 );
 const { httpRequest } = ChromeUtils.import("resource://gre/modules/Http.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser"]);
 
 // The maximum amount of net data allowed per request on Google's API.
 const MAX_REQUEST_DATA = 5000; // XXX This is the Bing value
 
 // The maximum number of chunks allowed to be translated in a single
 // request.
 const MAX_REQUEST_CHUNKS = 128; // Undocumented, but the de facto upper limit.
 
--- a/browser/components/translation/TranslationDocument.jsm
+++ b/browser/components/translation/TranslationDocument.jsm
@@ -2,20 +2,16 @@
  * 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";
 
 var EXPORTED_SYMBOLS = ["TranslationDocument"];
 
 const { Async } = ChromeUtils.import("resource://services-common/async.js");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser"]);
 
 /**
  * This class represents a document that is being translated,
  * and it is responsible for parsing the document,
  * generating the data structures translation (the list of
  * translation items and roots), and managing the original
  * and translated texts on the translation items.
  *
--- a/browser/components/translation/YandexTranslator.jsm
+++ b/browser/components/translation/YandexTranslator.jsm
@@ -7,21 +7,16 @@
 var EXPORTED_SYMBOLS = ["YandexTranslator"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { PromiseUtils } = ChromeUtils.import(
   "resource://gre/modules/PromiseUtils.jsm"
 );
 const { Async } = ChromeUtils.import("resource://services-common/async.js");
 const { httpRequest } = ChromeUtils.import("resource://gre/modules/Http.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
 
 // The maximum amount of net data allowed per request on Bing's API.
 const MAX_REQUEST_DATA = 5000; // Documentation says 10000 but anywhere
 // close to that is refused by the service.
 
 // The maximum number of chunks allowed to be translated in a single
 // request.
 const MAX_REQUEST_CHUNKS = 1000; // Documentation says 2000.
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -9,17 +9,16 @@ var EXPORTED_SYMBOLS = ["UITour"];
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 XPCOMUtils.defineLazyModuleGetters(this, {
   AboutReaderParent: "resource:///actors/AboutReaderParent.jsm",
   AddonManager: "resource://gre/modules/AddonManager.jsm",
   BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.jsm",
   BuiltInThemes: "resource:///modules/BuiltInThemes.jsm",
   CustomizableUI: "resource:///modules/CustomizableUI.jsm",
   FxAccounts: "resource://gre/modules/FxAccounts.jsm",
   PanelMultiView: "resource:///modules/PanelMultiView.jsm",
--- a/browser/components/urlbar/UrlbarProviderQuickSuggest.jsm
+++ b/browser/components/urlbar/UrlbarProviderQuickSuggest.jsm
@@ -23,21 +23,17 @@ XPCOMUtils.defineLazyModuleGetters(this,
   TaskQueue: "resource:///modules/UrlbarUtils.jsm",
   UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
   UrlbarQuickSuggest: "resource:///modules/UrlbarQuickSuggest.jsm",
   UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
   UrlbarResult: "resource:///modules/UrlbarResult.jsm",
   UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, [
-  "AbortController",
-  "crypto",
-  "fetch",
-]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["crypto", "fetch"]);
 
 const TIMESTAMP_TEMPLATE = "%YYYYMMDDHH%";
 const TIMESTAMP_LENGTH = 10;
 const TIMESTAMP_REGEXP = /^\d{10}$/;
 
 const MERINO_ENDPOINT_PARAM_QUERY = "q";
 const MERINO_ENDPOINT_PARAM_CLIENT_VARIANTS = "client_variants";
 const MERINO_ENDPOINT_PARAM_PROVIDERS = "providers";
--- a/browser/components/urlbar/UrlbarQuickSuggest.jsm
+++ b/browser/components/urlbar/UrlbarQuickSuggest.jsm
@@ -18,18 +18,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
   QUICK_SUGGEST_SOURCE: "resource:///modules/UrlbarProviderQuickSuggest.jsm",
   RemoteSettings: "resource://services-settings/remote-settings.js",
   TaskQueue: "resource:///modules/UrlbarUtils.jsm",
   UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
   UrlbarProviderQuickSuggest:
     "resource:///modules/UrlbarProviderQuickSuggest.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["TextDecoder"]);
-
 const log = console.createInstance({
   prefix: "QuickSuggest",
   maxLogLevel: UrlbarPrefs.get("quicksuggest.log") ? "All" : "Warn",
 });
 
 const RS_COLLECTION = "quicksuggest";
 
 // Categories that should show "Firefox Suggest" instead of "Sponsored"
--- a/browser/modules/FaviconLoader.jsm
+++ b/browser/modules/FaviconLoader.jsm
@@ -1,23 +1,18 @@
 /* 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";
 
 const EXPORTED_SYMBOLS = ["FaviconLoader"];
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["Blob", "FileReader"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "DeferredTask",
   "resource://gre/modules/DeferredTask.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "PromiseUtils",
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Tabs.jsm
+++ b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Tabs.jsm
@@ -7,28 +7,23 @@
 var EXPORTED_SYMBOLS = ["Tabs"];
 
 const CUST_TAB = "chrome://browser/skin/customize.svg";
 const PREFS_TAB = "chrome://global/skin/icons/settings.svg";
 const DEFAULT_FAVICON_TAB = `data:text/html,<meta%20charset="utf-8"><title>No%20favicon</title>`;
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { setTimeout } = ChromeUtils.import("resource://gre/modules/Timer.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { TestUtils } = ChromeUtils.import(
   "resource://testing-common/TestUtils.jsm"
 );
 const { BrowserTestUtils } = ChromeUtils.import(
   "resource://testing-common/BrowserTestUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["InspectorUtils"]);
-
 var Tabs = {
   init(libDir) {},
 
   configurations: {
     fiveTabs: {
       selectors: ["#tabbrowser-tabs"],
       async applyConfig() {
         fiveTabsHelper();
--- a/dom/manifest/ImageObjectProcessor.jsm
+++ b/dom/manifest/ImageObjectProcessor.jsm
@@ -15,23 +15,18 @@
  * Usage:
  *
  *   .process(aManifest, aBaseURL, aMemberName);
  *
  */
 
 "use strict";
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 function ImageObjectProcessor(aErrors, aExtractor, aBundle) {
   this.errors = aErrors;
   this.extractor = aExtractor;
   this.domBundle = aBundle;
 }
 
 const iconPurposes = Object.freeze(["any", "maskable", "monochrome"]);
 
--- a/dom/manifest/ManifestProcessor.jsm
+++ b/dom/manifest/ManifestProcessor.jsm
@@ -15,20 +15,16 @@
  * Depends on ImageObjectProcessor to process things like
  * icons and splash_screens.
  *
  * TODO: The constructor should accept the UA's supported orientations.
  * TODO: The constructor should accept the UA's supported display modes.
  */
 "use strict";
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 const displayModes = new Set([
   "fullscreen",
   "standalone",
   "minimal-ui",
   "browser",
 ]);
 const orientationTypes = new Set([
   "any",
--- a/dom/manifest/ValueExtractor.jsm
+++ b/dom/manifest/ValueExtractor.jsm
@@ -2,22 +2,16 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
 /*
  * Helper functions extract values from manifest members
  * and reports conformance errors.
  */
 "use strict";
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-
-XPCOMUtils.defineLazyGlobalGetters(this, ["InspectorUtils"]);
-
 class ValueExtractor {
   constructor(errors, aBundle) {
     this.errors = errors;
     this.domBundle = aBundle;
   }
 
   /**
    * @param options
--- a/remote/cdp/domains/parent/Network.jsm
+++ b/remote/cdp/domains/parent/Network.jsm
@@ -10,18 +10,16 @@ const { Services } = ChromeUtils.import(
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
 XPCOMUtils.defineLazyModuleGetters(this, {
   Domain: "chrome://remote/content/cdp/domains/Domain.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 const MAX_COOKIE_EXPIRY = Number.MAX_SAFE_INTEGER;
 
 const LOAD_CAUSE_STRINGS = {
   [Ci.nsIContentPolicy.TYPE_INVALID]: "Invalid",
   [Ci.nsIContentPolicy.TYPE_OTHER]: "Other",
   [Ci.nsIContentPolicy.TYPE_SCRIPT]: "Script",
   [Ci.nsIContentPolicy.TYPE_IMAGE]: "Img",
   [Ci.nsIContentPolicy.TYPE_STYLESHEET]: "Stylesheet",
--- a/remote/marionette/driver.js
+++ b/remote/marionette/driver.js
@@ -63,17 +63,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
   WebElementEventTarget: "chrome://remote/content/marionette/dom.js",
   windowManager: "chrome://remote/content/shared/WindowManager.jsm",
   WindowState: "chrome://remote/content/marionette/browser.js",
 });
 
 XPCOMUtils.defineLazyGetter(this, "logger", () =>
   Log.get(Log.TYPES.MARIONETTE)
 );
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 
 const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
 const SUPPORTED_STRATEGIES = new Set([
   element.Strategy.ClassName,
   element.Strategy.Selector,
   element.Strategy.ID,
   element.Strategy.Name,
--- a/remote/marionette/interaction.js
+++ b/remote/marionette/interaction.js
@@ -18,18 +18,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
   element: "chrome://remote/content/marionette/element.js",
   error: "chrome://remote/content/shared/webdriver/Errors.jsm",
   event: "chrome://remote/content/marionette/event.js",
   Log: "chrome://remote/content/shared/Log.jsm",
   pprint: "chrome://remote/content/shared/Format.jsm",
   TimedPromise: "chrome://remote/content/marionette/sync.js",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["File"]);
-
 XPCOMUtils.defineLazyGetter(this, "logger", () =>
   Log.get(Log.TYPES.MARIONETTE)
 );
 
 /** XUL elements that support disabled attribute. */
 const DISABLED_ATTRIBUTE_SUPPORTED_XUL = new Set([
   "ARROWSCROLLBOX",
   "BUTTON",
--- a/remote/marionette/l10n.js
+++ b/remote/marionette/l10n.js
@@ -21,17 +21,16 @@ const { Services } = ChromeUtils.import(
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
 XPCOMUtils.defineLazyModuleGetters(this, {
   error: "chrome://remote/content/shared/webdriver/Errors.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser"]);
 XPCOMUtils.defineLazyGetter(this, "domParser", () => {
   const parser = new DOMParser();
   parser.forceEnableDTD();
   return parser;
 });
 
 /** @namespace */
 const l10n = {};
--- a/remote/shared/webdriver/Capabilities.jsm
+++ b/remote/shared/webdriver/Capabilities.jsm
@@ -22,18 +22,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
 
   AppInfo: "chrome://remote/content/marionette/appinfo.js",
   assert: "chrome://remote/content/shared/webdriver/Assert.jsm",
   error: "chrome://remote/content/shared/webdriver/Errors.jsm",
   pprint: "chrome://remote/content/shared/Format.jsm",
   RemoteAgent: "chrome://remote/content/components/RemoteAgent.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 XPCOMUtils.defineLazyGetter(this, "remoteAgent", () => {
   return Cc["@mozilla.org/remote/agent;1"].createInstance(Ci.nsIRemoteAgent);
 });
 
 /** Representation of WebDriver session timeouts. */
 class Timeouts {
   constructor() {
     // disabled
--- a/toolkit/actors/ContentMetaChild.jsm
+++ b/toolkit/actors/ContentMetaChild.jsm
@@ -2,20 +2,16 @@
  * 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";
 
 const EXPORTED_SYMBOLS = ["ContentMetaChild"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
 
 // Debounce time in milliseconds - this should be long enough to account for
 // sync script tags that could appear between desired meta tags
 const TIMEOUT_DELAY = 1000;
 
 const ACCEPTED_PROTOCOLS = ["http:", "https:"];
 
 // Possible description tags, listed in order from least favourable to most favourable
--- a/toolkit/actors/SelectChild.jsm
+++ b/toolkit/actors/SelectChild.jsm
@@ -16,18 +16,16 @@ ChromeUtils.defineModuleGetter(
   "resource://gre/modules/LayoutUtils.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "DeferredTask",
   "resource://gre/modules/DeferredTask.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["InspectorUtils"]);
-
 const kStateActive = 0x00000001; // NS_EVENT_STATE_ACTIVE
 const kStateHover = 0x00000004; // NS_EVENT_STATE_HOVER
 
 // Duplicated in SelectParent.jsm
 // Please keep these lists in sync.
 const SUPPORTED_OPTION_OPTGROUP_PROPERTIES = [
   "direction",
   "color",
--- a/toolkit/actors/ViewSourcePageChild.jsm
+++ b/toolkit/actors/ViewSourcePageChild.jsm
@@ -6,18 +6,16 @@
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
 var EXPORTED_SYMBOLS = ["ViewSourcePageChild"];
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["NodeFilter"]);
-
 const BUNDLE_URL = "chrome://global/locale/viewSource.properties";
 
 // These are markers used to delimit the selection during processing. They
 // are removed from the final rendering.
 // We use noncharacter Unicode codepoints to minimize the risk of clashing
 // with anything that might legitimately be present in the document.
 // U+FDD0..FDEF <noncharacters>
 const MARK_SELECTION_START = "\uFDD0";
--- a/toolkit/components/captivedetect/CaptiveDetect.jsm
+++ b/toolkit/components/captivedetect/CaptiveDetect.jsm
@@ -1,22 +1,17 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* 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";
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
-
 const DEBUG = false; // set to true to show debug messages
 
 const kCAPTIVEPORTALDETECTOR_CID = Components.ID(
   "{d9cd00ba-aa4d-47b1-8792-b1fe0cd35060}"
 );
 
 const kOpenCaptivePortalLoginEvent = "captive-portal-login";
 const kAbortCaptivePortalLoginEvent = "captive-portal-login-abort";
--- a/toolkit/components/cleardata/SiteDataTestUtils.jsm
+++ b/toolkit/components/cleardata/SiteDataTestUtils.jsm
@@ -16,17 +16,17 @@ const { BrowserTestUtils } = ChromeUtils
 
 XPCOMUtils.defineLazyServiceGetter(
   this,
   "swm",
   "@mozilla.org/serviceworkers/manager;1",
   "nsIServiceWorkerManager"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["indexedDB", "Blob"]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["indexedDB"]);
 
 /**
  * This module assists with tasks around testing functionality that shows
  * or clears site data.
  *
  * Please note that you will have to clean up changes made manually, for
  * example using SiteDataTestUtils.clear().
  */
--- a/toolkit/components/extensions/ExtensionContent.jsm
+++ b/toolkit/components/extensions/ExtensionContent.jsm
@@ -41,17 +41,17 @@ const { ExtensionChild, ExtensionActivit
 );
 const { ExtensionCommon } = ChromeUtils.import(
   "resource://gre/modules/ExtensionCommon.jsm"
 );
 const { ExtensionUtils } = ChromeUtils.import(
   "resource://gre/modules/ExtensionUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["crypto", "TextEncoder"]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["crypto"]);
 
 const {
   DefaultMap,
   DefaultWeakMap,
   getInnerWindowID,
   promiseDocumentIdle,
   promiseDocumentLoaded,
   promiseDocumentReady,
--- a/toolkit/components/extensions/ExtensionTestCommon.jsm
+++ b/toolkit/components/extensions/ExtensionTestCommon.jsm
@@ -14,18 +14,16 @@
 
 var EXPORTED_SYMBOLS = ["ExtensionTestCommon", "MockExtension"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["TextEncoder"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "AddonManager",
   "resource://gre/modules/AddonManager.jsm"
 );
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
--- a/toolkit/components/extensions/ExtensionUtils.jsm
+++ b/toolkit/components/extensions/ExtensionUtils.jsm
@@ -13,17 +13,17 @@ const { XPCOMUtils } = ChromeUtils.impor
 );
 
 ChromeUtils.defineModuleGetter(
   this,
   "setTimeout",
   "resource://gre/modules/Timer.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["fetch", "btoa"]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
 
 // xpcshell doesn't handle idle callbacks well.
 XPCOMUtils.defineLazyGetter(this, "idleTimeout", () =>
   Services.appinfo.name === "XPCShell" ? 500 : undefined
 );
 
 // It would be nicer to go through `Services.appinfo`, but some tests need to be
 // able to replace that field with a custom implementation before it is first
--- a/toolkit/components/extensions/Schemas.jsm
+++ b/toolkit/components/extensions/Schemas.jsm
@@ -8,18 +8,16 @@
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 const { ExtensionUtils } = ChromeUtils.import(
   "resource://gre/modules/ExtensionUtils.jsm"
 );
 var { DefaultMap, DefaultWeakMap } = ExtensionUtils;
 
 ChromeUtils.defineModuleGetter(
   this,
   "ExtensionParent",
--- a/toolkit/components/extensions/webrequest/WebRequestUpload.jsm
+++ b/toolkit/components/extensions/webrequest/WebRequestUpload.jsm
@@ -13,18 +13,16 @@ const { XPCOMUtils } = ChromeUtils.impor
 );
 
 const { ExtensionUtils } = ChromeUtils.import(
   "resource://gre/modules/ExtensionUtils.jsm"
 );
 
 const { DefaultMap } = ExtensionUtils;
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["TextEncoder"]);
-
 XPCOMUtils.defineLazyServiceGetter(
   this,
   "mimeHeader",
   "@mozilla.org/network/mime-hdrparam;1",
   "nsIMIMEHeaderParam"
 );
 
 const BinaryInputStream = Components.Constructor(
--- a/toolkit/components/normandy/lib/Heartbeat.jsm
+++ b/toolkit/components/normandy/lib/Heartbeat.jsm
@@ -18,21 +18,16 @@ const { CleanupManager } = ChromeUtils.i
   "resource://normandy/lib/CleanupManager.jsm"
 );
 const { EventEmitter } = ChromeUtils.import(
   "resource://normandy/lib/EventEmitter.jsm"
 );
 const { LogManager } = ChromeUtils.import(
   "resource://normandy/lib/LogManager.jsm"
 );
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]); /* globals URL */
 
 var EXPORTED_SYMBOLS = ["Heartbeat"];
 
 const PREF_SURVEY_DURATION = "browser.uitour.surveyDuration";
 const NOTIFICATION_TIME = 3000;
 const HEARTBEAT_CSS_URI = Services.io.newURI(
   "resource://normandy/skin/shared/Heartbeat.css"
 );
--- a/toolkit/components/normandy/lib/NormandyApi.jsm
+++ b/toolkit/components/normandy/lib/NormandyApi.jsm
@@ -10,20 +10,17 @@ const { XPCOMUtils } = ChromeUtils.impor
 );
 
 ChromeUtils.defineModuleGetter(
   this,
   "CanonicalJSON",
   "resource://gre/modules/CanonicalJSON.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, [
-  "fetch",
-  "URL",
-]); /* globals fetch, URL */
+XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]); /* globals fetch */
 
 var EXPORTED_SYMBOLS = ["NormandyApi"];
 
 const prefs = Services.prefs.getBranch("app.normandy.");
 
 let indexPromise = null;
 
 function getChainRootIdentifier() {
--- a/toolkit/components/passwordmgr/LoginManagerParent.jsm
+++ b/toolkit/components/passwordmgr/LoginManagerParent.jsm
@@ -24,18 +24,16 @@ XPCOMUtils.defineLazyGetter(this, "Login
 
 XPCOMUtils.defineLazyGetter(this, "PasswordRulesManager", () => {
   const { PasswordRulesManagerParent } = ChromeUtils.import(
     "resource://gre/modules/PasswordRulesManager.jsm"
   );
   return new PasswordRulesManagerParent();
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   ChromeMigrationUtils: "resource:///modules/ChromeMigrationUtils.jsm",
   NimbusFeatures: "resource://nimbus/ExperimentAPI.jsm",
   LoginHelper: "resource://gre/modules/LoginHelper.jsm",
   MigrationUtils: "resource:///modules/MigrationUtils.jsm",
   PasswordGenerator: "resource://gre/modules/PasswordGenerator.jsm",
   PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
 });
--- a/toolkit/components/passwordmgr/LoginRecipes.jsm
+++ b/toolkit/components/passwordmgr/LoginRecipes.jsm
@@ -21,17 +21,17 @@ const OPTIONAL_KEYS = [
 const SUPPORTED_KEYS = REQUIRED_KEYS.concat(OPTIONAL_KEYS);
 
 const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL", "fetch"]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
 
 ChromeUtils.defineModuleGetter(
   this,
   "LoginHelper",
   "resource://gre/modules/LoginHelper.jsm"
 );
 
 XPCOMUtils.defineLazyGetter(this, "log", () =>
--- a/toolkit/components/pdfjs/content/PdfStreamConverter.jsm
+++ b/toolkit/components/pdfjs/content/PdfStreamConverter.jsm
@@ -65,18 +65,16 @@ ChromeUtils.defineModuleGetter(
 ChromeUtils.defineModuleGetter(this, "PdfJs", "resource://pdf.js/PdfJs.jsm");
 
 ChromeUtils.defineModuleGetter(
   this,
   "PdfSandbox",
   "resource://pdf.js/PdfSandbox.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
-
 var Svc = {};
 XPCOMUtils.defineLazyServiceGetter(
   Svc,
   "mime",
   "@mozilla.org/mime;1",
   "nsIMIMEService"
 );
 XPCOMUtils.defineLazyServiceGetter(
--- a/toolkit/components/places/BookmarkHTMLUtils.jsm
+++ b/toolkit/components/places/BookmarkHTMLUtils.jsm
@@ -53,30 +53,25 @@
  *
  * Note that a lot of things happen when tags are CLOSED because we need to
  * get the text from the content of the tag. For example, link and heading tags
  * both require the content (= title) before actually creating it.
  */
 
 var EXPORTED_SYMBOLS = ["BookmarkHTMLUtils"];
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
 const { FileUtils } = ChromeUtils.import(
   "resource://gre/modules/FileUtils.jsm"
 );
 const { PlacesUtils } = ChromeUtils.import(
   "resource://gre/modules/PlacesUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "PlacesBackups",
   "resource://gre/modules/PlacesBackups.jsm"
 );
 
 const Container_Normal = 0;
 const Container_Toolbar = 1;
--- a/toolkit/components/places/Bookmarks.jsm
+++ b/toolkit/components/places/Bookmarks.jsm
@@ -54,22 +54,16 @@
  * Similarly, lastModified changes not done explicitly (like changing another
  * property) won't fire an onItemChanged notification for the lastModified
  * property.
  * @see nsINavBookmarkObserver
  */
 
 var EXPORTED_SYMBOLS = ["Bookmarks"];
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "NetUtil",
   "resource://gre/modules/NetUtil.jsm"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "PlacesUtils",
--- a/toolkit/components/places/History.jsm
+++ b/toolkit/components/places/History.jsm
@@ -84,18 +84,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
 
 XPCOMUtils.defineLazyServiceGetter(
   this,
   "asyncHistory",
   "@mozilla.org/browser/history;1",
   "mozIAsyncHistory"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 /**
  * Whenever we update or remove numerous pages, it is preferable
  * to yield time to the main thread every so often to avoid janking.
  * These constants determine the maximal number of notifications we
  * may emit before we yield.
  */
 const NOTIFICATION_CHUNK_SIZE = 300;
 const ONRESULT_CHUNK_SIZE = 300;
--- a/toolkit/components/places/PlacesSyncUtils.jsm
+++ b/toolkit/components/places/PlacesSyncUtils.jsm
@@ -6,18 +6,16 @@
 
 var EXPORTED_SYMBOLS = ["PlacesSyncUtils"];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL", "URLSearchParams"]);
-
 ChromeUtils.defineModuleGetter(this, "Log", "resource://gre/modules/Log.jsm");
 ChromeUtils.defineModuleGetter(
   this,
   "PlacesUtils",
   "resource://gre/modules/PlacesUtils.jsm"
 );
 
 /**
--- a/toolkit/components/places/PlacesTransactions.jsm
+++ b/toolkit/components/places/PlacesTransactions.jsm
@@ -171,18 +171,16 @@ const { XPCOMUtils } = ChromeUtils.impor
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 ChromeUtils.defineModuleGetter(
   this,
   "PlacesUtils",
   "resource://gre/modules/PlacesUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 function setTimeout(callback, ms) {
   let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
   timer.initWithCallback(callback, ms, timer.TYPE_ONE_SHOT);
 }
 
 class TransactionsHistoryArray extends Array {
   constructor() {
     super();
--- a/toolkit/components/places/PlacesUtils.jsm
+++ b/toolkit/components/places/PlacesUtils.jsm
@@ -8,18 +8,16 @@ var EXPORTED_SYMBOLS = ["PlacesUtils"];
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   NetUtil: "resource://gre/modules/NetUtil.jsm",
   Sqlite: "resource://gre/modules/Sqlite.jsm",
   Bookmarks: "resource://gre/modules/Bookmarks.jsm",
   History: "resource://gre/modules/History.jsm",
   PlacesSyncUtils: "resource://gre/modules/PlacesSyncUtils.jsm",
   PromiseUtils: "resource://gre/modules/PromiseUtils.jsm",
 });
--- a/toolkit/components/places/SyncedBookmarksMirror.jsm
+++ b/toolkit/components/places/SyncedBookmarksMirror.jsm
@@ -50,18 +50,16 @@
  */
 
 var EXPORTED_SYMBOLS = ["SyncedBookmarksMirror"];
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   Async: "resource://services-common/async.js",
   Log: "resource://gre/modules/Log.jsm",
   PlacesSyncUtils: "resource://gre/modules/PlacesSyncUtils.jsm",
   PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
 });
 
 XPCOMUtils.defineLazyGetter(this, "MirrorLog", () =>
--- a/toolkit/components/reader/ReaderMode.jsm
+++ b/toolkit/components/reader/ReaderMode.jsm
@@ -31,18 +31,16 @@ const CLASSES_TO_PRESERVE = [
   "wp-smiley",
 ];
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest", "XMLSerializer"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "CommonUtils",
   "resource://services-common/utils.js"
 );
 ChromeUtils.defineModuleGetter(
   this,
   "EventDispatcher",
--- a/toolkit/components/taskscheduler/TaskSchedulerMacOSImpl.jsm
+++ b/toolkit/components/taskscheduler/TaskSchedulerMacOSImpl.jsm
@@ -21,18 +21,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
 
 XPCOMUtils.defineLazyServiceGetters(this, {
   XreDirProvider: [
     "@mozilla.org/xre/directory-provider;1",
     "nsIXREDirProvider",
   ],
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLSerializer"]);
-
 XPCOMUtils.defineLazyGetter(this, "log", () => {
   let { ConsoleAPI } = ChromeUtils.import("resource://gre/modules/Console.jsm");
   let consoleOptions = {
     // tip: set maxLogLevel to "debug" and use log.debug() to create detailed
     // messages during development. See LOG_LEVELS in Console.jsm for details.
     maxLogLevel: "error",
     maxLogLevelPref: "toolkit.components.taskscheduler.loglevel",
     prefix: "TaskScheduler",
--- a/toolkit/components/taskscheduler/TaskSchedulerWinImpl.jsm
+++ b/toolkit/components/taskscheduler/TaskSchedulerWinImpl.jsm
@@ -22,18 +22,16 @@ XPCOMUtils.defineLazyServiceGetters(this
     "nsIWinTaskSchedulerService",
   ],
   XreDirProvider: [
     "@mozilla.org/xre/directory-provider;1",
     "nsIXREDirProvider",
   ],
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLSerializer"]);
-
 /**
  * Task generation and management for Windows, using Task Scheduler 2.0 (taskschd).
  *
  * Implements the API exposed in TaskScheduler.jsm
  * Not intended for external use, this is in a separate module to ship the code only
  * on Windows, and to expose for testing.
  */
 var _TaskSchedulerWinImpl = {
--- a/toolkit/components/thumbnails/PageThumbs.jsm
+++ b/toolkit/components/thumbnails/PageThumbs.jsm
@@ -25,18 +25,16 @@ const THUMBNAIL_DIRECTORY = "thumbnails"
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 const { BasePromiseWorker } = ChromeUtils.import(
   "resource://gre/modules/PromiseWorker.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["FileReader"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   PageThumbUtils: "resource://gre/modules/PageThumbUtils.jsm",
   PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
 });
 
 XPCOMUtils.defineLazyServiceGetter(
   this,
   "gUpdateTimerManager",
--- a/toolkit/components/utils/JsonSchemaValidator.jsm
+++ b/toolkit/components/utils/JsonSchemaValidator.jsm
@@ -14,18 +14,16 @@
  */
 
 "use strict";
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-
 XPCOMUtils.defineLazyGetter(this, "log", () => {
   let { ConsoleAPI } = ChromeUtils.import("resource://gre/modules/Console.jsm");
   return new ConsoleAPI({
     prefix: "JsonSchemaValidator.jsm",
     // tip: set maxLogLevel to "debug" and use log.debug() to create detailed
     // messages during development. See LOG_LEVELS in Console.jsm for details.
     maxLogLevel: "error",
   });
--- a/toolkit/components/utils/Sampling.jsm
+++ b/toolkit/components/utils/Sampling.jsm
@@ -2,17 +2,17 @@
  * 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";
 
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
-XPCOMUtils.defineLazyGlobalGetters(this, ["crypto", "TextEncoder"]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["crypto"]);
 
 var EXPORTED_SYMBOLS = ["Sampling"];
 
 const hashBits = 48;
 const hashLength = hashBits / 4; // each hexadecimal digit represents 4 bits
 const hashMultiplier = Math.pow(2, hashBits) - 1;
 
 var Sampling = {
--- a/toolkit/crashreporter/CrashSubmit.jsm
+++ b/toolkit/crashreporter/CrashSubmit.jsm
@@ -1,24 +1,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { FileUtils } = ChromeUtils.import(
   "resource://gre/modules/FileUtils.jsm"
 );
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-XPCOMUtils.defineLazyGlobalGetters(this, [
-  "File",
-  "FormData",
-  "XMLHttpRequest",
-]);
 
 ChromeUtils.defineModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm");
 
 var EXPORTED_SYMBOLS = ["CrashSubmit"];
 
 const SUCCESS = "success";
 const FAILED = "failed";
 const SUBMITTING = "submitting";
--- a/toolkit/modules/AsanReporter.jsm
+++ b/toolkit/modules/AsanReporter.jsm
@@ -13,18 +13,16 @@ const { AppConstants } = ChromeUtils.imp
   "resource://gre/modules/AppConstants.jsm"
 );
 
 XPCOMUtils.defineLazyModuleGetters(this, {
   Log: "resource://gre/modules/Log.jsm",
   OS: "resource://gre/modules/osfile.jsm",
 });
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["TextDecoder", "XMLHttpRequest"]);
-
 // Define our prefs
 const PREF_CLIENT_ID = "asanreporter.clientid";
 const PREF_API_URL = "asanreporter.apiurl";
 const PREF_AUTH_TOKEN = "asanreporter.authtoken";
 const PREF_LOG_LEVEL = "asanreporter.loglevel";
 
 // Reporter product map
 const REPORTER_PRODUCT = {
--- a/toolkit/modules/PropertyListUtils.jsm
+++ b/toolkit/modules/PropertyListUtils.jsm
@@ -52,22 +52,16 @@
  *    it.  A more correct representation for a set is a js generator, which would
  *    read the set lazily and has no indices semantics.
  */
 
 "use strict";
 
 var EXPORTED_SYMBOLS = ["PropertyListUtils"];
 
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
-
-XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser", "File", "FileReader"]);
-
 ChromeUtils.defineModuleGetter(
   this,
   "ctypes",
   "resource://gre/modules/ctypes.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 var PropertyListUtils = Object.freeze({
--- a/toolkit/modules/ServiceRequest.jsm
+++ b/toolkit/modules/ServiceRequest.jsm
@@ -8,17 +8,16 @@
  * This module consolidates various code and data update requests, so flags
  * can be set, Telemetry collected, etc. in a central place.
  */
 
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
-XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
 
 XPCOMUtils.defineLazyServiceGetter(
   this,
   "ProxyService",
   "@mozilla.org/network/protocol-proxy-service;1",
   "nsIProtocolProxyService"
 );
 
--- a/toolkit/modules/Troubleshoot.jsm
+++ b/toolkit/modules/Troubleshoot.jsm
@@ -9,26 +9,21 @@ const { AddonManager } = ChromeUtils.imp
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 const { E10SUtils } = ChromeUtils.import(
   "resource://gre/modules/E10SUtils.jsm"
 );
-const { XPCOMUtils } = ChromeUtils.import(
-  "resource://gre/modules/XPCOMUtils.jsm"
-);
 
 const { FeatureGate } = ChromeUtils.import(
   "resource://featuregates/FeatureGate.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser"]);
-
 // We use a list of prefs for display to make sure we only show prefs that
 // are useful for support and won't compromise the user's privacy.  Note that
 // entries are *prefixes*: for example, "accessibility." applies to all prefs
 // under the "accessibility.*" branch.
 const PREFS_FOR_DISPLAY = [
   "accessibility.",
   "apz.",
   "browser.cache.",
--- a/toolkit/mozapps/extensions/AddonManager.jsm
+++ b/toolkit/mozapps/extensions/AddonManager.jsm
@@ -79,18 +79,16 @@ const { XPCOMUtils } = ChromeUtils.impor
 // a const.
 var { AsyncShutdown } = ChromeUtils.import(
   "resource://gre/modules/AsyncShutdown.jsm"
 );
 const { PromiseUtils } = ChromeUtils.import(
   "resource://gre/modules/PromiseUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["Element"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   AddonRepository: "resource://gre/modules/addons/AddonRepository.jsm",
   AbuseReporter: "resource://gre/modules/AbuseReporter.jsm",
   Extension: "resource://gre/modules/Extension.jsm",
   RemoteSettings: "resource://services-settings/remote-settings.js",
   TelemetryTimestamps: "resource://gre/modules/TelemetryTimestamps.jsm",
 });
 
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
@@ -29,21 +29,17 @@ const { XPCOMUtils } = ChromeUtils.impor
 );
 const { AppConstants } = ChromeUtils.import(
   "resource://gre/modules/AppConstants.jsm"
 );
 const { AddonManager, AddonManagerPrivate } = ChromeUtils.import(
   "resource://gre/modules/AddonManager.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, [
-  "TextDecoder",
-  "TextEncoder",
-  "fetch",
-]);
+XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
 
 XPCOMUtils.defineLazyModuleGetters(this, {
   AddonRepository: "resource://gre/modules/addons/AddonRepository.jsm",
   AddonSettings: "resource://gre/modules/addons/AddonSettings.jsm",
   CertUtils: "resource://gre/modules/CertUtils.jsm",
   ExtensionData: "resource://gre/modules/Extension.jsm",
   FileUtils: "resource://gre/modules/FileUtils.jsm",
   NetUtil: "resource://gre/modules/NetUtil.jsm",
--- a/toolkit/mozapps/update/UpdateService.jsm
+++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -21,18 +21,16 @@ const {
 const { FileUtils } = ChromeUtils.import(
   "resource://gre/modules/FileUtils.jsm"
 );
 const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 const { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser", "XMLHttpRequest"]);
-
 XPCOMUtils.defineLazyModuleGetters(this, {
   AddonManager: "resource://gre/modules/AddonManager.jsm",
   AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm",
   CertUtils: "resource://gre/modules/CertUtils.jsm",
   ctypes: "resource://gre/modules/ctypes.jsm",
   DeferredTask: "resource://gre/modules/DeferredTask.jsm",
   setTimeout: "resource://gre/modules/Timer.jsm",
   UpdateUtils: "resource://gre/modules/UpdateUtils.jsm",