From fc04ad26ce19897ae24ec9a2bee1e510e2d7a6a5 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Fri, 25 Jul 2025 10:43:40 +0100 Subject: [PATCH] Support `EventShieldReason.MISMATCHED_SENDER` (#30403) The js-sdk now exposes a new event shield reason, which we should handle correctly. --- src/components/views/rooms/EventTile.tsx | 4 ++++ src/i18n/strings/en_EN.json | 1 + test/unit-tests/components/views/rooms/EventTile-test.tsx | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/src/components/views/rooms/EventTile.tsx b/src/components/views/rooms/EventTile.tsx index 5ab3efa96f..accf22873d 100644 --- a/src/components/views/rooms/EventTile.tsx +++ b/src/components/views/rooms/EventTile.tsx @@ -757,6 +757,10 @@ export class UnwrappedEventTile extends React.Component shieldReasonMessage = _t("timeline|decryption_failure|sender_identity_previously_verified"); break; + case EventShieldReason.MISMATCHED_SENDER: + shieldReasonMessage = _t("encryption|event_shield_reason_mismatched_sender"); + break; + default: shieldReasonMessage = _t("error|unknown"); break; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index f964a95ed5..30845f47ba 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -934,6 +934,7 @@ "cross_signing_user_warning": "This user has not verified all of their sessions.", "enter_recovery_key": "Enter recovery key", "event_shield_reason_authenticity_not_guaranteed": "The authenticity of this encrypted message can't be guaranteed on this device.", + "event_shield_reason_mismatched_sender": "The sender of the event does not match the owner of the device that sent it.", "event_shield_reason_mismatched_sender_key": "Encrypted by an unverified session", "event_shield_reason_unknown_device": "Encrypted by an unknown or deleted device.", "event_shield_reason_unsigned_device": "Encrypted by a device not verified by its owner.", diff --git a/test/unit-tests/components/views/rooms/EventTile-test.tsx b/test/unit-tests/components/views/rooms/EventTile-test.tsx index b04633925a..dee79cc8d1 100644 --- a/test/unit-tests/components/views/rooms/EventTile-test.tsx +++ b/test/unit-tests/components/views/rooms/EventTile-test.tsx @@ -306,6 +306,10 @@ describe("EventTile", () => { [EventShieldReason.MISMATCHED_SENDER_KEY, "Encrypted by an unverified session"], [EventShieldReason.SENT_IN_CLEAR, "Not encrypted"], [EventShieldReason.VERIFICATION_VIOLATION, "Sender's verified identity was reset"], + [ + EventShieldReason.MISMATCHED_SENDER, + "The sender of the event does not match the owner of the device that sent it.", + ], ])("shows the correct reason code for %i (%s)", async (reasonCode: EventShieldReason, expectedText: string) => { mxEvent = await mkEncryptedMatrixEvent({ plainContent: { msgtype: "m.text", body: "msg1" },