Intent to Ship: IndexedDB 2.0

91 views
Skip to first unread message

Victor Costan

unread,
Feb 17, 2017, 4:24:12 PM2/17/17
to blink-dev

Contact emails

pwn...@chromium.org, jsb...@chromium.org


Spec

https://w3c.github.io/IndexedDB/


TAG review: https://github.com/w3ctag/spec-reviews/issues/153


Summary

IndexedDB 2.0 (still in Editor's Draft) introduces a few APIs that optimize some database access patterns and improve programming ergonomics. We would like to support the full standard by shipping the following features:


* Support for binary keys: https://w3c.github.io/IndexedDB/#key-construct

* Object store renaming: https://w3c.github.io/IndexedDB/#dom-idbobjectstore-name

* Index renaming: https://w3c.github.io/IndexedDB/#dom-idbindex-name

* getKey() on IDBObjectStore: https://w3c.github.io/IndexedDB/#dom-idbobjectstore-getkey

* continuePrimaryKey() on IDBCursor: https://w3c.github.io/IndexedDB/#dom-idbcursor-continueprimarykey


Link to “Intent to Implement” blink-dev discussion

https://groups.google.com/a/chromium.org/d/topic/blink-dev/UpS11lcUkYg/discussion


Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

Yes.


Demo link

Bevis Tseng from Mozilla has an excellent blog post outlining the use of these and other IDB 2.0 features for developers: https://hacks.mozilla.org/2016/10/whats-new-in-indexeddb-2-0/


Debuggability

IndexedDB has DevTools support.

http://crbug.com/693726 addresses adding binary key support. The other new features do not require new debugging capabilities.


Interoperability and Compatibility Risk


Interoperability: Firefox and Safari have already shipped interoperable implementations (citations below), so the interoperability risk is low.


Compatibility: We are adding new APIs, which have been carefully designed to avoid breaking existing sites. For example, adding continuePrimaryKey() was preferred over introducing new behavior to continue(). Also, Firefox has shipped, so this appears to be Web-compatible.


We have upstreamed tests covering the entire API to WPT. The IndexedDB tests are at https://github.com/w3c/web-platform-tests/tree/master/IndexedDB


* Support for binary keys: idb_binary_key_conversion.htm, idbfactory_cmp3.htm, idbfactory_cmp4.htm

* Object store renaming: idbojectstore-rename-store.html, idbojectstore-rename-abort.html, idbojectstore-rename-errors.html

* Index renaming: idbindex-rename.html, idbindex-rename-abort.html, idbindex-rename-errors.html

* getKey() on IDBObjectStore: idbobjectstore_getKey.html, idbobjectstore_getKey{2-8}.html

* continuePrimaryKey() on IDBCursor: idbcursor-continuePrimaryKey.htm, idbcursor-continuePrimaryKey-exceptions.htm, idbcursor-continuePrimaryKey-exception-order.htm


Edge: No signals

Firefox: Shipped - https://hacks.mozilla.org/2016/10/whats-new-in-indexeddb-2-0/

Safari: Shipped - https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html

Victor Costan

unread,
Feb 17, 2017, 4:28:23 PM2/17/17
to blink-dev
Sorry, the bottom got truncated. Here is the whole e-mail again.

Chris Harrelson

unread,
Feb 18, 2017, 11:08:13 AM2/18/17
to Victor Costan, blink-dev
LGTM1

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

Dimitri Glazkov

unread,
Feb 18, 2017, 11:30:49 AM2/18/17
to Chris Harrelson, Victor Costan, blink-dev
LGTM2

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Jochen Eisinger

unread,
Feb 18, 2017, 1:13:48 PM2/18/17
to Dimitri Glazkov, Chris Harrelson, Victor Costan, blink-dev

lgtm3

Reply all
Reply to author
Forward
0 new messages