Name Description Size
components.conf 668
Credentials.sys.mjs This module implements client-side key stretching for use in Firefox Accounts account creation and login. See https://github.com/mozilla/fxa-auth-server/wiki/onepw-protocol 4070
FxAccounts.sys.mjs 58711
FxAccountsClient.sys.mjs Return client clock offset, in milliseconds, as determined by hawk client. Provided because callers should not have to know about hawk implementation. The offset is the number of milliseconds that must be added to the client clock to make it equal to the server clock. For example, if the client is five minutes ahead of the server, the localtimeOffsetMsec will be -300000. 26192
FxAccountsCommands.sys.mjs Poll and handle device commands for the current device. This method can be called either in response to a Push message, or by itself as a "commands recovery" mechanism. @param {Number} notifiedIndex "Command received" push messages include the index of the command that triggered the message. We use it as a hint when we have no "last command index" stored. 35109
FxAccountsCommon.sys.mjs 19422
FxAccountsConfig.sys.mjs @param path should be parsable by the URL constructor first parameter. @param {bool} [options.includeDefaultParams] If true include the default search params. @param {Object.<string, string>} [options.extraParams] Additionnal search params. @param {bool} [options.addAccountIdentifiers] if true we add the current logged-in user uid and email to the search params. 10828
FxAccountsDevice.sys.mjs 22573
FxAccountsKeys.sys.mjs Utilities for working with key material linked to the user's account. Each Firefox Account has 32 bytes of root key material called `kB` which is linked to the user's password, and which is used to derive purpose-specific subkeys for things like encrypting the user's sync data. This class provides the interface for working with such key material. Most recent FxA clients obtain appropriate key material directly as part of their sign-in flow, using a special extension of the OAuth2.0 protocol to securely deliver the derived keys without revealing `kB`. Keys obtained in in this way are called "scoped keys" since each corresponds to a particular OAuth scope, and this class provides a `getKeyForScope` method that is the preferred method for consumers to work with such keys. However, since the FxA integration in Firefox Desktop pre-dates the use of OAuth2.0, we also have a lot of code for fetching keys via an older flow. This flow uses a special `keyFetchToken` to obtain `kB` and then derive various sub-keys from it. Consumers should consider this an internal implementation detail of the `FxAccountsKeys` class and should prefer `getKeyForScope` where possible. We intend to remove support for Firefox ever directly handling `kB` at some point in the future. Note that Desktop is now slowly moving to these newer oauth flows - so all this key fetching and use of the keyFetchToken should be considered deprecated, and must not be used when the OAuth is in use. This code remains behind just for this transition and should be removed once we are committed to never rolling the flows back to the pre-oauth days. 25513
FxAccountsOAuth.sys.mjs Handles all logic and state related to initializing, and completing OAuth flows with FxA It's possible to start multiple OAuth flow, but only one can be completed, and once one flow is completed all the other in-flight flows will be concluded, and attempting to complete those flows will result in errors. 8931
FxAccountsPairing.sys.mjs The pairing flow can be modeled by a finite state machine: We start by connecting to a WebSocket channel (SuppConnectionPending). Then the other party connects and requests some metadata from us (PendingConfirmations). A confirmation happens locally first (PendingRemoteConfirmation) or the oppposite (PendingLocalConfirmation). Any side can decline this confirmation (Aborted). Once both sides have confirmed, the pairing flow is finished (Completed). During this flow errors can happen and should be handled (Errored). 15367
FxAccountsPairingChannel.sys.mjs / (function(modules) { // webpackBootstrap /***** 115285
FxAccountsProfile.sys.mjs Firefox Accounts Profile helper. This class abstracts interaction with the profile server for an account. It will handle things like fetching profile data, listening for updates to the user's profile in open browser tabs, and cacheing/invalidating profile data. 6512
FxAccountsProfileClient.sys.mjs A client to fetch profile information for a Firefox Account. 8215
FxAccountsPush.sys.mjs FxAccountsPushService manages Push notifications for Firefox Accounts in the browser @param [options] Object, custom options that used for testing @constructor 10006
FxAccountsStorage.sys.mjs 22534
FxAccountsTelemetry.sys.mjs 6263
FxAccountsWebChannel.sys.mjs Firefox Accounts Web Channel. Uses the WebChannel component to receive messages about account state changes. 31303
metrics.yaml 2902
moz.build 1171
pings.yaml 925
tests