Remove unused service ID strings

This commit is contained in:
Max Radermacher 2026-03-24 16:11:09 -05:00 committed by GitHub
parent a305029f9a
commit d67841bcf0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 26 additions and 160 deletions

View File

@ -26,12 +26,7 @@ final class ContactOutputStream {
contactBuilder.setContactE164(phoneNumber.stringValue)
}
if let aci {
if BuildFlags.serviceIdStrings {
contactBuilder.setAci(aci.serviceIdString)
}
if BuildFlags.serviceIdBinaryVariableOverhead {
contactBuilder.setAciBinary(aci.serviceIdBinary)
}
contactBuilder.setAciBinary(aci.serviceIdBinary)
}
// TODO: this should be removed after a 90-day timer from when Desktop stops

View File

@ -153,18 +153,8 @@ public struct LinkingProvisioningMessage {
messageBuilder.setReadReceipts(areReadReceiptsEnabled)
messageBuilder.setProvisioningVersion(Constants.provisioningVersion)
messageBuilder.setNumber(phoneNumber)
if BuildFlags.serviceIdStrings {
messageBuilder.setAci(aci.rawUUID.uuidString.lowercased())
}
if BuildFlags.serviceIdBinaryProvisioning {
messageBuilder.setAciBinary(aci.rawUUID.data)
}
if BuildFlags.serviceIdStrings {
messageBuilder.setPni(pni.rawUUID.uuidString.lowercased())
}
if BuildFlags.serviceIdBinaryProvisioning {
messageBuilder.setPniBinary(pni.rawUUID.data)
}
messageBuilder.setAciBinary(aci.rawUUID.data)
messageBuilder.setPniBinary(pni.rawUUID.data)
switch rootKey {
case .accountEntropyPool(let accountEntropyPool):

View File

@ -64,12 +64,7 @@ final class OutgoingBlockedSyncMessage: OutgoingSyncMessage {
override func syncMessageBuilder(tx: DBReadTransaction) -> SSKProtoSyncMessageBuilder? {
let blockedBuilder = SSKProtoSyncMessageBlocked.builder()
blockedBuilder.setNumbers(self.phoneNumbers)
if BuildFlags.serviceIdStrings {
blockedBuilder.setAcis(self.acis.map(\.serviceIdString))
}
if BuildFlags.serviceIdBinaryVariableOverhead {
blockedBuilder.setAcisBinary(self.acis.map(\.serviceIdBinary))
}
blockedBuilder.setAcisBinary(self.acis.map(\.serviceIdBinary))
blockedBuilder.setGroupIds(self.groupIds)
let blockedProto = blockedBuilder.buildInfallibly()

View File

@ -55,12 +55,7 @@ final class OutgoingReadReceiptsSyncMessage: OutgoingSyncMessage {
let readProtoBuilder = SSKProtoSyncMessageRead.builder(timestamp: readReceipt.messageIdTimestamp)
if let aci = readReceipt.senderAddress.serviceId as? Aci {
if BuildFlags.serviceIdStrings {
readProtoBuilder.setSenderAci(aci.serviceIdString)
}
if BuildFlags.serviceIdBinaryVariableOverhead {
readProtoBuilder.setSenderAciBinary(aci.serviceIdBinary)
}
readProtoBuilder.setSenderAciBinary(aci.serviceIdBinary)
} else {
owsFailDebug("can't send read receipt for message without an ACI")
}

View File

@ -87,12 +87,7 @@ final class OutgoingViewOnceOpenSyncMessage: OutgoingSyncMessage {
let readProtoBuilder = SSKProtoSyncMessageViewOnceOpen.builder(timestamp: self.messageIdTimestamp)
if let senderAci = self.senderAddress.serviceId as? Aci {
if BuildFlags.serviceIdStrings {
readProtoBuilder.setSenderAci(senderAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
readProtoBuilder.setSenderAciBinary(senderAci.serviceIdBinary)
}
readProtoBuilder.setSenderAciBinary(senderAci.serviceIdBinary)
} else {
owsFailDebug("can't send view once open sync for message without an ACI")
}

View File

@ -57,12 +57,7 @@ final class OutgoingViewedReceiptsSyncMessage: OutgoingSyncMessage {
let viewedProtoBuilder = SSKProtoSyncMessageViewed.builder(timestamp: viewedReceipt.messageIdTimestamp)
if let aci = viewedReceipt.senderAddress.serviceId as? Aci {
if BuildFlags.serviceIdStrings {
viewedProtoBuilder.setSenderAci(aci.serviceIdString)
}
if BuildFlags.serviceIdBinaryVariableOverhead {
viewedProtoBuilder.setSenderAciBinary(aci.serviceIdBinary)
}
viewedProtoBuilder.setSenderAciBinary(aci.serviceIdBinary)
} else {
owsFailDebug("can't send viewed receipt for message without an ACI")
}

View File

@ -69,13 +69,6 @@ public enum BuildFlags {
// that's now dead because this is false.
public static let migrateDeprecatedSessions = true
public static let serviceIdBinaryProvisioning = true
public static let serviceIdBinaryConstantOverhead = !serviceIdStrings || (build <= .internal)
public static let serviceIdBinaryVariableOverhead = !serviceIdStrings || (build <= .dev)
public static let serviceIdBinaryOneOf = !serviceIdStrings
public static let serviceIdStrings = false
public enum MemberLabel {
public static let display = true
public static let send = true

View File

@ -72,12 +72,7 @@ struct AddressableMessage {
let protoBuilder = SSKProtoAddressableMessage.builder()
protoBuilder.setSentTimestamp(sentTimestamp)
switch author {
case .aci(let aci):
if BuildFlags.serviceIdBinaryOneOf {
protoBuilder.setAuthorServiceIDBinary(aci.serviceIdBinary)
} else {
protoBuilder.setAuthorServiceID(aci.serviceIdString)
}
case .aci(let aci): protoBuilder.setAuthorServiceIDBinary(aci.serviceIdBinary)
case .e164(let e164): protoBuilder.setAuthorE164(e164.stringValue)
}
return protoBuilder.buildInfallibly()
@ -114,12 +109,7 @@ enum ConversationIdentifier {
var asProto: SSKProtoConversationIdentifier {
let protoBuilder = SSKProtoConversationIdentifier.builder()
switch self {
case .serviceId(let serviceId):
if BuildFlags.serviceIdBinaryOneOf {
protoBuilder.setThreadServiceIDBinary(serviceId.serviceIdBinary)
} else {
protoBuilder.setThreadServiceID(serviceId.serviceIdString)
}
case .serviceId(let serviceId): protoBuilder.setThreadServiceIDBinary(serviceId.serviceIdBinary)
case .e164(let e164): protoBuilder.setThreadE164(e164.stringValue)
case .groupIdentifier(let groupIdentifier): protoBuilder.setThreadGroupID(groupIdentifier.serialize())
}

View File

@ -421,11 +421,7 @@ public final class MessageBodyRanges: NSObject, NSCopying, NSSecureCoding {
guard let builder = self.protoBuilder(mention.range, maxBodyLength: maxBodyLength) else {
return
}
if BuildFlags.serviceIdBinaryOneOf {
builder.setMentionAciBinary(mention.value.serviceIdBinary)
} else {
builder.setMentionAci(mention.value.serviceIdString)
}
builder.setMentionAciBinary(mention.value.serviceIdBinary)
protos.append(builder.buildInfallibly())
}

View File

@ -155,11 +155,7 @@ extension DeleteForMeSyncMessage.Outgoing {
let protoBuilder = SSKProtoConversationIdentifier.builder()
switch self {
case .threadServiceId(let serviceId):
if BuildFlags.serviceIdBinaryOneOf {
protoBuilder.setThreadServiceIDBinary(serviceId.wrappedValue.serviceIdBinary)
} else {
protoBuilder.setThreadServiceID(serviceId.wrappedValue.serviceIdString)
}
protoBuilder.setThreadServiceIDBinary(serviceId.wrappedValue.serviceIdBinary)
case .threadE164(let e164): protoBuilder.setThreadE164(e164)
case .threadGroupId(let groupId): protoBuilder.setThreadGroupID(groupId)
}
@ -191,11 +187,7 @@ extension DeleteForMeSyncMessage.Outgoing {
protoBuilder.setSentTimestamp(sentTimestamp)
switch author {
case .aci(let aci):
if BuildFlags.serviceIdBinaryOneOf {
protoBuilder.setAuthorServiceIDBinary(aci.wrappedValue.serviceIdBinary)
} else {
protoBuilder.setAuthorServiceID(aci.wrappedValue.serviceIdString)
}
protoBuilder.setAuthorServiceIDBinary(aci.wrappedValue.serviceIdBinary)
case .e164(let e164): protoBuilder.setAuthorE164(e164)
}
return protoBuilder.buildInfallibly()

View File

@ -125,12 +125,7 @@ public final class OutgoingMessageRequestResponseSyncMessage: OutgoingSyncMessag
if let groupId {
messageRequestResponseBuilder.setGroupID(groupId)
} else if let threadAci {
if BuildFlags.serviceIdStrings {
messageRequestResponseBuilder.setThreadAci(threadAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
messageRequestResponseBuilder.setThreadAciBinary(threadAci.serviceIdBinary)
}
messageRequestResponseBuilder.setThreadAciBinary(threadAci.serviceIdBinary)
} else if self.version < 2 {
// Fallback behavior. Messages of this version are no longer created.
// Eventually, all enqueued messages of this type should be resolved
@ -146,12 +141,7 @@ public final class OutgoingMessageRequestResponseSyncMessage: OutgoingSyncMessag
messageRequestResponseBuilder.setGroupID(thread.groupModel.groupId)
case let thread as TSContactThread:
if let threadAci = thread.contactAddress.serviceId as? Aci {
if BuildFlags.serviceIdStrings {
messageRequestResponseBuilder.setThreadAci(threadAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
messageRequestResponseBuilder.setThreadAciBinary(threadAci.serviceIdBinary)
}
messageRequestResponseBuilder.setThreadAciBinary(threadAci.serviceIdBinary)
}
default:
owsFailDebug("Thread is invalid type for message request response")

View File

@ -71,12 +71,7 @@ class OutgoingSentMessageTranscript: OutgoingSyncMessage {
sentBuilder.setDestinationE164(phoneNumber)
}
if let serviceId = self.sentRecipientAddress?.serviceId {
if BuildFlags.serviceIdStrings {
sentBuilder.setDestinationServiceID(serviceId.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
sentBuilder.setDestinationServiceIDBinary(serviceId.serviceIdBinary)
}
sentBuilder.setDestinationServiceIDBinary(serviceId.serviceIdBinary)
}
sentBuilder.setIsRecipientUpdate(self.isRecipientUpdate)
@ -172,12 +167,7 @@ class OutgoingSentMessageTranscript: OutgoingSyncMessage {
}
let statusBuilder = SSKProtoSyncMessageSentUnidentifiedDeliveryStatus.builder()
if BuildFlags.serviceIdStrings {
statusBuilder.setDestinationServiceID(recipientServiceId.serviceIdString)
}
if BuildFlags.serviceIdBinaryVariableOverhead {
statusBuilder.setDestinationServiceIDBinary(recipientServiceId.serviceIdBinary)
}
statusBuilder.setDestinationServiceIDBinary(recipientServiceId.serviceIdBinary)
statusBuilder.setUnidentified(recipientState.wasSentByUD)
sentBuilder.addUnidentifiedStatus(statusBuilder.buildInfallibly())

View File

@ -868,12 +868,7 @@ class QuotedReplyManagerImpl: QuotedReplyManager {
guard let authorAci = quote.authorAddress.aci else {
throw OWSAssertionError("It should be impossible to quote a message without a UUID")
}
if BuildFlags.serviceIdStrings {
quoteBuilder.setAuthorAci(authorAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
quoteBuilder.setAuthorAciBinary(authorAci.serviceIdBinary)
}
quoteBuilder.setAuthorAciBinary(authorAci.serviceIdBinary)
var hasQuotedText = false
var hasQuotedAttachment = false

View File

@ -389,12 +389,7 @@ extension TSOutgoingMessage {
if let storyTimestamp, let storyAuthorAci {
if let storyReactionEmoji {
let reactionBuilder = SSKProtoDataMessageReaction.builder(emoji: storyReactionEmoji, timestamp: storyTimestamp.uint64Value)
if BuildFlags.serviceIdStrings {
reactionBuilder.setTargetAuthorAci(storyAuthorAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
reactionBuilder.setTargetAuthorAciBinary(storyAuthorAci.serviceIdBinary)
}
reactionBuilder.setTargetAuthorAciBinary(storyAuthorAci.serviceIdBinary)
do {
builder.setReaction(try reactionBuilder.build())
@ -405,12 +400,7 @@ extension TSOutgoingMessage {
}
let storyContextBuilder = SSKProtoDataMessageStoryContext.builder()
if BuildFlags.serviceIdStrings {
storyContextBuilder.setAuthorAci(storyAuthorAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
storyContextBuilder.setAuthorAciBinary(storyAuthorAci.serviceIdBinary)
}
storyContextBuilder.setAuthorAciBinary(storyAuthorAci.serviceIdBinary)
storyContextBuilder.setSentTimestamp(storyTimestamp.uint64Value)
builder.setStoryContext(storyContextBuilder.buildInfallibly())

View File

@ -142,12 +142,7 @@ final class OutgoingReactionMessage: TransientOutgoingMessage {
owsFailDebug("Missing author for reaction.")
return nil
}
if BuildFlags.serviceIdStrings {
reactionBuilder.setTargetAuthorAci(messageAuthor.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
reactionBuilder.setTargetAuthorAciBinary(messageAuthor.serviceIdBinary)
}
reactionBuilder.setTargetAuthorAciBinary(messageAuthor.serviceIdBinary)
do {
return try reactionBuilder.build()

View File

@ -132,12 +132,7 @@ public class OutgoingStorySentMessageTranscript: OutgoingSyncMessage {
private func applyRecipientStates(_ recipientStates: [ServiceId: StoryRecipientState], sentBuilder: SSKProtoSyncMessageSentBuilder) {
for (serviceId, state) in recipientStates {
let builder = SSKProtoSyncMessageSentStoryMessageRecipient.builder()
if BuildFlags.serviceIdStrings {
builder.setDestinationServiceID(serviceId.serviceIdString)
}
if BuildFlags.serviceIdBinaryVariableOverhead {
builder.setDestinationServiceIDBinary(serviceId.serviceIdBinary)
}
builder.setDestinationServiceIDBinary(serviceId.serviceIdBinary)
builder.setDistributionListIds(state.contexts.map { $0.uuidString })
builder.setIsAllowedToReply(state.allowsReplies)
sentBuilder.addStoryMessageRecipients(builder.buildInfallibly())

View File

@ -253,12 +253,7 @@ public final class OWSRecipientIdentity: NSObject, SDSCodableModel, Decodable {
owsAssertDebug(verificationState != .noLongerVerified)
let verifiedBuilder = SSKProtoVerified.builder()
if BuildFlags.serviceIdStrings {
verifiedBuilder.setDestinationAci(destinationAci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
verifiedBuilder.setDestinationAciBinary(destinationAci.serviceIdBinary)
}
verifiedBuilder.setDestinationAciBinary(destinationAci.serviceIdBinary)
verifiedBuilder.setIdentityKey(identityKey)
verifiedBuilder.setState(verificationState.protoState)
if paddingBytesLength > 0 {

View File

@ -269,24 +269,14 @@ class StorageServiceContactRecordUpdater: StorageServiceRecordUpdater {
var usernameBetterIdentifierChecker = Usernames.BetterIdentifierChecker(forRecipient: recipient)
if let aci = contact.aci {
if BuildFlags.serviceIdStrings {
builder.setAci(aci.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
builder.setAciBinary(aci.serviceIdBinary)
}
builder.setAciBinary(aci.serviceIdBinary)
}
if let phoneNumber = contact.phoneNumber {
builder.setE164(phoneNumber.stringValue)
usernameBetterIdentifierChecker.add(e164: phoneNumber.stringValue)
}
if let pni = contact.pni {
if BuildFlags.serviceIdStrings {
builder.setPni(pni.rawUUID.uuidString.lowercased())
}
if BuildFlags.serviceIdBinaryConstantOverhead {
builder.setPniBinary(pni.rawUUID.data)
}
builder.setPniBinary(pni.rawUUID.data)
}
if let unregisteredAtTimestamp = contact.unregisteredAtTimestamp {
@ -1957,12 +1947,7 @@ extension StorageServiceAccountRecordUpdater {
} else if let contactThread = pinnedThread as? TSContactThread {
var contactBuilder = StorageServiceProtoAccountRecordPinnedConversationContact.builder()
if let serviceId = contactThread.contactAddress.serviceId {
if BuildFlags.serviceIdStrings {
contactBuilder.setServiceID(serviceId.serviceIdString)
}
if BuildFlags.serviceIdBinaryConstantOverhead {
contactBuilder.setServiceIDBinary(serviceId.serviceIdBinary)
}
contactBuilder.setServiceIDBinary(serviceId.serviceIdBinary)
} else if let e164 = contactThread.contactAddress.phoneNumber {
contactBuilder.setE164(e164)
} else {
@ -2042,12 +2027,7 @@ class StorageServiceStoryDistributionListRecordUpdater: StorageServiceRecordUpda
builder.setName(story.name)
let recipients = (try? storyRecipientManager.fetchRecipients(forStoryThread: story, tx: transaction)) ?? []
let serviceIds = recipients.compactMap { $0.aci ?? $0.pni }
if BuildFlags.serviceIdStrings {
builder.setRecipientServiceIds(serviceIds.map(\.serviceIdString))
}
if BuildFlags.serviceIdBinaryVariableOverhead {
builder.setRecipientServiceIdsBinary(serviceIds.map(\.serviceIdBinary))
}
builder.setRecipientServiceIdsBinary(serviceIds.map(\.serviceIdBinary))
builder.setAllowsReplies(story.allowsReplies)
builder.setIsBlockList(story.storyViewMode == .blockList)
} else {