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 {