Name Description Size 16438 4373 This crate bridges the WebExtension storage area interfaces in Firefox Desktop to the extension storage Rust component in Application Services. ## How are the WebExtension storage APIs implemented in Firefox? There are three storage APIs available for WebExtensions: `storage.local`, which is stored locally in an IndexedDB database and never synced to other devices, `storage.sync`, which is stored in a local SQLite database and synced to all devices signed in to the same Firefox Account, and `storage.managed`, which is provisioned in a native manifest and read-only. * `storage.local` is implemented in `ExtensionStorageIDB.jsm`. * `storage.sync` is implemented in a Rust component, `webext_storage`. This Rust component is vendored in m-c, and exposed to JavaScript via an XPCOM API in `webext_storage_bridge` (this crate). Eventually, we'll change `ExtensionStorageSync.jsm` to call the XPCOM API instead of using the old Kinto storage adapter. * `storage.managed` is implemented directly in `parent/ext-storage.js`. `webext_storage_bridge` implements the `mozIExtensionStorageArea` (and, eventually, `mozIBridgedSyncEngine`) interface for `storage.sync`. The implementation is in `area::StorageSyncArea`, and is backed by the `webext_storage` component. 2482 12407 5618