Name Description Size
addonsreconciler.sys.mjs This file contains middleware to reconcile state of AddonManager for purposes of tracking events for Sync. The content in this file exists because AddonManager does not have a getChangesSinceX() API and adding that functionality properly was deemed too time-consuming at the time add-on sync was originally written. If/when AddonManager adds this API, this file can go away and the add-ons engine can be rewritten to use it. It was decided to have this tracking functionality exist in a separate standalone file so it could be more easily understood, tested, and hopefully ported. 17486
addonutils.sys.mjs Obtain an AddonInstall object from an AddonSearchResult instance. The returned promise will be an AddonInstall on success or null (failure or addon not found) @param addon AddonSearchResult to obtain install from. 12141
bridged_engine.sys.mjs This file has all the machinery for hooking up bridged engines implemented in Rust. It's the JavaScript side of the Golden Gate bridge that connects Desktop Sync to a Rust `BridgedEngine`, via the `mozIBridgedSyncEngine` XPCOM interface. Creating a bridged engine only takes a few lines of code, since most of the hard work is done on the Rust side. On the JS side, you'll need to subclass `BridgedEngine` (instead of `SyncEngine`), supply a `mozIBridgedSyncEngine` for your subclass to wrap, and optionally implement and override the tracker. 15488
collection_validator.sys.mjs Produce a list summarizing problems found. Each entry contains {name, count}, where name is the field name for the problem, and count is the number of times the problem was encountered. Validation has failed if all counts are not 0. 8397
constants.sys.mjs 5778
doctor.sys.mjs 7033
engines
engines.sys.mjs Trackers are associated with a single engine and deal with listening for changes to their particular data type. The base `Tracker` only supports listening for changes, and bumping the score to indicate how urgently the engine wants to sync. It does not persist any data. Engines that track changes directly in the storage layer (like bookmarks, bridged engines, addresses, and credit cards) or only upload a single record (tabs and preferences) should subclass `Tracker`. 70362
keys.sys.mjs Represents a pair of keys. Each key stored in a key bundle is 256 bits. One key is used for symmetric encryption. The other is used for HMAC. A KeyBundle by itself is just an anonymous pair of keys. Other types deriving from this one add semantics, such as associated collections or generating a key bundle via HKDF from another key. 4198
main.sys.mjs 827
metrics.yaml 21634
policies.sys.mjs The nsITimer object that schedules the next sync. See scheduleNextSync(). 35413
record.sys.mjs The base class for all Sync basic storage objects (BSOs). This is the format used to store all records on the Sync server. In an earlier version of the Sync protocol, BSOs used to be called WBOs, or Weave Basic Objects. This class retains the old name. @class @param {String} collection The collection name for this BSO. @param {String} id The ID of this BSO. 40177
resource.sys.mjs Resource represents a remote network resource, identified by a URI. Create an instance like so: let resource = new Resource("http://foobar.com/path/to/resource"); The 'resource' object has the following methods to issue HTTP requests of the corresponding HTTP methods: get(callback) put(data, callback) post(data, callback) delete(callback) 8259
service.sys.mjs 53136
stages
status.sys.mjs 3223
sync_auth.sys.mjs General authentication error for abstracting authentication errors from multiple sources (e.g., from FxAccounts, TokenServer). details is additional details about the error - it might be a string, or some other error object (which should do the right thing when toString() is called on it) 23572
SyncDisconnect.sys.mjs 8867
SyncedTabs.sys.mjs Make a "tab" record. Returns a promise 15536
TabsStore.sys.mjs 1346
telemetry.sys.mjs 41603
UIState.sys.mjs @typedef {Object} UIState @property {string} status The Sync/FxA status, see STATUS_* constants. @property {string} [email] The FxA email configured to log-in with Sync. @property {string} [displayName] The user's FxA display name. @property {string} [avatarURL] The user's FxA avatar URL. @property {Date} [lastSync] The last sync time. @property {boolean} [syncing] Whether or not we are currently syncing. 8390
util.sys.mjs Custom exception types. 21698