Commit graph

10 commits

Author SHA1 Message Date
David Baker
fc636c6cb9 lint 2019-05-15 14:00:37 +01:00
David Baker
da1bff1c5d Fix Single Sign-on
https://github.com/matrix-org/matrix-react-sdk/pull/2826 checked
that we had data in the crypto store if the had credentials in
localStorage. However, SSO stores creds in localStorage and then
redirects the browser to remove the loginToken parameter from the
URL without starting crypto, so after the redirect, we see creds
in localStorage but no crypto data, and error.

Fix by marking when we've successfully initialised crypto and only
erroring if that flag is set.

Fixes https://github.com/vector-im/riot-web/issues/9695
2019-05-15 13:47:48 +01:00
J. Ryan Stinnett
16573a6381 Track store failures after startup
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
2019-04-04 11:59:53 +01:00
J. Ryan Stinnett
57d72b4deb
Merge pull request #2841 from jryans/storage-eviction-modal
Notify user when crypto data is missing
2019-04-01 17:31:39 +01:00
J. Ryan Stinnett
328f0cd6bf Notify user when crypto data is missing
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
2019-03-29 16:06:08 +00:00
J. Ryan Stinnett
f396cf830c Clarify when memory stores are being used
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
2019-03-28 12:40:38 +00:00
J. Ryan Stinnett
1928c43476 Check the local storage fallback for crypto store
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
2019-03-28 12:27:33 +00:00
J. Ryan Stinnett
73b2484e08 Catch errors when checking IndexedDB
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
2019-03-27 15:48:38 +00:00
J. Ryan Stinnett
d06fb0d076 Send telemetry about storage consistency
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
2019-03-27 09:26:15 +00:00
J. Ryan Stinnett
4c0f459995 Add basic storage consistency check
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
2019-03-26 16:34:13 +00:00