From 1d268da50bb6946adc446e2bd2f9b6d0b8f28a91 Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg <scott@signal.org> Date: Mon, 21 Mar 2022 16:17:55 -0700 Subject: [PATCH] Drop stories and their replies if feature flag is disabled --- ts/textsecure/MessageReceiver.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/ts/textsecure/MessageReceiver.ts b/ts/textsecure/MessageReceiver.ts index e1dfa880df..12794d9ea1 100644 --- a/ts/textsecure/MessageReceiver.ts +++ b/ts/textsecure/MessageReceiver.ts @@ -54,6 +54,7 @@ import { QualifiedAddress } from '../types/QualifiedAddress'; import type { UUIDStringType } from '../types/UUID'; import { UUID, UUIDKind } from '../types/UUID'; import * as Errors from '../types/errors'; +import { isEnabled } from '../RemoteConfig'; import { SignalService as Proto } from '../protobuf'; import type { UnprocessedType } from '../textsecure.d'; @@ -1859,6 +1860,16 @@ export default class MessageReceiver const logId = this.getEnvelopeId(envelope); log.info('MessageReceiver.handleDataMessage', logId); + const isStoriesEnabled = + isEnabled('desktop.stories') && isEnabled('desktop.internalUser'); + if (!isStoriesEnabled && msg.storyContext) { + log.info( + `MessageReceiver.handleDataMessage/${logId}: Dropping incoming dataMessage with storyContext field` + ); + this.removeFromCache(envelope); + return undefined; + } + let p: Promise<void> = Promise.resolve(); // eslint-disable-next-line no-bitwise const destination = envelope.sourceUuid; @@ -2049,8 +2060,20 @@ export default class MessageReceiver await this.handleTypingMessage(envelope, content.typingMessage); return; } + + const isStoriesEnabled = + isEnabled('desktop.stories') && isEnabled('desktop.internalUser'); if (content.storyMessage) { - await this.handleStoryMessage(envelope, content.storyMessage); + if (isStoriesEnabled) { + await this.handleStoryMessage(envelope, content.storyMessage); + return; + } + + const logId = this.getEnvelopeId(envelope); + log.info( + `innerHandleContentMessage/${logId}: Dropping incoming message with storyMessage field` + ); + this.removeFromCache(envelope); return; }