Files
servo/components/script_bindings/webidls/IDBObjectStore.webidl
Josh Matthews b7cdd88b8e IndexedDB: Handle missing object stores in object store operations (#38115)
These changes fix a large number of panics that can manifest as
intermittent test failures. They also add more specification text to
various IDBObjectStore methods and implement missing steps that check
for whether an object store is deleted.

Testing: Existing test coverage.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-22 22:04:34 +00:00

49 lines
2.0 KiB
Plaintext

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
/*
* The origin of this IDL file is
* https://w3c.github.io/IndexedDB/#idbobjectstore
*
*/
// https://w3c.github.io/IndexedDB/#idbobjectstore
[Pref="dom_indexeddb_enabled", Exposed=(Window,Worker)]
interface IDBObjectStore {
[SetterThrows] attribute DOMString name;
// readonly attribute any keyPath;
// readonly attribute DOMStringList indexNames;
[SameObject] readonly attribute IDBTransaction transaction;
readonly attribute boolean autoIncrement;
[NewObject, Throws] IDBRequest put(any value, optional any key);
[NewObject, Throws] IDBRequest add(any value, optional any key);
[NewObject, Throws] IDBRequest delete(any query);
[NewObject, Throws] IDBRequest clear();
[NewObject, Throws] IDBRequest get(any query);
[NewObject, Throws] IDBRequest getKey(any query);
// [NewObject] IDBRequest getAll(optional any query,
// optional [EnforceRange] unsigned long count);
// [NewObject] IDBRequest getAllKeys(optional any query,
// optional [EnforceRange] unsigned long count);
[NewObject, Throws] IDBRequest count(optional any query);
// [NewObject] IDBRequest openCursor(optional any query,
// optional IDBCursorDirection direction = "next");
// [NewObject] IDBRequest openKeyCursor(optional any query,
// optional IDBCursorDirection direction = "next");
// IDBIndex index(DOMString name);
// [NewObject] IDBIndex createIndex(DOMString name,
// (DOMString or sequence<DOMString>) keyPath,
// optional IDBIndexParameters options = {});
// void deleteIndex(DOMString name);
};
// https://w3c.github.io/IndexedDB/#dictdef-idbindexparameters
dictionary IDBIndexParameters {
boolean unique = false;
boolean multiEntry = false;
};