Merge pull request #2832 from jryans/storage-telemetry

Send telemetry about storage consistency
This commit is contained in:
David Baker 2019-03-27 09:58:55 +00:00 committed by GitHub
commit a1e5fecb67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,6 +15,7 @@ limitations under the License.
*/
import Matrix from 'matrix-js-sdk';
import Analytics from '../Analytics';
const localStorage = window.localStorage;
@ -37,6 +38,10 @@ function error(msg) {
console.error(`StorageManager: ${msg}`);
}
function track(action) {
Analytics.trackEvent("StorageManager", action);
}
export async function checkConsistency() {
log("Checking storage consistency");
log(`Local storage supported? ${!!localStorage}`);
@ -52,6 +57,7 @@ export async function checkConsistency() {
} else {
healthy = false;
error("Local storage cannot be used on this browser");
track("Local storage disabled");
}
if (indexedDB && localStorage) {
@ -62,6 +68,7 @@ export async function checkConsistency() {
} else {
healthy = false;
error("Sync store cannot be used on this browser");
track("Sync store disabled");
}
if (indexedDB) {
@ -72,6 +79,7 @@ export async function checkConsistency() {
} else {
healthy = false;
error("Crypto store cannot be used on this browser");
track("Crypto store disabled");
}
if (dataInLocalStorage && !dataInCryptoStore) {
@ -80,11 +88,14 @@ export async function checkConsistency() {
"Data exists in local storage but not in crypto store. " +
"IndexedDB storage has likely been evicted by the browser!",
);
track("Crypto store evicted");
}
if (healthy) {
log("Storage consistency checks passed");
track("Consistency checks passed");
} else {
error("Storage consistency checks failed");
track("Consistency checks failed");
}
}