experimental

indexed-db

The indexed-db module exposes the IndexedDB API to add-ons.

Scripts running in web pages can access IndexedDB via the window object. For example:

window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;

var request = window.indexedDB.open("MyDatabase");
request.onerror = function(event) {
  console.log("failure");
};
request.onsuccess = function(event) {
  console.log("success");
};

Because your main add-on code can't access the DOM, you can't do this. So you can use the indexed-db module to access the same API:

var { indexedDB } = require('indexed-db');

var request = indexedDB.open('MyDatabase');
request.onerror = function(event) {
  console.log("failure");
};
request.onsuccess = function(event) {
  console.log("success");
};

This module also exports all the other objects that implement the IndexedDB API, listed below under API Reference.

The API exposed by indexed-db is almost identical to the DOM IndexedDB API, so we haven't repeated its documentation here, but refer you to the IndexedDB API documentation for all the details.

The database created will be unique and private per addon, and is not linked to any website database. The module cannot be used to interact with a given website database. See bug 778197 and bug 786688.

Example of Usage

Promise-based example using indexedDB for record storage.

API Reference

Properties

indexedDB : object

Enables you to create, open, and delete databases. See the IDBFactory documentation.

IDBKeyRange : object

Defines a range of keys. See the IDBKeyRange documentation.

IDBCursor : object

For traversing or iterating records in a database. See the IDBCursor documentation.

IDBTransaction : object

Represents a database transaction. See the IDBTransaction documentation.

IDBOpenDBRequest : object

Represents an asynchronous request to open a database. See the IDBOpenDBRequest documentation.

IDBVersionChangeEvent : object

Event indicating that the database version has changed. See the IDBVersionChangeEvent documentation.

IDBDatabase : object

Represents a connection to a database. See the IDBDatabase documentation.

IDBFactory : object

Enables you to create, open, and delete databases. See the IDBFactory documentation.

IDBIndex : object

Provides access to a database index. See the IDBIndex documentation.

IDBObjectStore : object

Represents an object store in a database. See the IDBObjectStore documentation.

IDBRequest : object

Provides access to the results of asynchronous requests to databases and database objects. See the IDBRequest documentation.

DOMException : object

Provides more detailed information about an exception. See the DOMException documentation.