10. Revision History

The following is an informative summary of the changes since the last publication of this specification. A complete revision history can be found here. For the revision history of the first edition, see that document’s Revision History.

  • Address comparison of empty arrays. (bug #27712)

  • Added [openKeyCursor()](#dom-idbobjectstore-openkeycursor) on [IDBObjectStore](#idbobjectstore). (bug #19955)

  • Correct source used for [get()](#dom-idbindex-get), [getKey()](#dom-idbindex-getkey) and [openKeyCursor()](#dom-idbindex-openkeycursor) on [IDBIndex](#idbindex).

  • Added details around garbage collection of [IDBDatabase](#idbdatabase) objects. (bug #25223)

  • Added [Exposed=(Window,Worker)] annotations to interfaces.

  • Added forced flag to the steps to close a database connection, described the firing of a “close“ event, and [onclose](#dom-idbdatabase-onclose). (bug #22540)

  • Converted specification to a more algorithmic style, and define abstract types such as key more rigorously. (bug #17681)

  • Added [getAll()](#dom-idbobjectstore-getall) and [getAllKeys()](#dom-idbobjectstore-getallkeys) on [IDBObjectStore](#idbobjectstore), and [getAll()](#dom-idbindex-getall) and [getAllKeys()](#dom-idbindex-getallkeys) on [IDBIndex](#idbindex). (bug #16595)

  • Replaced [DOMError](https://dom.spec.whatwg.org/#domerror) with [DOMException](https://www.w3.org/TR/WebIDL-1/#idl-DOMException). (bug #16)

  • Added [objectStoreNames](#dom-idbtransaction-objectstorenames) on [IDBTransaction](#idbtransaction). (bug #18)

  • Added binary keys, including comparisons and ECMAScript bindings. (bug #21)

  • Allow renaming stores and indexes via [IDBObjectStore](#idbobjectstore)‘s [name](#dom-idbobjectstore-name) and [IDBIndex](#idbindex)‘s [name](#dom-idbindex-name) attribute setters. (bug #22)

  • Added [continuePrimaryKey()](#dom-idbcursor-continueprimarykey) on [IDBCursor](#idbcursor). (bug #14)

  • Added [includes()](#dom-idbkeyrange-includes) on [IDBKeyRange](#idbkeyrange). (bug #41)

  • Added [getKey()](#dom-idbobjectstore-getkey) on [IDBObjectStore](#idbobjectstore). (bug #26)

  • Clarified when a transaction can attempt to commit. (bug #77)

  • Clarified open request / connection queue processing. (bug #9, bug #78, bug #79, bug #81)

  • Ensure event firing is done in the context of queued tasks. (bug #83)

  • Define precedence for exceptions when multiple error conditions apply. (bug #11)

  • Remove IDBEnvironment; expose globals with partial interface instead. (bug #94)

  • Clarify when [deleteDatabase()](#dom-idbfactory-deletedatabase) can fail. (bug #74)

  • Add non-normative documentation for every method. (bug #110)

  • Throw [SecurityError](https://www.w3.org/TR/WebIDL-1/#securityerror) if [open()](#dom-idbfactory-open) or [deleteDatabase()](#dom-idbfactory-deletedatabase) is called from an opaque origin. (bug #148)

  • Integrate with legacyOutputDidListenersThrowFlag hook in [DOM41], replacing monkey patching. (bug #140)

  • Define cleanup Indexed Database transactions hook for [HTML52], replacing monkey patching. (bug #87)

  • Fix handling of edge cases in key generation algorithm. (bug #147)

  • Use [HTML52]‘s StructuredSerialize and StructuredDeserialize hooks. (bug #170)

  • Use [[SameObject](https://www.w3.org/TR/WebIDL-1/#SameObject)]/[[NewObject](https://www.w3.org/TR/WebIDL-1/#NewObject)] in IDL where appropriate. (issue #193, issue #194)

  • Transaction-is-active test can be an assertion in the asynchronously execute a request steps. (issue #192)

  • Use [HTML52]‘s StructuredSerializeForStorage hook. (issue #197, issue #152)

  • Define database‘s associated upgrade transaction to align exceptions thrown from [createObjectStore()](#dom-idbdatabase-createobjectstore) and [deleteObjectStore()](#dom-idbdatabase-deleteobjectstore) with tests and implementations. (issue #192)

  • Set [=request/result]/done flag appropriately for requests from [open()](#dom-idbfactory-open) and [deleteDatabase()](#dom-idbfactory-deletedatabase). (issue #161)