Update to RingRTC v2.54.1
Co-authored-by: Miriam Zimmerman <mutexlox@signal.org>
This commit is contained in:
parent
3e24e510e6
commit
0771075a75
7 changed files with 50 additions and 88 deletions
|
@ -13769,7 +13769,7 @@ For more information on this, and how to apply and follow the GNU AGPL, see
|
|||
|
||||
```
|
||||
|
||||
## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.53.0, protobuf 2.53.0, ringrtc 2.53.0, regex-aot 0.1.0, partial-default-derive 0.1.0
|
||||
## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.54.1, protobuf 2.54.1, ringrtc 2.54.1, regex-aot 0.1.0, partial-default-derive 0.1.0
|
||||
|
||||
```
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
|
@ -15450,38 +15450,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
|
||||
```
|
||||
|
||||
## hex-literal 0.4.1
|
||||
|
||||
```
|
||||
Copyright (c) 2018 Artyom Pavlov
|
||||
Copyright (c) 2018 The RustCrypto Project Developers
|
||||
|
||||
Permission is hereby granted, free of charge, to any
|
||||
person obtaining a copy of this software and associated
|
||||
documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without
|
||||
limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice
|
||||
shall be included in all copies or substantial portions
|
||||
of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
```
|
||||
|
||||
## bytes 1.10.1
|
||||
|
||||
```
|
||||
|
@ -16095,7 +16063,7 @@ SOFTWARE.
|
|||
|
||||
```
|
||||
|
||||
## rand 0.8.5, rand_chacha 0.3.1, rand_core 0.6.4
|
||||
## rand 0.8.5, rand 0.9.1, rand_chacha 0.3.1, rand_chacha 0.9.0, rand_core 0.6.4, rand_core 0.9.3
|
||||
|
||||
```
|
||||
Copyright 2018 Developers of the Rand project
|
||||
|
@ -16267,6 +16235,32 @@ SOFTWARE.
|
|||
|
||||
```
|
||||
|
||||
## const-str 0.6.2
|
||||
|
||||
```
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 Nugine
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
```
|
||||
|
||||
## derive-where 1.4.0
|
||||
|
||||
```
|
||||
|
@ -16334,7 +16328,7 @@ SOFTWARE.
|
|||
|
||||
```
|
||||
|
||||
## curve25519-dalek-derive 0.1.1, anyhow 1.0.98, displaydoc 0.2.5, fastrand 2.3.0, itoa 1.0.15, linkme-impl 0.3.33, linkme 0.3.33, linux-raw-sys 0.9.4, num_enum 0.7.3, num_enum_derive 0.7.3, once_cell 1.21.3, prettyplease 0.2.32, proc-macro-crate 3.3.0, proc-macro2 1.0.95, quote 1.0.40, rustix 1.0.7, semver 1.0.26, send_wrapper 0.6.0, serde 1.0.219, serde_derive 1.0.219, serde_json 1.0.140, syn 1.0.109, syn 2.0.101, thiserror-impl 1.0.69, thiserror 1.0.69, unicode-ident 1.0.18
|
||||
## curve25519-dalek-derive 0.1.1, anyhow 1.0.98, displaydoc 0.2.5, fastrand 2.3.0, itoa 1.0.15, linkme-impl 0.3.33, linkme 0.3.33, linux-raw-sys 0.9.4, num_enum 0.7.3, num_enum_derive 0.7.3, once_cell 1.21.3, prettyplease 0.2.32, proc-macro-crate 3.3.0, proc-macro2 1.0.95, quote 1.0.40, rustix 1.0.7, semver 1.0.26, send_wrapper 0.6.0, serde 1.0.219, serde_derive 1.0.219, serde_json 1.0.140, syn 1.0.109, syn 2.0.101, thiserror-impl 1.0.69, thiserror-impl 2.0.12, thiserror 1.0.69, thiserror 2.0.12, unicode-ident 1.0.18
|
||||
|
||||
```
|
||||
Permission is hereby granted, free of charge, to any
|
||||
|
@ -16603,7 +16597,7 @@ THE SOFTWARE.
|
|||
|
||||
```
|
||||
|
||||
## derive_more-impl 1.0.0, derive_more 1.0.0
|
||||
## derive_more-impl 2.0.1, derive_more 2.0.1
|
||||
|
||||
```
|
||||
The MIT License (MIT)
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
"@react-types/shared": "3.27.0",
|
||||
"@signalapp/libsignal-client": "0.76.0",
|
||||
"@signalapp/quill-cjs": "2.1.2",
|
||||
"@signalapp/ringrtc": "2.53.0",
|
||||
"@signalapp/ringrtc": "2.54.1",
|
||||
"@signalapp/sqlcipher": "2.0.3",
|
||||
"@signalapp/windows-ucv": "1.0.0",
|
||||
"@tanstack/react-virtual": "3.11.2",
|
||||
|
|
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
|
@ -135,8 +135,8 @@ importers:
|
|||
specifier: 2.1.2
|
||||
version: 2.1.2
|
||||
'@signalapp/ringrtc':
|
||||
specifier: 2.53.0
|
||||
version: 2.53.0
|
||||
specifier: 2.54.1
|
||||
version: 2.54.1
|
||||
'@signalapp/sqlcipher':
|
||||
specifier: 2.0.3
|
||||
version: 2.0.3
|
||||
|
@ -2780,8 +2780,8 @@ packages:
|
|||
resolution: {integrity: sha512-y2sgqdivlrG41J4Zvt/82xtH/PZjDlgItqlD2g/Cv3ZbjlR6cGhTNXbfNygCJB8nXj+C7I28pjt1Zm3k0pv2mg==}
|
||||
engines: {npm: '>=8.2.3'}
|
||||
|
||||
'@signalapp/ringrtc@2.53.0':
|
||||
resolution: {integrity: sha512-X2+NRyZWNa1mk4RN1+PodB5kxgsc8vkUB2T7wn9ma0w3E3UOWGqCTOKmBZRTywOAUWkWi/wBA3rVo22CmjjaDA==}
|
||||
'@signalapp/ringrtc@2.54.1':
|
||||
resolution: {integrity: sha512-BcV4ewf3QJl3QAltWS+nImZx4o4k3cTEL1RFnSY8vO1lg9Zc4XkaDJVjbSEWakQR8NorrFIy/nNEf+RKb8kr+g==}
|
||||
|
||||
'@signalapp/sqlcipher@2.0.3':
|
||||
resolution: {integrity: sha512-aywstwV6Lg17NSPVK7fb40CIF687D6352YwCwAxDSxrw/qTxJampgdHzPpMrsepb0y6gSAzdYEpRbosJZPqP/g==}
|
||||
|
@ -12498,7 +12498,7 @@ snapshots:
|
|||
lodash: 4.17.21
|
||||
quill-delta: 5.1.0
|
||||
|
||||
'@signalapp/ringrtc@2.53.0':
|
||||
'@signalapp/ringrtc@2.54.1':
|
||||
dependencies:
|
||||
https-proxy-agent: 7.0.6
|
||||
tar: 6.2.1
|
||||
|
|
|
@ -18,9 +18,6 @@ import { parseRemoteClientExpiration } from './util/parseRemoteClientExpiration'
|
|||
const log = createLogger('RemoteConfig');
|
||||
|
||||
export type ConfigKeyType =
|
||||
| 'desktop.calling.ringrtcAdmFull.3'
|
||||
| 'desktop.calling.ringrtcAdmInternal'
|
||||
| 'desktop.calling.ringrtcAdmPreStable'
|
||||
| 'desktop.chatFolders.alpha'
|
||||
| 'desktop.chatFolders.beta'
|
||||
| 'desktop.chatFolders.prod'
|
||||
|
|
|
@ -46,6 +46,7 @@ import {
|
|||
CreateCallLinkCredentialRequestContext,
|
||||
CreateCallLinkCredentialResponse,
|
||||
GenericServerPublicParams,
|
||||
ServerPublicParams,
|
||||
} from '@signalapp/libsignal-client/zkgroup';
|
||||
import { Aci } from '@signalapp/libsignal-client';
|
||||
import { CanvasVideoRenderer, GumVideoCapturer } from '../calling/VideoSupport';
|
||||
|
@ -158,7 +159,6 @@ 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';
|
||||
import OS from '../util/os/osMain';
|
||||
import { sleep } from '../util/sleep';
|
||||
|
||||
|
@ -502,7 +502,6 @@ export class CallingClass {
|
|||
|
||||
RingRTC.setConfig({
|
||||
field_trials: undefined,
|
||||
use_ringrtc_adm: getUseRingrtcAdm(),
|
||||
});
|
||||
|
||||
RingRTC.handleOutgoingSignaling = this.#handleOutgoingSignaling.bind(this);
|
||||
|
@ -1007,12 +1006,17 @@ export class CallingClass {
|
|||
|
||||
const authCredentialPresentation =
|
||||
await getCallLinkAuthCredentialPresentation(callLinkRootKey);
|
||||
const serverPublicParams = new ServerPublicParams(
|
||||
Buffer.from(window.getServerPublicParams(), 'base64')
|
||||
);
|
||||
const endorsementsPublicKey = serverPublicParams.getEndorsementPublicKey();
|
||||
|
||||
const groupCall = this.connectCallLinkCall({
|
||||
roomId,
|
||||
authCredentialPresentation,
|
||||
callLinkRootKey,
|
||||
adminPasskey,
|
||||
endorsementsPublicKey: Buffer.from(endorsementsPublicKey),
|
||||
});
|
||||
|
||||
groupCall.setOutgoingAudioMuted(!hasLocalAudio);
|
||||
|
@ -1352,11 +1356,13 @@ export class CallingClass {
|
|||
authCredentialPresentation,
|
||||
callLinkRootKey,
|
||||
adminPasskey,
|
||||
endorsementsPublicKey,
|
||||
}: {
|
||||
roomId: string;
|
||||
authCredentialPresentation: CallLinkAuthCredentialPresentation;
|
||||
callLinkRootKey: CallLinkRootKey;
|
||||
adminPasskey: Buffer | undefined;
|
||||
endorsementsPublicKey: Buffer;
|
||||
}): GroupCall {
|
||||
const existing = this.#getGroupCall(roomId);
|
||||
if (existing) {
|
||||
|
@ -1380,6 +1386,7 @@ export class CallingClass {
|
|||
|
||||
const outerGroupCall = RingRTC.getCallLinkCall(
|
||||
this._sfuUrl,
|
||||
endorsementsPublicKey,
|
||||
Buffer.from(authCredentialPresentation.serialize()),
|
||||
callLinkRootKey,
|
||||
undefined,
|
||||
|
@ -1803,6 +1810,10 @@ export class CallingClass {
|
|||
const authCredentialPresentation =
|
||||
await getCallLinkAuthCredentialPresentation(callLinkRootKey);
|
||||
const adminPasskey = adminKey ? toAdminKeyBytes(adminKey) : undefined;
|
||||
const serverPublicParams = new ServerPublicParams(
|
||||
Buffer.from(window.getServerPublicParams(), 'base64')
|
||||
);
|
||||
const endorsementsPublicKey = serverPublicParams.getEndorsementPublicKey();
|
||||
|
||||
// RingRTC reuses the same type GroupCall between Adhoc and Group calls.
|
||||
const groupCall = this.connectCallLinkCall({
|
||||
|
@ -1810,6 +1821,7 @@ export class CallingClass {
|
|||
authCredentialPresentation,
|
||||
callLinkRootKey,
|
||||
adminPasskey,
|
||||
endorsementsPublicKey: Buffer.from(endorsementsPublicKey),
|
||||
});
|
||||
|
||||
// Set the camera disposition as we transition from the lobby to the call link call.
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
// Copyright 2024 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import * as RemoteConfig from '../../RemoteConfig';
|
||||
import { isProduction } from '../version';
|
||||
|
||||
export function getUseRingrtcAdm(): boolean {
|
||||
const localUseRingrtcAdm = window.storage.get('useRingrtcAdm');
|
||||
if (localUseRingrtcAdm !== undefined) {
|
||||
return localUseRingrtcAdm;
|
||||
}
|
||||
|
||||
if (!RemoteConfig.isEnabled('desktop.internalUser')) {
|
||||
if (isProduction(window.getVersion())) {
|
||||
return RemoteConfig.isEnabled('desktop.calling.ringrtcAdmFull.3');
|
||||
}
|
||||
return RemoteConfig.isEnabled('desktop.calling.ringrtcAdmPreStable');
|
||||
}
|
||||
|
||||
return RemoteConfig.isEnabled('desktop.calling.ringrtcAdmInternal');
|
||||
}
|
||||
|
||||
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');
|
||||
}
|
|
@ -30,10 +30,6 @@ 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';
|
||||
|
||||
const log = createLogger('start');
|
||||
|
||||
|
@ -98,10 +94,6 @@ 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;
|
||||
|
@ -111,10 +103,6 @@ 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
|
||||
) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue