Bug 1845252 - Update consumers of FxAccountsCommon to import the ES module directly. r=markh,settings-reviewers,credential-management-reviewers,sync-reviewers,sgalich,Gijs

Differential Revision: https://phabricator.services.mozilla.com/D184780
This commit is contained in:
Mark Banner 2023-07-31 13:05:44 +00:00
parent c88cd62744
commit 26f043124f
40 changed files with 89 additions and 102 deletions

View File

@ -9,17 +9,14 @@ const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
AddonManager: "resource://gre/modules/AddonManager.sys.mjs",
BrowserUtils: "resource://gre/modules/BrowserUtils.sys.mjs",
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.sys.mjs",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.sys.mjs",
LoginBreaches: "resource:///modules/LoginBreaches.sys.mjs",
LoginHelper: "resource://gre/modules/LoginHelper.sys.mjs",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs",
Region: "resource://gre/modules/Region.sys.mjs",
});
XPCOMUtils.defineLazyModuleGetters(lazy, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.js",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.js",
});
ChromeUtils.defineLazyGetter(lazy, "fxAccounts", () => {
return ChromeUtils.importESModule(
"resource://gre/modules/FxAccounts.sys.mjs"

View File

@ -2,12 +2,10 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
XPCOMUtils.defineLazyGetter(this, "FxAccountsCommon", function () {
return ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
});
ChromeUtils.defineESModuleGetters(this, {
WebChannel: "resource://gre/modules/WebChannel.sys.mjs",
ON_PROFILE_CHANGE_NOTIFICATION:
"resource://gre/modules/FxAccountsCommon.sys.mjs",
});
var { FxAccountsWebChannel } = ChromeUtils.importESModule(
@ -31,7 +29,7 @@ var gTests = [
});
let promiseObserver = new Promise((resolve, reject) => {
makeObserver(
FxAccountsCommon.ON_PROFILE_CHANGE_NOTIFICATION,
ON_PROFILE_CHANGE_NOTIFICATION,
function (subject, topic, data) {
Assert.equal(data, "abc123");
client.tearDown();

View File

@ -4,10 +4,6 @@
/* import-globals-from preferences.js */
XPCOMUtils.defineLazyGetter(this, "FxAccountsCommon", function () {
return ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
});
const FXA_PAGE_LOGGED_OUT = 0;
const FXA_PAGE_LOGGED_IN = 1;

View File

@ -5,8 +5,4 @@ var { sinon } = ChromeUtils.importESModule(
"resource://testing-common/Sinon.sys.mjs"
);
XPCOMUtils.defineLazyGetter(this, "FxAccountsCommon", function () {
return ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
});
do_get_profile(); // fxa needs a profile directory for storage.

View File

@ -10,7 +10,7 @@ import { clearTimeout, setTimeout } from "resource://gre/modules/Timer.sys.mjs";
import { FxAccountsStorageManager } from "resource://gre/modules/FxAccountsStorage.sys.mjs";
const {
import {
ERRNO_INVALID_AUTH_TOKEN,
ERROR_AUTH_ERROR,
ERROR_INVALID_PARAMETER,
@ -35,7 +35,7 @@ const {
log,
logPII,
logManager,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
const lazy = {};

View File

@ -8,7 +8,7 @@ import { HawkClient } from "resource://services-common/hawkclient.sys.mjs";
import { deriveHawkCredentials } from "resource://services-common/hawkrequest.sys.mjs";
import { CryptoUtils } from "resource://services-crypto/utils.sys.mjs";
const {
import {
ERRNO_ACCOUNT_DOES_NOT_EXIST,
ERRNO_INCORRECT_EMAIL_CASE,
ERRNO_INCORRECT_PASSWORD,
@ -16,7 +16,8 @@ const {
ERRNO_INVALID_AUTH_TIMESTAMP,
ERRNO_INVALID_AUTH_TOKEN,
log,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import { Credentials } from "resource://gre/modules/Credentials.sys.mjs";
const HOST_PREF = "identity.fxaccounts.auth.uri";

View File

@ -2,8 +2,13 @@
* 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 { COMMAND_SENDTAB, COMMAND_SENDTAB_TAIL, SCOPE_OLD_SYNC, log } =
ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
import {
COMMAND_SENDTAB,
COMMAND_SENDTAB_TAIL,
SCOPE_OLD_SYNC,
log,
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
const lazy = {};
ChromeUtils.defineModuleGetter(
lazy,

View File

@ -4,9 +4,7 @@
import { RESTRequest } from "resource://services-common/rest.sys.mjs";
const { log } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import { log } from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const lazy = {};

View File

@ -4,7 +4,7 @@
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const {
import {
log,
ERRNO_DEVICE_SESSION_CONFLICT,
ERRNO_UNKNOWN_DEVICE,
@ -14,7 +14,7 @@ const {
ON_DEVICE_DISCONNECTED_NOTIFICATION,
ONVERIFIED_NOTIFICATION,
PREF_ACCOUNT_ROOT,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import { DEVICE_TYPE_DESKTOP } from "resource://services-sync/constants.sys.mjs";

View File

@ -8,13 +8,13 @@ import { CommonUtils } from "resource://services-common/utils.sys.mjs";
import { CryptoUtils } from "resource://services-crypto/utils.sys.mjs";
const {
import {
SCOPE_OLD_SYNC,
DEPRECATED_SCOPE_ECOSYSTEM_TELEMETRY,
FX_OAUTH_CLIENT_ID,
log,
logPII,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
// The following top-level fields have since been deprecated and exist here purely
// to be removed from the account state when seen. After a reasonable period of time

View File

@ -2,7 +2,7 @@
// 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 {
import {
log,
PREF_REMOTE_PAIRING_URI,
COMMAND_PAIR_SUPP_METADATA,
@ -10,7 +10,8 @@ const {
COMMAND_PAIR_DECLINE,
COMMAND_PAIR_HEARTBEAT,
COMMAND_PAIR_COMPLETE,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import {
getFxAccountsSingleton,
FxAccounts,

View File

@ -10,9 +10,11 @@
* the user's profile in open browser tabs, and cacheing/invalidating profile data.
*/
const { ON_PROFILE_CHANGE_NOTIFICATION, log } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import {
ON_PROFILE_CHANGE_NOTIFICATION,
log,
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import { getFxAccountsSingleton } from "resource://gre/modules/FxAccounts.sys.mjs";
const fxAccounts = getFxAccountsSingleton();

View File

@ -7,7 +7,7 @@
*/
"use strict;";
const {
import {
ERRNO_NETWORK,
ERRNO_PARSE,
ERRNO_UNKNOWN_ERROR,
@ -19,7 +19,8 @@ const {
log,
SCOPE_PROFILE,
SCOPE_PROFILE_WRITE,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import { getFxAccountsSingleton } from "resource://gre/modules/FxAccounts.sys.mjs";
const fxAccounts = getFxAccountsSingleton();

View File

@ -4,7 +4,7 @@
import { Async } from "resource://services-common/async.sys.mjs";
const {
import {
FXA_PUSH_SCOPE_ACCOUNT_UPDATE,
ONLOGOUT_NOTIFICATION,
ON_ACCOUNT_DESTROYED_NOTIFICATION,
@ -18,7 +18,7 @@ const {
ON_PROFILE_UPDATED_NOTIFICATION,
ON_VERIFY_LOGIN_NOTIFICATION,
log,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
/**
* FxAccountsPushService manages Push notifications for Firefox Accounts in the browser

View File

@ -2,7 +2,7 @@
* 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 {
import {
DATA_FORMAT_VERSION,
DEFAULT_STORAGE_FILENAME,
FXA_PWDMGR_HOST,
@ -10,7 +10,7 @@ const {
FXA_PWDMGR_REALM,
FXA_PWDMGR_SECURE_FIELDS,
log,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
// A helper function so code can check what fields are able to be stored by
// the storage manager without having a reference to a manager instance.

View File

@ -19,9 +19,10 @@ ChromeUtils.defineESModuleGetters(lazy, {
Observers: "resource://services-common/observers.sys.mjs",
});
const { PREF_ACCOUNT_ROOT, log } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import {
PREF_ACCOUNT_ROOT,
log,
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
const PREF_SANITIZED_UID = PREF_ACCOUNT_ROOT + "telemetry.sanitized_uid";
XPCOMUtils.defineLazyPreferenceGetter(

View File

@ -11,7 +11,7 @@
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const {
import {
COMMAND_PROFILE_CHANGE,
COMMAND_LOGIN,
COMMAND_LOGOUT,
@ -33,7 +33,7 @@ const {
WEBCHANNEL_ID,
log,
logPII,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} from "resource://gre/modules/FxAccountsCommon.sys.mjs";
const lazy = {};

View File

@ -12,8 +12,8 @@ const { XPCOMUtils } = ChromeUtils.importESModule(
const { sinon } = ChromeUtils.importESModule(
"resource://testing-common/Sinon.sys.mjs"
);
const { SCOPE_OLD_SYNC } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { SCOPE_OLD_SYNC } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
// Some mock key data, in both scoped-key and legacy field formats.

View File

@ -21,7 +21,9 @@ const {
ONVERIFIED_NOTIFICATION,
DEPRECATED_SCOPE_ECOSYSTEM_TELEMETRY,
PREF_LAST_FXA_USER,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { PromiseUtils } = ChromeUtils.importESModule(
"resource://gre/modules/PromiseUtils.sys.mjs"
);

View File

@ -19,7 +19,9 @@ const {
ON_DEVICE_CONNECTED_NOTIFICATION,
ON_DEVICE_DISCONNECTED_NOTIFICATION,
ON_DEVICELIST_UPDATED,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
var { AccountState } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccounts.sys.mjs"
);

View File

@ -11,8 +11,8 @@ const { FxAccountsClient } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsClient.sys.mjs"
);
const { COMMAND_SENDTAB, COMMAND_SENDTAB_TAIL } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { COMMAND_SENDTAB, COMMAND_SENDTAB_TAIL } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
class TelemetryMock {

View File

@ -8,8 +8,8 @@ const { getFxAccountsSingleton } = ChromeUtils.importESModule(
);
const fxAccounts = getFxAccountsSingleton();
const { ON_NEW_DEVICE_ID, PREF_ACCOUNT_ROOT } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { ON_NEW_DEVICE_ID, PREF_ACCOUNT_ROOT } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
function promiseObserved(topic) {

View File

@ -11,8 +11,8 @@ Services.prefs.setCharPref("identity.fxaccounts.loglevel", "Trace");
const { FxAccounts } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccounts.sys.mjs"
);
const { FXA_PWDMGR_HOST, FXA_PWDMGR_REALM } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { FXA_PWDMGR_HOST, FXA_PWDMGR_REALM } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
// Use a backstage pass to get at our LoginManagerStorage object, so we can

View File

@ -3,8 +3,8 @@
"use strict";
const { ON_PROFILE_CHANGE_NOTIFICATION, log } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { ON_PROFILE_CHANGE_NOTIFICATION, log } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { FxAccountsProfileClient } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsProfileClient.sys.mjs"

View File

@ -12,7 +12,9 @@ const {
ERROR_NETWORK,
ERROR_PARSE,
ERROR_UNKNOWN,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { FxAccountsProfileClient, FxAccountsProfileClientError } =
ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsProfileClient.sys.mjs"

View File

@ -19,7 +19,9 @@ const {
ON_PROFILE_UPDATED_NOTIFICATION,
ON_VERIFY_LOGIN_NOTIFICATION,
log,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { FxAccountsPushService } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsPush.sys.mjs"

View File

@ -8,8 +8,8 @@
const { FxAccountsStorageManager } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsStorage.sys.mjs"
);
const { DATA_FORMAT_VERSION, log } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { DATA_FORMAT_VERSION, log } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
initTestLogging("Trace");

View File

@ -4,7 +4,7 @@
"use strict";
const { ON_PROFILE_CHANGE_NOTIFICATION, WEBCHANNEL_ID, log } =
ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
ChromeUtils.importESModule("resource://gre/modules/FxAccountsCommon.sys.mjs");
const { CryptoUtils } = ChromeUtils.importESModule(
"resource://services-crypto/utils.sys.mjs"
);

View File

@ -20,9 +20,7 @@ import {
} from "resource://gre/modules/FxAccounts.sys.mjs";
import { FxAccountsClient } from "resource://gre/modules/FxAccountsClient.sys.mjs";
const { SCOPE_OLD_SYNC } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import { SCOPE_OLD_SYNC } from "resource://gre/modules/FxAccountsCommon.sys.mjs";
// A mock "storage manager" for FxAccounts that doesn't actually write anywhere.
export function MockFxaStorageManager() {}

View File

@ -9,6 +9,7 @@ const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
AsyncShutdown: "resource://gre/modules/AsyncShutdown.sys.mjs",
FxAccountsCommon: "resource://gre/modules/FxAccountsCommon.sys.mjs",
Log: "resource://gre/modules/Log.sys.mjs",
Sanitizer: "resource:///modules/Sanitizer.sys.mjs",
Utils: "resource://services-sync/util.sys.mjs",
@ -21,10 +22,6 @@ ChromeUtils.defineLazyGetter(lazy, "fxAccounts", () => {
).getFxAccountsSingleton();
});
ChromeUtils.defineLazyGetter(lazy, "FxAccountsCommon", function () {
return ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
});
export const SyncDisconnectInternal = {
lockRetryInterval: 1000, // wait 1 seconds before trying for the lock again.
lockRetryCount: 120, // Try 120 times (==2 mins) before giving up in disgust.

View File

@ -46,9 +46,7 @@ ChromeUtils.defineLazyGetter(lazy, "fxAccounts", () => {
).getFxAccountsSingleton();
});
const { PREF_ACCOUNT_ROOT } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import { PREF_ACCOUNT_ROOT } from "resource://gre/modules/FxAccountsCommon.sys.mjs";
const CLIENTS_TTL = 15552000; // 180 days
const CLIENTS_TTL_REFRESH = 604800; // 7 days

View File

@ -37,9 +37,7 @@ import {
import { Svc, Utils } from "resource://services-sync/util.sys.mjs";
const { logManager } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import { logManager } from "resource://gre/modules/FxAccountsCommon.sys.mjs";
import { Async } from "resource://services-common/async.sys.mjs";
import { CommonUtils } from "resource://services-common/utils.sys.mjs";

View File

@ -46,9 +46,7 @@ XPCOMUtils.defineLazyPreferenceGetter(
);
// FxAccountsCommon.js doesn't use a "namespace", so create one here.
var fxAccountsCommon = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import * as fxAccountsCommon from "resource://gre/modules/FxAccountsCommon.sys.mjs";
const SCOPE_OLD_SYNC = fxAccountsCommon.SCOPE_OLD_SYNC;

View File

@ -19,9 +19,7 @@ import {
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const lazy = {};
const FxAccountsCommon = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
);
import * as FxAccountsCommon from "resource://gre/modules/FxAccountsCommon.sys.mjs";
XPCOMUtils.defineLazyServiceGetter(
lazy,

View File

@ -6,8 +6,8 @@
const { Service } = ChromeUtils.importESModule(
"resource://services-sync/service.sys.mjs"
);
const { logManager } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { logManager } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { FileUtils } = ChromeUtils.importESModule(
"resource://gre/modules/FileUtils.sys.mjs"

View File

@ -1,5 +1,5 @@
const { FXA_PWDMGR_HOST, FXA_PWDMGR_REALM } = ChromeUtils.import(
"resource://gre/modules/FxAccountsCommon.js"
const { FXA_PWDMGR_HOST, FXA_PWDMGR_REALM } = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { LoginRec } = ChromeUtils.importESModule(
"resource://services-sync/engines/passwords.sys.mjs"

View File

@ -24,7 +24,9 @@ const {
ERRNO_INVALID_AUTH_TOKEN,
ONLOGIN_NOTIFICATION,
ONVERIFIED_NOTIFICATION,
} = ChromeUtils.import("resource://gre/modules/FxAccountsCommon.js");
} = ChromeUtils.importESModule(
"resource://gre/modules/FxAccountsCommon.sys.mjs"
);
const { Service } = ChromeUtils.importESModule(
"resource://services-sync/service.sys.mjs"
);

View File

@ -41,13 +41,12 @@
// Globals
import { JSONFile } from "resource://gre/modules/JSONFile.sys.mjs";
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const lazy = {};
XPCOMUtils.defineLazyModuleGetters(lazy, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.js",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.js",
ChromeUtils.defineESModuleGetters(lazy, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.sys.mjs",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.sys.mjs",
});
/**

View File

@ -6,11 +6,11 @@
* LoginManagerStorage implementation for the JSON back-end.
*/
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.sys.mjs",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.sys.mjs",
LoginHelper: "resource://gre/modules/LoginHelper.sys.mjs",
LoginStore: "resource://gre/modules/LoginStore.sys.mjs",
});
@ -46,11 +46,6 @@ function isFXAHost(login) {
return login.hostname == lazy.FXA_PWDMGR_HOST;
}
XPCOMUtils.defineLazyModuleGetters(lazy, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.js",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.js",
});
export class LoginManagerStorage_json {
constructor() {
this.__crypto = null; // nsILoginManagerCrypto service

View File

@ -2,9 +2,9 @@
* Test that logins backup is deleted as expected when logins are deleted.
*/
XPCOMUtils.defineLazyModuleGetters(this, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.js",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.js",
ChromeUtils.defineESModuleGetters(this, {
FXA_PWDMGR_HOST: "resource://gre/modules/FxAccountsCommon.sys.mjs",
FXA_PWDMGR_REALM: "resource://gre/modules/FxAccountsCommon.sys.mjs",
});
const nsLoginInfo = new Components.Constructor(