Note that the spec has never had a non-prefixed version. This has always been Chrome-only.Motivation
We added this feature when Indexed DB was relatively new in Chrome and prefixing was all the rage. The API asynchronously returns a list of existing database names in an origin, which seemed sensible enough.
The design is flawed, in that the results may be obsolete as soon as they are returned, so it can really only be used for logging, not serious application logic. The github issue
https://github.com/w3c/IndexedDB/issues/31 tracks/links to previous discussion on alternatives, which would require a different approach. While there's been on-and-off interest by developers, given the lack of cross-browser progress here the problem has been worked around by library authors.
Compatibility And Interoperability Risk
Edge: Not supported
Firefox: Not supported
Safari: Not supported
Web developers: Requested, but only used in a handful of libraries due to lack of cross-browser adoption. Comes up on StackOverflow
every so often.
Alternative implementation suggestion for web developers
Ostensibly, an origin should know
a priori what code it has previously shipped and therefore what databases may have been created. In practice, many sites use libraries (like Dexie.js) which abstract away database creation in various ways. Due to the lack of cross-browser support here, libraries do things like storing such metadata in another database.
In general, origins can just ignore databases they don't care about. The case where this is problematic is if a database holds a sizable amount of data and is then "forgotten" by the developers, consuming the origin's quota. Without the ability to enumerate, the only recourse here for the origin would be via the
Clear Site Data mechanism.
Usage was at 0.001% until a few weeks ago when it spiked up to 0.01% with a bimodal distribution which is a bit odd. Reading the tea leaves, I'd guess a big site (possibly an analytics provider?) started using it.
HTTPArchive shows 42 hits, all of which are one of these three libraries (mostly the first two):
All three libraries have fallbacks in case the method is not present.
OWP launch tracking bug
Will file if approved.
We'd also file bugs against the three libraries indicating that a deprecation warning and eventual removal is planned.
Trivia:
This was the first new feature I implemented as a Chrome Noogler.