From 79ed74f7b87c6db4674036755f7f73c1ec5fdb2b Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Wed, 20 Mar 2024 16:54:34 -0700 Subject: [PATCH] Don't run integrity checks when unlinked --- ts/background.ts | 10 +++++++++- ts/services/usernameIntegrity.ts | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ts/background.ts b/ts/background.ts index a0326c48c1..1b988d1693 100644 --- a/ts/background.ts +++ b/ts/background.ts @@ -1324,7 +1324,7 @@ export async function startApp(): Promise { }); window.Whisper.events.on('unlinkAndDisconnect', () => { - void unlinkAndDisconnect(); + drop(unlinkAndDisconnect()); }); window.Whisper.events.on('httpResponse499', () => { @@ -2928,6 +2928,14 @@ export async function startApp(): Promise { conversation.unset('senderKeyInfo'); }); + // We use username for integrity check + const ourConversation = + window.ConversationController.getOurConversation(); + if (ourConversation) { + ourConversation.unset('username'); + window.Signal.Data.updateConversation(ourConversation.attributes); + } + // Then make sure outstanding conversation saves are flushed await window.Signal.Data.flushUpdateConversationBatcher(); diff --git a/ts/services/usernameIntegrity.ts b/ts/services/usernameIntegrity.ts index 35b5b73fc8..4a415b185b 100644 --- a/ts/services/usernameIntegrity.ts +++ b/ts/services/usernameIntegrity.ts @@ -4,6 +4,7 @@ import pTimeout from 'p-timeout'; import * as Errors from '../types/errors'; +import { isDone as isRegistrationDone } from '../util/registration'; import { getConversation } from '../util/getConversation'; import { MINUTE, DAY } from '../util/durations'; import { drop } from '../util/drop'; @@ -69,6 +70,10 @@ class UsernameIntegrityService { } private async check(): Promise { + if (!isRegistrationDone()) { + return; + } + await this.checkUsername(); await this.checkPhoneNumberSharing(); }