From 16dcf31906fec03ab79a08b8caed9d062118b864 Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Fri, 16 Feb 2024 11:49:48 -0800 Subject: [PATCH] Remove unused pre-PNP code --- protos/SignalStorage.proto | 2 +- ts/RemoteConfig.ts | 2 -- ts/background.ts | 4 +--- ts/services/storageRecordOps.ts | 19 ------------------- ts/textsecure/WebAPI.ts | 16 ++++------------ ts/types/Storage.d.ts | 3 --- ts/util/getServiceIdsForE164s.ts | 7 +------ ts/util/isPnpCapable.ts | 24 ------------------------ 8 files changed, 7 insertions(+), 70 deletions(-) delete mode 100644 ts/util/isPnpCapable.ts diff --git a/protos/SignalStorage.proto b/protos/SignalStorage.proto index 46de3227a3..16240fca70 100644 --- a/protos/SignalStorage.proto +++ b/protos/SignalStorage.proto @@ -183,7 +183,7 @@ message AccountRecord { optional bool preferContactAvatars = 15; optional uint32 universalExpireTimer = 17; optional bool primarySendsSms = 18; - optional string e164 = 19; + reserved 19; // deprecatedE164 repeated string preferredReactionEmoji = 20; optional bytes subscriberId = 21; optional string subscriberCurrencyCode = 22; diff --git a/ts/RemoteConfig.ts b/ts/RemoteConfig.ts index 728b383ef1..1eeccffd47 100644 --- a/ts/RemoteConfig.ts +++ b/ts/RemoteConfig.ts @@ -15,8 +15,6 @@ import { HashType } from './types/Crypto'; import { getCountryCode } from './types/PhoneNumber'; export type ConfigKeyType = - | 'cds.disableCompatibilityMode' - | 'desktop.cdsi.returnAcisWithoutUaks' | 'desktop.clientExpiration' | 'desktop.groupMultiTypingIndicators' | 'desktop.internalUser' diff --git a/ts/background.ts b/ts/background.ts index c228400d95..fa8d6026ce 100644 --- a/ts/background.ts +++ b/ts/background.ts @@ -1802,9 +1802,7 @@ export async function startApp(): Promise { try { // Note: we always have to register our capabilities all at once, so we do this // after connect on every startup - await server.registerCapabilities({ - pni: true, - }); + await server.registerCapabilities({}); } catch (error) { log.error( 'Error: Unable to register our capabilities.', diff --git a/ts/services/storageRecordOps.ts b/ts/services/storageRecordOps.ts index b05c6789ca..b063035d87 100644 --- a/ts/services/storageRecordOps.ts +++ b/ts/services/storageRecordOps.ts @@ -24,7 +24,6 @@ import { PhoneNumberDiscoverability, parsePhoneNumberDiscoverability, } from '../util/phoneNumberDiscoverability'; -import { isPnpCapable } from '../util/isPnpCapable'; import { arePinnedConversationsEqual } from '../util/arePinnedConversationsEqual'; import type { ConversationModel } from '../models/conversations'; import { @@ -281,14 +280,6 @@ export function toAccountRecord( accountRecord.primarySendsSms = Boolean(primarySendsSms); } - const accountE164 = window.storage.get('accountE164'); - // Once account becomes PNP capable - we want to stop populating this field - // because it is deprecated in PNP world and we don't want to cause storage - // service thrashing. - if (accountE164 !== undefined && !isPnpCapable()) { - accountRecord.e164 = accountE164; - } - const rawPreferredReactionEmoji = window.storage.get( 'preferredReactionEmoji' ); @@ -1194,7 +1185,6 @@ export async function mergeAccountRecord( preferContactAvatars, primarySendsSms, universalExpireTimer, - e164: accountE164, preferredReactionEmoji: rawPreferredReactionEmoji, subscriberId, subscriberCurrencyCode, @@ -1238,15 +1228,6 @@ export async function mergeAccountRecord( await window.storage.put('primarySendsSms', primarySendsSms); } - // Store AccountRecord.e164 in an auxiliary field that isn't used for any - // other purpose in the app. This is required only while we are deprecating - // the AccountRecord.e164. - if (typeof accountE164 === 'string') { - await window.storage.put('accountE164', accountE164); - } else { - await window.storage.remove('accountE164'); - } - if (preferredReactionEmoji.canBeSynced(rawPreferredReactionEmoji)) { const localPreferredReactionEmoji = window.storage.get('preferredReactionEmoji') || []; diff --git a/ts/textsecure/WebAPI.ts b/ts/textsecure/WebAPI.ts index c2b5f9a35d..b77a63d514 100644 --- a/ts/textsecure/WebAPI.ts +++ b/ts/textsecure/WebAPI.ts @@ -636,12 +636,8 @@ export type WebAPIConnectType = { connect: (options: WebAPIConnectOptionsType) => WebAPIType; }; -export type CapabilitiesType = { - pni: boolean; -}; -export type CapabilitiesUploadType = { - pni: true; -}; +export type CapabilitiesType = Record; +export type CapabilitiesUploadType = Record; type StickerPackManifestType = Uint8Array; @@ -2262,9 +2258,7 @@ export function initialize({ fetchesMessages: true, registrationId, pniRegistrationId, - capabilities: { - pni: true, - }, + capabilities: {}, unidentifiedAccessKey: Bytes.toBase64(accessKey), }, requireAtomic: true, @@ -2315,9 +2309,7 @@ export function initialize({ name: encryptedDeviceName, registrationId, pniRegistrationId, - capabilities: { - pni: true, - }, + capabilities: {}, }, aciSignedPreKey: serializeSignedPreKey(aciSignedPreKey), pniSignedPreKey: serializeSignedPreKey(pniSignedPreKey), diff --git a/ts/types/Storage.d.ts b/ts/types/Storage.d.ts index 840884dcdc..743a87ac17 100644 --- a/ts/types/Storage.d.ts +++ b/ts/types/Storage.d.ts @@ -124,9 +124,6 @@ export type StorageAccessType = { pinnedConversationIds: ReadonlyArray; preferContactAvatars: boolean; primarySendsSms: boolean; - // Unlike `number_id` (which also includes device id) this field is only - // updated whenever we receive a new storage manifest - accountE164: string; textFormatting: boolean; typingIndicators: boolean; sealedSenderIndicators: boolean; diff --git a/ts/util/getServiceIdsForE164s.ts b/ts/util/getServiceIdsForE164s.ts index 5ce36694e5..d5f526cf8a 100644 --- a/ts/util/getServiceIdsForE164s.ts +++ b/ts/util/getServiceIdsForE164s.ts @@ -5,7 +5,6 @@ import type { CDSResponseType } from '../textsecure/cds/Types.d'; import type { WebAPIType } from '../textsecure/WebAPI'; import type { AciString } from '../types/ServiceId'; import * as log from '../logging/log'; -import { isEnabled } from '../RemoteConfig'; import { isDirectConversation, isMe } from './whatTypeOfConversation'; export async function getServiceIdsForE164s( @@ -36,10 +35,6 @@ export async function getServiceIdsForE164s( acisAndAccessKeys.push({ aci, accessKey }); } - const returnAcisWithoutUaks = - !isEnabled('cds.disableCompatibilityMode') && - isEnabled('desktop.cdsi.returnAcisWithoutUaks'); - log.info( `getServiceIdsForE164s(${e164s}): acis=${acisAndAccessKeys.length} ` + `accessKeys=${acisAndAccessKeys.length}` @@ -47,6 +42,6 @@ export async function getServiceIdsForE164s( return server.cdsLookup({ e164s, acisAndAccessKeys, - returnAcisWithoutUaks, + returnAcisWithoutUaks: false, }); } diff --git a/ts/util/isPnpCapable.ts b/ts/util/isPnpCapable.ts deleted file mode 100644 index a73efb226d..0000000000 --- a/ts/util/isPnpCapable.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2023 Signal Messenger, LLC -// SPDX-License-Identifier: AGPL-3.0-only - -import * as log from '../logging/log'; - -export function isPnpCapable(): boolean { - const me = window.ConversationController.getOurConversation(); - if (!me) { - log.warn('isPnpCapable: missing our conversation'); - return false; - } - - // These capabilities are filled by a periodic background check for our - // account. - const capabilities = me.get('capabilities'); - if (!capabilities) { - log.warn('isPnpCapable: no cached capabilities'); - return false; - } - - // `capabilities.pni` becomes true once all linked devices and the primary - // advertise this capability. - return capabilities.pni === true; -}