Remove unused capabilities

This commit is contained in:
Fedor Indutny
2025-08-08 11:31:08 -07:00
committed by GitHub
parent bc62e05532
commit 63cac44853
13 changed files with 9 additions and 114 deletions

View File

@@ -1993,9 +1993,6 @@ export async function startApp(): Promise<void> {
try {
await server.registerCapabilities({
deleteSync: true,
versionedExpirationTimer: true,
ssre2: true,
attachmentBackfill: true,
});
} catch (error) {

View File

@@ -16,7 +16,6 @@ export default {
args: {
i18n,
isMe: false,
isDeleteSyncSendEnabled: false,
canDeleteForEveryone: true,
messageCount: 1,
onClose: action('onClose'),
@@ -30,7 +29,6 @@ function createProps(args: Partial<DeleteMessagesModalProps>) {
return {
i18n,
isMe: false,
isDeleteSyncSendEnabled: false,
canDeleteForEveryone: true,
messageCount: 1,
onClose: action('onClose'),
@@ -63,14 +61,3 @@ IsMeThreeMessages.args = createProps({
isMe: true,
messageCount: 3,
});
export const DeleteSyncEnabled = Template.bind({});
DeleteSyncEnabled.args = createProps({
isDeleteSyncSendEnabled: true,
});
export const IsMeDeleteSyncEnabled = Template.bind({});
IsMeDeleteSyncEnabled.args = createProps({
isDeleteSyncSendEnabled: true,
isMe: true,
});

View File

@@ -10,7 +10,6 @@ import { ToastType } from '../types/Toast';
export type DeleteMessagesModalProps = Readonly<{
isMe: boolean;
isDeleteSyncSendEnabled: boolean;
canDeleteForEveryone: boolean;
i18n: LocalizerType;
messageCount: number;
@@ -24,7 +23,6 @@ const MAX_DELETE_FOR_EVERYONE = 30;
export default function DeleteMessagesModal({
isMe,
isDeleteSyncSendEnabled,
canDeleteForEveryone,
i18n,
messageCount,
@@ -35,7 +33,7 @@ export default function DeleteMessagesModal({
}: DeleteMessagesModalProps): JSX.Element {
const actions: Array<ActionSpec> = [];
const syncNoteToSelfDelete = isMe && isDeleteSyncSendEnabled;
const syncNoteToSelfDelete = isMe;
let deleteForMeText = i18n('icu:DeleteMessagesModal--deleteForMe');
if (syncNoteToSelfDelete) {

View File

@@ -46,7 +46,6 @@ const commonProps: PropsType = {
i18n,
localDeleteWarningShown: true,
isDeleteSyncSendEnabled: true,
setLocalDeleteWarningShown: action('setLocalDeleteWarningShown'),
onConversationAccept: action('onConversationAccept'),
@@ -414,20 +413,6 @@ export function NeedsDeleteConfirmation(): JSX.Element {
return <ConversationHeader {...props} theme={theme} />;
}
export function NeedsDeleteConfirmationButNotEnabled(): JSX.Element {
const [localDeleteWarningShown, setLocalDeleteWarningShown] =
React.useState(false);
const props = {
...commonProps,
localDeleteWarningShown,
isDeleteSyncSendEnabled: false,
setLocalDeleteWarningShown: () => setLocalDeleteWarningShown(true),
};
const theme = useContext(StorybookThemeContext);
return <ConversationHeader {...props} theme={theme} />;
}
export function DirectConversationInAnotherCall(): JSX.Element {
const props = {
...commonProps,

View File

@@ -107,7 +107,6 @@ export type PropsDataType = {
hasStories?: HasStories;
hasActiveCall?: boolean;
localDeleteWarningShown: boolean;
isDeleteSyncSendEnabled: boolean;
isMissingMandatoryProfileSharing?: boolean;
isSelectMode: boolean;
isSignalConversation?: boolean;
@@ -166,7 +165,6 @@ export const ConversationHeader = memo(function ConversationHeader({
hasPanelShowing,
hasStories,
i18n,
isDeleteSyncSendEnabled,
isMissingMandatoryProfileSharing,
isSelectMode,
isSignalConversation,
@@ -245,7 +243,6 @@ export const ConversationHeader = memo(function ConversationHeader({
{hasDeleteMessagesConfirmation && (
<DeleteMessagesConfirmationDialog
i18n={i18n}
isDeleteSyncSendEnabled={isDeleteSyncSendEnabled}
localDeleteWarningShown={localDeleteWarningShown}
onDestroyMessages={() => {
setHasDeleteMessagesConfirmation(false);
@@ -1008,21 +1005,19 @@ function CannotLeaveGroupBecauseYouAreLastAdminAlert({
}
function DeleteMessagesConfirmationDialog({
isDeleteSyncSendEnabled,
i18n,
localDeleteWarningShown,
onDestroyMessages,
onClose,
setLocalDeleteWarningShown,
}: {
isDeleteSyncSendEnabled: boolean;
i18n: LocalizerType;
localDeleteWarningShown: boolean;
onDestroyMessages: () => void;
onClose: () => void;
setLocalDeleteWarningShown: () => void;
}) {
if (!localDeleteWarningShown && isDeleteSyncSendEnabled) {
if (!localDeleteWarningShown) {
return (
<LocalDeleteWarningModal
i18n={i18n}
@@ -1031,13 +1026,9 @@ function DeleteMessagesConfirmationDialog({
);
}
const dialogBody = isDeleteSyncSendEnabled
? i18n(
'icu:ConversationHeader__DeleteConversationConfirmation__description-with-sync'
)
: i18n(
'icu:ConversationHeader__DeleteConversationConfirmation__description'
);
const dialogBody = i18n(
'icu:ConversationHeader__DeleteConversationConfirmation__description-with-sync'
);
return (
<ConfirmationDialog

View File

@@ -5284,10 +5284,7 @@ export class ConversationModel extends window.Backbone
});
await DataWriter.updateConversation(this.attributes);
const ourConversation =
window.ConversationController.getOurConversationOrThrow();
const capable = Boolean(ourConversation.get('capabilities')?.deleteSync);
if (source === 'local-delete' && capable) {
if (source === 'local-delete') {
log.info(`${logId}: Preparing sync message`);
const timestamp = Date.now();

View File

@@ -71,8 +71,6 @@ type JobType = {
// - Don't even attempt jobs when offline
const OBSERVED_CAPABILITY_KEYS = Object.keys({
deleteSync: true,
ssre2: true,
attachmentBackfill: true,
} satisfies CapabilitiesType) as ReadonlyArray<keyof CapabilitiesType>;

View File

@@ -1841,13 +1841,6 @@ function deleteMessages({
dispatch(scrollToMessage(conversationId, nearbyMessageId));
}
const ourConversation =
window.ConversationController.getOurConversationOrThrow();
const capable = Boolean(ourConversation.get('capabilities')?.deleteSync);
if (!capable) {
return;
}
if (messages.length === 0) {
return;
}

View File

@@ -1,34 +0,0 @@
// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
import { getUserACI } from './user';
import { getConversationSelector } from './conversations';
import type { AciString } from '../../types/ServiceId';
import type { GetConversationByIdType } from './conversations';
export const getDeleteSyncSendEnabled = createSelector(
getUserACI,
getConversationSelector,
(
aci: AciString | undefined,
conversationSelector: GetConversationByIdType
): boolean => {
if (!aci) {
return false;
}
const ourConversation = conversationSelector(aci);
if (!ourConversation) {
return false;
}
const { capabilities } = ourConversation;
if (!capabilities || !capabilities.deleteSync) {
return false;
}
return true;
}
);

View File

@@ -42,7 +42,6 @@ import { getHasStoriesSelector } from '../selectors/stories2';
import { getIntl, getTheme, getUserACI } from '../selectors/user';
import { useItemsActions } from '../ducks/items';
import { getLocalDeleteWarningShown } from '../selectors/items';
import { getDeleteSyncSendEnabled } from '../selectors/items-extra';
import { isConversationEverUnregistered } from '../../util/isConversationUnregistered';
import { isDirectConversation } from '../../util/whatTypeOfConversation';
import type { DurationInSeconds } from '../../util/durations';
@@ -154,7 +153,6 @@ export const SmartConversationHeader = memo(function SmartConversationHeader({
const conversationName = useContactNameData(conversation);
strictAssert(conversationName, 'conversationName is required');
const isDeleteSyncSendEnabled = useSelector(getDeleteSyncSendEnabled);
const isMissingMandatoryProfileSharing =
getIsMissingRequiredProfileSharing(conversation);
@@ -274,7 +272,6 @@ export const SmartConversationHeader = memo(function SmartConversationHeader({
hasStories={hasStories}
i18n={i18n}
localDeleteWarningShown={localDeleteWarningShown}
isDeleteSyncSendEnabled={isDeleteSyncSendEnabled}
isMissingMandatoryProfileSharing={isMissingMandatoryProfileSharing}
isSelectMode={isSelectMode}
isSignalConversation={isSignalConversation(conversation)}

View File

@@ -18,7 +18,6 @@ import {
import { getDeleteMessagesProps } from '../selectors/globalModals';
import { useItemsActions } from '../ducks/items';
import { getLocalDeleteWarningShown } from '../selectors/items';
import { getDeleteSyncSendEnabled } from '../selectors/items-extra';
import { LocalDeleteWarningModal } from '../../components/LocalDeleteWarningModal';
export const SmartDeleteMessagesModal = memo(
@@ -40,7 +39,6 @@ export const SmartDeleteMessagesModal = memo(
[messageIds, isMe]
);
const canDeleteForEveryone = useSelector(getCanDeleteForEveryone);
const isDeleteSyncSendEnabled = useSelector(getDeleteSyncSendEnabled);
const lastSelectedMessage = useSelector(getLastSelectedMessage);
const i18n = useSelector(getIntl);
const { toggleDeleteMessagesModal } = useGlobalModalActions();
@@ -76,7 +74,7 @@ export const SmartDeleteMessagesModal = memo(
const localDeleteWarningShown = useSelector(getLocalDeleteWarningShown);
const { putItem } = useItemsActions();
if (!localDeleteWarningShown && isDeleteSyncSendEnabled) {
if (!localDeleteWarningShown) {
return (
<LocalDeleteWarningModal
i18n={i18n}
@@ -92,7 +90,6 @@ export const SmartDeleteMessagesModal = memo(
isMe={isMe}
canDeleteForEveryone={canDeleteForEveryone}
i18n={i18n}
isDeleteSyncSendEnabled={isDeleteSyncSendEnabled}
messageCount={messageCount}
onClose={handleClose}
onDeleteForMe={handleDeleteForMe}

View File

@@ -849,14 +849,9 @@ export type WebAPIConnectType = {
// When updating this make sure to update `observedCapabilities` type in
// ts/types/Storage.d.ts
export type CapabilitiesType = {
deleteSync: boolean;
ssre2: boolean;
attachmentBackfill: boolean;
};
export type CapabilitiesUploadType = {
deleteSync: true;
versionedExpirationTimer: true;
ssre2: true;
attachmentBackfill: true;
};
@@ -3206,9 +3201,6 @@ export function initialize({
}
const capabilities: CapabilitiesUploadType = {
deleteSync: true,
versionedExpirationTimer: true,
ssre2: true,
attachmentBackfill: true,
};
@@ -3273,9 +3265,6 @@ export function initialize({
pniPqLastResortPreKey,
}: LinkDeviceOptionsType) {
const capabilities: CapabilitiesUploadType = {
deleteSync: true,
versionedExpirationTimer: true,
ssre2: true,
attachmentBackfill: true,
};

View File

@@ -200,12 +200,12 @@ export type StorageAccessType = {
needProfileMovedModal: boolean;
notificationProfileOverride: NotificationProfileOverride | undefined;
observedCapabilities: {
deleteSync?: true;
ssre2?: true;
attachmentBackfill?: true;
// Note: Upon capability deprecation - change the value type to `never` and
// remove it in `ts/background.ts`
deleteSync?: never;
ssre2?: never;
};
releaseNotesNextFetchTime: number;
releaseNotesVersionWatermark: string;