Plumb through new ADM setting.

Co-authored-by: ayumi-signal <ayumi@signal.org>
This commit is contained in:
Miriam Zimmerman 2024-10-02 14:45:10 -04:00 committed by GitHub
parent fc7eba772c
commit c8a729f8be
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 47 additions and 0 deletions

View file

@ -18,6 +18,7 @@ export type ConfigKeyType =
| 'desktop.calling.adhoc'
| 'desktop.calling.adhoc.create'
| 'desktop.calling.raiseHand'
| 'desktop.calling.ringrtcAdm'
| 'desktop.clientExpiration'
| 'desktop.backup.credentialFetch'
| 'desktop.internalUser'

View file

@ -155,6 +155,7 @@ import { getConversationIdForLogging } from '../util/idForLogging';
import { sendCallLinkUpdateSync } from '../util/sendCallLinkUpdateSync';
import { createIdenticon } from '../util/createIdenticon';
import { getColorForCallLink } from '../util/getColorForCallLink';
import { getUseRingrtcAdm } from '../util/ringrtc/ringrtcAdm';
const { wasGroupCallRingPreviouslyCanceled } = DataReader;
const {
@ -378,6 +379,7 @@ export class CallingClass {
RingRTC.setConfig({
field_trials: undefined,
use_ringrtc_adm: getUseRingrtcAdm(),
});
RingRTC.handleOutgoingSignaling = this.handleOutgoingSignaling.bind(this);

View file

@ -110,6 +110,7 @@ export type StorageAccessType = {
synced_at: number;
userAgent: string;
uuid_id: string;
useRingrtcAdm: boolean;
pni: string;
version: string;
linkPreviews: boolean;

View file

@ -0,0 +1,31 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as RemoteConfig from '../../RemoteConfig';
import OS from '../os/osMain';
import { isProduction } from '../version';
export function getUseRingrtcAdm(): boolean {
const localUseRingrtcAdm = window.storage.get('useRingrtcAdm');
if (localUseRingrtcAdm !== undefined) {
return localUseRingrtcAdm;
}
if (
isProduction(window.getVersion()) ||
OS.isLinux() ||
!RemoteConfig.isEnabled('desktop.internalUser')
) {
return false;
}
return RemoteConfig.isEnabled('desktop.calling.ringrtcAdm');
}
export async function setUseRingrtcAdm(value: boolean): Promise<void> {
await window.storage.put('useRingrtcAdm', value);
}
export async function removeUseRingrtcAdm(): Promise<void> {
await window.storage.remove('useRingrtcAdm');
}

View file

@ -24,6 +24,10 @@ import { initMessageCleanup } from '../../services/messageStateCleanup';
import { Environment, getEnvironment } from '../../environment';
import { isProduction } from '../../util/version';
import { benchmarkConversationOpen } from '../../CI/benchmarkConversationOpen';
import {
removeUseRingrtcAdm,
setUseRingrtcAdm,
} from '../../util/ringrtc/ringrtcAdm';
window.addEventListener('contextmenu', e => {
const node = e.target as Element | null;
@ -74,6 +78,10 @@ if (
name: K,
value: StorageAccessType[K]
) => window.storage.put(name, value),
removeUseRingrtcAdm: async () => {
await removeUseRingrtcAdm();
log.info('Restart to make ADM change take effect!');
},
setFlag: (name: keyof FeatureFlagType, value: boolean) => {
if (!has(window.Flags, name)) {
return;
@ -83,6 +91,10 @@ if (
setSfuUrl: (url: string) => {
window.Signal.Services.calling._sfuUrl = url;
},
setUseRingrtcAdm: async (value: boolean) => {
await setUseRingrtcAdm(value);
log.info('Restart to make ADM change take effect!');
},
setIceServerOverride: (
override: GetIceServersResultType | string | undefined
) => {