DatabaseIdentifier is a concept invented for our WebSQL implementation that is used for mapping an origin to a string which is safe to use as a filename.
Unfortunately, it gets used in many storage API implementations (IndexedDB, FileSystem, DOMStorage, CacheStorage, ...) as a proxy for origin - passed as a string over IPC (why not GURL?), passed into APIs (also, why not GURL?), etc.
We also ended up with two separate impls (blink, chromium) that need to match. There are also many places that do conversions (GURL->string) and then immediately convert back.
Stop the crazy!
We should restrict its use to the guts of implementations, really just when filenames are needed, and even then wrapped with module-specific helper functions so that it is an implementation detail not a contract.
Comment 1 by bugdroid1@chromium.org
, Mar 3 2016