Name Description Size
addons.sys.mjs This file defines the add-on sync functionality. There are currently a number of known limitations: - We only sync XPI extensions and themes available from We hope to expand support for other add-ons eventually. - We only attempt syncing of add-ons between applications of the same type. This means add-ons will not synchronize between Firefox desktop and Firefox mobile, for example. This is because of significant add-on incompatibility between application types. Add-on records exist for each known {add-on, app-id} pair in the Sync client set. Each record has a randomly chosen GUID. The records then contain basic metadata about the add-on. We currently synchronize: - Installations - Uninstallations - User enabling and disabling Synchronization is influenced by the following preferences: - services.sync.addons.ignoreUserEnabledChanges - services.sync.addons.trustedSourceHostnames and also influenced by whether addons have repository caching enabled and whether they allow installation of addons from insecure options (both of which are themselves influenced by the "extensions." pref branch) See the documentation in all.js for the behavior of these prefs. 25411
bookmarks.sys.mjs 29456
clients.sys.mjs How does the clients engine work? - We use 2 files - commands.json and commands-syncing.json. - At sync upload time, we attempt a rename of commands.json to commands-syncing.json, and ignore errors (helps for crash during sync!). - We load commands-syncing.json and stash the contents in _currentlySyncingCommands which lives for the duration of the upload process. - We use _currentlySyncingCommands to build the outgoing records - Immediately after successful upload, we delete commands-syncing.json from disk (and clear _currentlySyncingCommands). We reconcile our local records with what we just wrote in the server, and add failed IDs commands back in commands.json - Any time we need to "save" a command for future syncs, we load commands.json, update it, and write it back out. 36732
extension-storage.sys.mjs 9573
forms.sys.mjs 7387
history.sys.mjs 20996
passwords.sys.mjs 14735
prefs.sys.mjs 16553
tabs.sys.mjs 21022