From b5133f72b66c41d00a82cd9514cc9d784352e207 Mon Sep 17 00:00:00 2001 From: Pete Walters Date: Fri, 24 Oct 2025 16:12:05 -0500 Subject: [PATCH] Fetch remote config after registration --- .../Registration/RegistrationCoordinatorDependencies.swift | 2 ++ Signal/Registration/RegistrationCoordinatorImpl.swift | 7 +++++++ Signal/test/Registration/RegistrationCoordinatorTest.swift | 1 + 3 files changed, 10 insertions(+) diff --git a/Signal/Registration/RegistrationCoordinatorDependencies.swift b/Signal/Registration/RegistrationCoordinatorDependencies.swift index 34be537a10..c39c1f8e69 100644 --- a/Signal/Registration/RegistrationCoordinatorDependencies.swift +++ b/Signal/Registration/RegistrationCoordinatorDependencies.swift @@ -37,6 +37,7 @@ public struct RegistrationCoordinatorDependencies { public let registrationBackupErrorPresenter: RegistrationCoordinatorBackupErrorPresenter public let registrationStateChangeManager: RegistrationStateChangeManager let registrationWebSocketManager: any RegistrationWebSocketManager + public let remoteConfigManager: any RemoteConfigManager public let sessionManager: RegistrationSessionManager public let signalService: OWSSignalServiceProtocol public let storageServiceManager: RegistrationCoordinatorImpl.Shims.StorageServiceManager @@ -84,6 +85,7 @@ public struct RegistrationCoordinatorDependencies { messagePipelineSupervisor: SSKEnvironment.shared.messagePipelineSupervisorRef, messageProcessor: SSKEnvironment.shared.messageProcessorRef, ), + remoteConfigManager: SSKEnvironment.shared.remoteConfigManagerRef, sessionManager: DependenciesBridge.shared.registrationSessionManager, signalService: SSKEnvironment.shared.signalServiceRef, storageServiceManager: RegistrationCoordinatorImpl.Wrappers.StorageServiceManager(SSKEnvironment.shared.storageServiceManagerRef), diff --git a/Signal/Registration/RegistrationCoordinatorImpl.swift b/Signal/Registration/RegistrationCoordinatorImpl.swift index 91e2e8ad4d..f9b4fc873b 100644 --- a/Signal/Registration/RegistrationCoordinatorImpl.swift +++ b/Signal/Registration/RegistrationCoordinatorImpl.swift @@ -1453,6 +1453,13 @@ public class RegistrationCoordinatorImpl: RegistrationCoordinator { await deps.registrationWebSocketManager.releaseRestrictedWebSocket(isRegistered: true) + do { + // releaseRestrictedWebSocket needs to be called before this happens. + try await deps.remoteConfigManager.refreshIfNeeded() + } catch { + Logger.warn("Failed to fetch remote config: \(error)") + } + // Start syncing system contacts now that we have set up tsAccountManager. deps.contactsManager.fetchSystemContactsOnceIfAlreadyAuthorized() diff --git a/Signal/test/Registration/RegistrationCoordinatorTest.swift b/Signal/test/Registration/RegistrationCoordinatorTest.swift index 224f0f0eb8..134ef1c9e8 100644 --- a/Signal/test/Registration/RegistrationCoordinatorTest.swift +++ b/Signal/test/Registration/RegistrationCoordinatorTest.swift @@ -135,6 +135,7 @@ public class RegistrationCoordinatorTest { registrationBackupErrorPresenter: RegistrationCoordinatorBackupErrorPresenterMock(), registrationStateChangeManager: registrationStateChangeManagerMock, registrationWebSocketManager: MockRegistrationWebSocketManager(), + remoteConfigManager: StubbableRemoteConfigManager(), sessionManager: sessionManager, signalService: mockSignalService, storageServiceManager: storageServiceManagerMock,