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 withpartial 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)