One thing to be mindful of is the latent desire to replace the backing store for local storage. Currently, each origin's data is kept in a separate sqlite db. The latent desire is...
1) to consolidate the multitude of dbs into one (more space efficient)
2) to switch from sqlite to leveldb (to reduce our dependency of that lib)
... making it more like session storage which uses a single leveldb per storage partition.
Logic to prune based on dates and storage pressure should be agnostic with regard to the backing store. So heads up... the LocalStrorageAdapter class might not be the best place for it since that class sole purpose in life is to abstract away the differences between local vs session storage backends.