This watches the `IndexedDBStore` in case it degrades. If it does, we track this
in analytics so we can observe how often it happens in the field.
Should help track errors like https://github.com/vector-im/riot-web/issues/7769
If we have account data in local storage but nothing in the crypto store, it
generally means the browser has evicted IndexedDB out from under us. This adds a
modal to explain the situation and offer to completely clear storage to get
things back to normal.
Fixes https://github.com/vector-im/riot-web/issues/9109
This adds logging for the cases where memory only stores are being used. It also
reorganises the sync store path to match the crypto store.
Part of https://github.com/vector-im/riot-web/issues/9309
This adds additional consistency checks to examine the local storage fallback
for the crypto store as well as the primary IndexedDB variant.
Part of https://github.com/vector-im/riot-web/issues/9309
In Firefox private browsing, we may get errors when checking storage
consistency. We don't want that to block general Riot operation, so catch those
errors and log instead.
Fixes https://github.com/vector-im/riot-web/issues/9300
This adds telemetry events about basic storage consistency, so we can start to
get an idea of how often IndexedDB eviction occurs in the field.
Fixes https://github.com/vector-im/riot-web/issues/9272
This adds a storage consistency check just before creating a client on login.
Each data store we use is checked for data and any problems are logged to the
console.
Fixes https://github.com/vector-im/riot-web/issues/9271