From df1240049a184396b08117a440c0d5bc38f47031 Mon Sep 17 00:00:00 2001 From: Sergey Skrobotov Date: Thu, 18 Apr 2024 11:46:48 -0700 Subject: [PATCH] Add a remote config option to disable libsignal transport in prod --- ts/RemoteConfig.ts | 1 + ts/textsecure/SocketManager.ts | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ts/RemoteConfig.ts b/ts/RemoteConfig.ts index 42aea244e..ed9a06211 100644 --- a/ts/RemoteConfig.ts +++ b/ts/RemoteConfig.ts @@ -27,6 +27,7 @@ export type ConfigKeyType = | 'desktop.senderKeyMaxAge' | 'desktop.experimentalTransportEnabled.alpha' | 'desktop.experimentalTransportEnabled.beta' + | 'desktop.experimentalTransportEnabled.prod' | 'desktop.cdsiViaLibsignal' | 'global.attachments.maxBytes' | 'global.attachments.maxReceiveBytes' diff --git a/ts/textsecure/SocketManager.ts b/ts/textsecure/SocketManager.ts index 5cbb0abb1..9dee7b338 100644 --- a/ts/textsecure/SocketManager.ts +++ b/ts/textsecure/SocketManager.ts @@ -559,8 +559,14 @@ export class SocketManager extends EventListener { : TransportOption.ShadowingLow; } - // in prod, using original - return TransportOption.ShadowingLow; + // in prod, switch to using 'ShadowingHigh' mode, unless user opts out, + // in which case switching to `ShadowingLow` + const configValue = window.Signal.RemoteConfig.isEnabled( + 'desktop.experimentalTransportEnabled.prod' + ); + return configValue + ? TransportOption.ShadowingLow + : TransportOption.Original; } private connectLibsignalUnauthenticated(): AbortableProcess {