Merge pull request #5812 from matrix-org/jryans/cancel-security-key

Tweak security key error handling
pull/21833/head
J. Ryan Stinnett 2021-03-29 17:58:11 +01:00 committed by GitHub
commit 3a09c22173
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 15 deletions

View File

@ -395,6 +395,8 @@ export async function accessSecretStorage(func = async () => { }, forceReset = f
} catch (e) { } catch (e) {
SecurityCustomisations.catchAccessSecretStorageError?.(e); SecurityCustomisations.catchAccessSecretStorageError?.(e);
console.error(e); console.error(e);
// Re-throw so that higher level logic can abort as needed
throw e;
} finally { } finally {
// Clear secret storage key cache now that work is complete // Clear secret storage key cache now that work is complete
secretStorageBeingAccessed = false; secretStorageBeingAccessed = false;

View File

@ -121,21 +121,16 @@ export class SetupEncryptionStore extends EventEmitter {
// on the first trust check, and the key backup restore will happen // on the first trust check, and the key backup restore will happen
// in the background. // in the background.
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
try { accessSecretStorage(async () => {
accessSecretStorage(async () => { await cli.checkOwnCrossSigningTrust();
await cli.checkOwnCrossSigningTrust(); resolve();
resolve(); if (backupInfo) {
if (backupInfo) { // A complete restore can take many minutes for large
// A complete restore can take many minutes for large // accounts / slow servers, so we allow the dialog
// accounts / slow servers, so we allow the dialog // to advance before this.
// to advance before this. await cli.restoreKeyBackupWithSecretStorage(backupInfo);
await cli.restoreKeyBackupWithSecretStorage(backupInfo); }
} }).catch(reject);
}).catch(reject);
} catch (e) {
console.error(e);
reject(e);
}
}); });
if (cli.getCrossSigningId()) { if (cli.getCrossSigningId()) {