From 5057668705bc672b4abfe84e0bac235a0029599c Mon Sep 17 00:00:00 2001
From: Timo <16718859+toger5@users.noreply.github.com>
Date: Wed, 6 Nov 2024 21:15:19 +0100
Subject: [PATCH 1/7] Auto approvoce `io.element.call.reaction` capability for
 element call widgets (#28401)

---
 src/stores/widgets/StopGapWidgetDriver.ts | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/stores/widgets/StopGapWidgetDriver.ts b/src/stores/widgets/StopGapWidgetDriver.ts
index 07fca154e8..09553b40ce 100644
--- a/src/stores/widgets/StopGapWidgetDriver.ts
+++ b/src/stores/widgets/StopGapWidgetDriver.ts
@@ -127,12 +127,6 @@ export class StopGapWidgetDriver extends WidgetDriver {
             this.allowedCapabilities.add(MatrixCapabilities.MSC4157SendDelayedEvent);
             this.allowedCapabilities.add(MatrixCapabilities.MSC4157UpdateDelayedEvent);
 
-            this.allowedCapabilities.add(
-                WidgetEventCapability.forRoomEvent(EventDirection.Send, "org.matrix.rageshake_request").raw,
-            );
-            this.allowedCapabilities.add(
-                WidgetEventCapability.forRoomEvent(EventDirection.Receive, "org.matrix.rageshake_request").raw,
-            );
             this.allowedCapabilities.add(
                 WidgetEventCapability.forStateEvent(EventDirection.Receive, EventType.RoomMember).raw,
             );
@@ -175,7 +169,13 @@ export class StopGapWidgetDriver extends WidgetDriver {
                 WidgetEventCapability.forStateEvent(EventDirection.Receive, EventType.RoomCreate).raw,
             );
 
-            const sendRecvRoomEvents = ["io.element.call.encryption_keys", EventType.Reaction, EventType.RoomRedaction];
+            const sendRecvRoomEvents = [
+                "io.element.call.encryption_keys",
+                "org.matrix.rageshake_request",
+                EventType.Reaction,
+                EventType.RoomRedaction,
+                "io.element.call.reaction",
+            ];
             for (const eventType of sendRecvRoomEvents) {
                 this.allowedCapabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Send, eventType).raw);
                 this.allowedCapabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Receive, eventType).raw);

From b92101a3da886b2304b97a9f53d4298f138a3437 Mon Sep 17 00:00:00 2001
From: ElementRobot <releases@riot.im>
Date: Thu, 7 Nov 2024 09:34:13 +0000
Subject: [PATCH 2/7] [create-pull-request] automated change (#28403)

Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
---
 playwright/plugins/homeserver/synapse/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/playwright/plugins/homeserver/synapse/index.ts b/playwright/plugins/homeserver/synapse/index.ts
index 6434e70f48..6dfd4b5ef5 100644
--- a/playwright/plugins/homeserver/synapse/index.ts
+++ b/playwright/plugins/homeserver/synapse/index.ts
@@ -20,7 +20,7 @@ import { randB64Bytes } from "../../utils/rand";
 // Docker tag to use for synapse docker image.
 // We target a specific digest as every now and then a Synapse update will break our CI.
 // This digest is updated by the playwright-image-updates.yaml workflow periodically.
-const DOCKER_TAG = "develop@sha256:6c33604ee62f009f3b34454a3c3e85f7e3ff5de63e45011fcd79e0ddc54a4e51";
+const DOCKER_TAG = "develop@sha256:5bae9c459793f800db51bf8ec5e606ae49f7497f081cdbf83ee637885f9f8f7e";
 
 async function cfgDirFromTemplate(opts: StartHomeserverOpts): Promise<Omit<HomeserverConfig, "dockerUrl">> {
     const templateDir = path.join(__dirname, "templates", opts.template);

From 74a919cb65e5d83b4007e6b012a8f68e7b3fb498 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 7 Nov 2024 11:39:18 +0000
Subject: [PATCH 3/7] Deduplicate icons using Compound Design Tokens (#28381)

* Deduplicate icons using Compound Design Tokens

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove unused test images

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshots & screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
 .../forgot-password-verify-email-linux.png    | Bin 22161 -> 22130 bytes
 res/css/structures/_RoomStatusBar.pcss        |   2 +-
 res/css/structures/_SpaceHierarchy.pcss       |   2 +-
 .../context_menus/_MessageContextMenu.pcss    |   4 +-
 .../dialogs/_AddExistingToSpaceDialog.pcss    |   2 +-
 .../security/_AccessSecretStorageDialog.pcss  |   4 +-
 res/css/views/elements/_InfoTooltip.pcss      |   2 +-
 res/css/views/messages/_MessageActionBar.pcss |   4 ++
 res/css/views/rooms/_EntityTile.pcss          |   3 +-
 res/css/views/rooms/_ThreadSummary.pcss       |   8 ++--
 res/img/compound/chevron-right-12px.svg       |  10 -----
 res/img/compound/retry-16px.svg               |   3 --
 res/img/element-icons/retry.svg               |   7 ----
 res/img/element-icons/warning-badge.svg       |  32 --------------
 res/img/element-icons/warning.svg             |   3 --
 res/img/member_chevron.png                    | Bin 271 -> 0 bytes
 .../auth/forgot-password/CheckEmail.tsx       |   4 +-
 .../auth/forgot-password/VerifyEmailModal.tsx |   4 +-
 .../dialogs/AddExistingToSpaceDialog.tsx      |   4 +-
 .../views/dialogs/ModalWidgetDialog.tsx       |   4 +-
 src/components/views/location/MapError.tsx    |   4 +-
 .../views/messages/MessageActionBar.tsx       |   6 +--
 .../__snapshots__/MapError-test.tsx.snap      |  39 +++++++++++++++---
 .../__snapshots__/MBeaconBody-test.tsx.snap   |  13 +++++-
 test/unit-tests/img/edit.png                  | Bin 460 -> 0 bytes
 test/unit-tests/img/icon_context_message.svg  |  15 -------
 26 files changed, 75 insertions(+), 104 deletions(-)
 delete mode 100644 res/img/compound/chevron-right-12px.svg
 delete mode 100644 res/img/compound/retry-16px.svg
 delete mode 100644 res/img/element-icons/retry.svg
 delete mode 100644 res/img/element-icons/warning-badge.svg
 delete mode 100644 res/img/element-icons/warning.svg
 delete mode 100644 res/img/member_chevron.png
 delete mode 100644 test/unit-tests/img/edit.png
 delete mode 100644 test/unit-tests/img/icon_context_message.svg

diff --git a/playwright/snapshots/forgot-password/forgot-password.spec.ts/forgot-password-verify-email-linux.png b/playwright/snapshots/forgot-password/forgot-password.spec.ts/forgot-password-verify-email-linux.png
index b43d78bec854278054c0787d867486ed00587eb7..5fa7969c5743b0e1270c952cbc31092f445c237e 100644
GIT binary patch
literal 22130
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

literal 22161
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
UoRQ?-V5LbkRJB#g;g+xe2SLK2^8f$<

diff --git a/res/css/structures/_RoomStatusBar.pcss b/res/css/structures/_RoomStatusBar.pcss
index b131009868..0f30401a6b 100644
--- a/res/css/structures/_RoomStatusBar.pcss
+++ b/res/css/structures/_RoomStatusBar.pcss
@@ -125,7 +125,7 @@ Please see LICENSE files in the repository root for full details.
                 padding-left: 34px; /* 28px from above, but +6px to account for the wider icon */
 
                 &::before {
-                    mask-image: url("$(res)/img/element-icons/retry.svg");
+                    mask-image: url("@vector-im/compound-design-tokens/icons/restart.svg");
                 }
             }
         }
diff --git a/res/css/structures/_SpaceHierarchy.pcss b/res/css/structures/_SpaceHierarchy.pcss
index d91d5b8d9b..812b5474a3 100644
--- a/res/css/structures/_SpaceHierarchy.pcss
+++ b/res/css/structures/_SpaceHierarchy.pcss
@@ -77,7 +77,7 @@ Please see LICENSE files in the repository root for full details.
             height: 16px;
             width: 16px;
             left: 0;
-            background-image: url("$(res)/img/element-icons/warning-badge.svg");
+            background-image: url("@vector-im/compound-design-tokens/icons/error.svg");
             background-size: cover;
             background-repeat: no-repeat;
         }
diff --git a/res/css/views/context_menus/_MessageContextMenu.pcss b/res/css/views/context_menus/_MessageContextMenu.pcss
index 20d7ed1d13..e06782ebe9 100644
--- a/res/css/views/context_menus/_MessageContextMenu.pcss
+++ b/res/css/views/context_menus/_MessageContextMenu.pcss
@@ -29,7 +29,7 @@ Please see LICENSE files in the repository root for full details.
     }
 
     .mx_MessageContextMenu_iconReport::before {
-        mask-image: url("$(res)/img/element-icons/warning-badge.svg");
+        mask-image: url("@vector-im/compound-design-tokens/icons/error.svg");
     }
 
     .mx_MessageContextMenu_iconLink::before {
@@ -61,7 +61,7 @@ Please see LICENSE files in the repository root for full details.
     }
 
     .mx_MessageContextMenu_iconResend::before {
-        mask-image: url("$(res)/img/element-icons/retry.svg");
+        mask-image: url("@vector-im/compound-design-tokens/icons/restart.svg");
     }
 
     .mx_MessageContextMenu_iconSource::before {
diff --git a/res/css/views/dialogs/_AddExistingToSpaceDialog.pcss b/res/css/views/dialogs/_AddExistingToSpaceDialog.pcss
index 6ac9bc3975..1656ca7e67 100644
--- a/res/css/views/dialogs/_AddExistingToSpaceDialog.pcss
+++ b/res/css/views/dialogs/_AddExistingToSpaceDialog.pcss
@@ -125,7 +125,7 @@ Please see LICENSE files in the repository root for full details.
                 mask-repeat: no-repeat;
                 mask-position: center;
                 mask-size: contain;
-                mask-image: url("$(res)/img/element-icons/retry.svg");
+                mask-image: url("@vector-im/compound-design-tokens/icons/restart.svg");
                 width: 18px;
                 height: 18px;
                 left: 0;
diff --git a/res/css/views/dialogs/security/_AccessSecretStorageDialog.pcss b/res/css/views/dialogs/security/_AccessSecretStorageDialog.pcss
index 0b42281e3e..e5abc1e48b 100644
--- a/res/css/views/dialogs/security/_AccessSecretStorageDialog.pcss
+++ b/res/css/views/dialogs/security/_AccessSecretStorageDialog.pcss
@@ -21,7 +21,7 @@ Please see LICENSE files in the repository root for full details.
 
         &.mx_AccessSecretStorageDialog_resetBadge::before {
             /* The image isn't capable of masking, so we use a background instead. */
-            background-image: url("$(res)/img/element-icons/warning-badge.svg");
+            background-image: url("@vector-im/compound-design-tokens/icons/error.svg");
             background-size: 24px;
             background-color: transparent;
         }
@@ -120,7 +120,7 @@ Please see LICENSE files in the repository root for full details.
                         width: 16px;
                         left: 0;
                         top: 2px; /* alignment */
-                        background-image: url("$(res)/img/element-icons/warning-badge.svg");
+                        background-image: url("@vector-im/compound-design-tokens/icons/error.svg");
                         background-size: contain;
                     }
 
diff --git a/res/css/views/elements/_InfoTooltip.pcss b/res/css/views/elements/_InfoTooltip.pcss
index a9a4dd42e6..0329f6a63b 100644
--- a/res/css/views/elements/_InfoTooltip.pcss
+++ b/res/css/views/elements/_InfoTooltip.pcss
@@ -29,5 +29,5 @@ Please see LICENSE files in the repository root for full details.
 }
 
 .mx_InfoTooltip_icon_warning::before {
-    mask-image: url("$(res)/img/element-icons/warning.svg");
+    mask-image: url("@vector-im/compound-design-tokens/icons/error.svg");
 }
diff --git a/res/css/views/messages/_MessageActionBar.pcss b/res/css/views/messages/_MessageActionBar.pcss
index 4fe68f08d0..3768bfb021 100644
--- a/res/css/views/messages/_MessageActionBar.pcss
+++ b/res/css/views/messages/_MessageActionBar.pcss
@@ -108,6 +108,10 @@ Please see LICENSE files in the repository root for full details.
             color: var(--cpd-color-icon-primary);
         }
 
+        &.mx_MessageActionBar_retryButton {
+            --MessageActionBar-icon-size: 16px;
+        }
+
         &.mx_MessageActionBar_downloadButton {
             --MessageActionBar-icon-size: 14px;
 
diff --git a/res/css/views/rooms/_EntityTile.pcss b/res/css/views/rooms/_EntityTile.pcss
index 7b23cde43c..979d5bb5d4 100644
--- a/res/css/views/rooms/_EntityTile.pcss
+++ b/res/css/views/rooms/_EntityTile.pcss
@@ -31,8 +31,9 @@ Please see LICENSE files in the repository root for full details.
     position: absolute;
     top: calc(50% - 8px); /* center */
     right: -8px;
-    mask: url("$(res)/img/member_chevron.png");
+    mask: url("@vector-im/compound-design-tokens/icons/chevron-right.svg");
     mask-repeat: no-repeat;
+    mask-position: center;
     width: 16px;
     height: 16px;
     background-color: $header-panel-text-primary-color;
diff --git a/res/css/views/rooms/_ThreadSummary.pcss b/res/css/views/rooms/_ThreadSummary.pcss
index b07c747d29..118ee51283 100644
--- a/res/css/views/rooms/_ThreadSummary.pcss
+++ b/res/css/views/rooms/_ThreadSummary.pcss
@@ -53,11 +53,11 @@ Please see LICENSE files in the repository root for full details.
             content: "";
             position: absolute;
             top: 50%;
-            right: $spacing-12;
+            right: var(--cpd-space-1x);
             transform: translateY(-50%);
-            width: 12px;
-            height: 12px;
-            mask-image: url("$(res)/img/compound/chevron-right-12px.svg");
+            width: 24px;
+            height: 24px;
+            mask-image: url("@vector-im/compound-design-tokens/icons/chevron-right.svg");
             mask-position: center;
             mask-size: contain;
             mask-repeat: no-repeat;
diff --git a/res/img/compound/chevron-right-12px.svg b/res/img/compound/chevron-right-12px.svg
deleted file mode 100644
index 02f61f36ff..0000000000
--- a/res/img/compound/chevron-right-12px.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
-<g clip-path="url(#clip0_1692_80)">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M3.96967 10.7197C3.67678 10.4268 3.67601 9.95114 3.96795 9.6573L7.66823 5.933L3.95592 2.22069C3.66303 1.92779 3.66226 1.45215 3.9542 1.15831C4.24615 0.864473 4.72025 0.863706 5.01315 1.1566L9.25579 5.39924C9.54868 5.69213 9.54945 6.16777 9.2575 6.46161L5.02861 10.718C4.73667 11.0118 4.26256 11.0126 3.96967 10.7197Z" fill="#737D8C"/>
-</g>
-<defs>
-<clipPath id="clip0_1692_80">
-<rect width="12" height="12" fill="white"/>
-</clipPath>
-</defs>
-</svg>
diff --git a/res/img/compound/retry-16px.svg b/res/img/compound/retry-16px.svg
deleted file mode 100644
index 443a0d7b85..0000000000
--- a/res/img/compound/retry-16px.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M4.02266 2.96455C5.11589 2.10004 6.49866 1.5835 8 1.5835C11.3187 1.5835 14.049 4.10294 14.3825 7.3335H15.6723C15.9336 7.3335 16.0894 7.62498 15.9445 7.8426L13.9388 10.8543C13.8094 11.0488 13.524 11.0488 13.3945 10.8543L11.3888 7.8426C11.2439 7.62498 11.3997 7.3335 11.661 7.3335H12.8719C12.5465 4.93343 10.4893 3.0835 8 3.0835C6.84828 3.0835 5.79092 3.47857 4.95308 4.14112C4.8969 4.18555 4.84851 4.22129 4.81295 4.24673C4.7951 4.2595 4.78032 4.26979 4.7692 4.27743L4.75529 4.28689L4.75051 4.2901L4.74868 4.29132L4.74791 4.29183L4.74756 4.29206L4.74739 4.29217L4.74731 4.29223L4.33341 3.66694L4.74723 4.29228C4.40181 4.52087 3.93648 4.42616 3.70788 4.08073C3.47976 3.736 3.57362 3.27185 3.91734 3.04277L3.92021 3.04081L3.94013 3.02682C3.95912 3.01323 3.988 2.99197 4.02266 2.96455ZM3.12815 8.66683H4.33901C4.60027 8.66683 4.7561 8.37534 4.61118 8.15772L2.60551 5.14598C2.47603 4.95156 2.19064 4.95156 2.06116 5.14598L0.0554881 8.15772C-0.0894338 8.37534 0.0663988 8.66683 0.327661 8.66683H1.61755C1.95103 11.8974 4.68129 14.4168 8 14.4168C9.56831 14.4168 11.0069 13.8532 12.1215 12.9184C12.4388 12.6522 12.4803 12.1791 12.2141 11.8617C11.9479 11.5444 11.4749 11.5029 11.1575 11.7691C10.303 12.4859 9.20281 12.9168 8 12.9168C5.51071 12.9168 3.4535 11.0669 3.12815 8.66683Z" fill="currentColor"/>
-</svg>
diff --git a/res/img/element-icons/retry.svg b/res/img/element-icons/retry.svg
deleted file mode 100644
index 6e5b8651fc..0000000000
--- a/res/img/element-icons/retry.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="17" height="16" fill="none">
-<path 
-    fill="currentColor" 
-    fill-rule="evenodd" 
-    d="M4.523 2.964a6.418 6.418 0 0 1 10.36 4.369h1.29c.26 0 .416.292.272.51l-2.006 3.011a.327.327 0 0 1-.544 0l-2.006-3.012a.327.327 0 0 1 .272-.509h1.21a4.918 4.918 0 0 0-7.918-3.192 3.684 3.684 0 0 1-.184.136l-.014.01-.004.003-.002.001h-.001v.001l-.415-.625.414.625a.75.75 0 0 1-.83-1.25l.003-.001.02-.014c.02-.014.048-.035.083-.063Zm-.895 5.703H4.84a.327.327 0 0 0 .272-.51L3.106 5.146a.327.327 0 0 0-.545 0L.555 8.157c-.144.218.011.51.273.51h1.29a6.418 6.418 0 0 0 10.503 4.251.75.75 0 0 0-.963-1.15 4.918 4.918 0 0 1-8.03-3.102Z" 
-    clip-rule="evenodd"/>
-</svg>
diff --git a/res/img/element-icons/warning-badge.svg b/res/img/element-icons/warning-badge.svg
deleted file mode 100644
index 09e0944bdb..0000000000
--- a/res/img/element-icons/warning-badge.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   id="svg8"
-   version="1.1"
-   fill="none"
-   viewBox="0 0 24 24"
-   height="24"
-   width="24">
-  <metadata
-     id="metadata14">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs12" />
-  <path
-     id="path2"
-     d="M 12 2 C 6.47715 2 2 6.47715 2 12 C 2 17.5228 6.47715 22 12 22 C 17.5228 22 22 17.5228 22 12 C 22 6.47715 17.5228 2 12 2 z M 11.880859 5.5039062 C 12.720859 5.4439063 13.470547 6.0746875 13.560547 6.9296875 L 13.560547 7.1699219 L 13.080078 13.169922 C 13.035078 13.724922 12.570625 14.144531 12.015625 14.144531 L 11.925781 14.144531 C 11.400781 14.099531 10.996172 13.694922 10.951172 13.169922 L 10.470703 7.1699219 C 10.395703 6.3149219 11.025859 5.5639064 11.880859 5.5039062 z M 12 15.763672 C 12.729 15.763672 13.320312 16.354884 13.320312 17.083984 C 13.320313 17.812984 12.729 18.404297 12 18.404297 C 11.271 18.404297 10.679688 17.812984 10.679688 17.083984 C 10.679688 16.354884 11.271 15.763672 12 15.763672 z "
-     style="fill:#ff5b55;fill-opacity:1" />
-</svg>
diff --git a/res/img/element-icons/warning.svg b/res/img/element-icons/warning.svg
deleted file mode 100644
index eef5193140..0000000000
--- a/res/img/element-icons/warning.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM6.9806 4.5101C6.9306 3.9401 7.3506 3.4401 7.9206 3.4001C8.4806 3.3601 8.9806 3.7801 9.0406 4.3501V4.5101L8.7206 8.5101C8.6906 8.8801 8.3806 9.1601 8.0106 9.1601H7.9506C7.6006 9.1301 7.3306 8.8601 7.3006 8.5101L6.9806 4.5101ZM8.88012 11.1202C8.88012 11.6062 8.48613 12.0002 8.00012 12.0002C7.51411 12.0002 7.12012 11.6062 7.12012 11.1202C7.12012 10.6342 7.51411 10.2402 8.00012 10.2402C8.48613 10.2402 8.88012 10.6342 8.88012 11.1202Z" fill="#8D99A5"/>
-</svg>
diff --git a/res/img/member_chevron.png b/res/img/member_chevron.png
deleted file mode 100644
index cbbd289dcf4a780581a0227433a1a9278c34bc49..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 271
zcmV+q0r38bP)<h;3K|Lk000e1NJLTq000O8000aK1^@s6U!MG(00001b5ch_0Itp)
z=>Px#$w@>(R2Ug!V1NQ`ZEZFf8<}PTa+r*bjTf@BvtQ8B(Gf?M1hE+n4Go={n3(o}
zIRF3uzy9mjFUKoauDk^CL4f(iix>ALB_$bwzyXLwnVFfrg@uLJyn6NOD_8-Dc>etP
z0bGihK?*<smm-iO;Q(m=bRg#qNC0S^CMzqe8(aa%2W)I?`+;&IAO%1NH=aL#ela76
z1Cs>lf=Qk`cdh}%26<ByC~***BuD`h&?sr3q&$cNG8U#2#D@c*DfYn7%!dmgF#x8v
VPh0W_a%BJj002ovPDHLkV1j7yWrY9$

diff --git a/src/components/structures/auth/forgot-password/CheckEmail.tsx b/src/components/structures/auth/forgot-password/CheckEmail.tsx
index feca331894..dbc667c07e 100644
--- a/src/components/structures/auth/forgot-password/CheckEmail.tsx
+++ b/src/components/structures/auth/forgot-password/CheckEmail.tsx
@@ -8,10 +8,10 @@ Please see LICENSE files in the repository root for full details.
 
 import React, { ReactNode } from "react";
 import { Tooltip } from "@vector-im/compound-web";
+import { RestartIcon } from "@vector-im/compound-design-tokens/assets/web/icons";
 
 import AccessibleButton from "../../../views/elements/AccessibleButton";
 import { Icon as EMailPromptIcon } from "../../../../../res/img/element-icons/email-prompt.svg";
-import { Icon as RetryIcon } from "../../../../../res/img/compound/retry-16px.svg";
 import { _t } from "../../../../languageHandler";
 import { useTimeoutToggle } from "../../../../hooks/useTimeoutToggle";
 import { ErrorMessage } from "../../ErrorMessage";
@@ -60,7 +60,7 @@ export const CheckEmail: React.FC<CheckEmailProps> = ({
                 <span className="mx_VerifyEMailDialog_text-light">{_t("auth|check_email_resend_prompt")}</span>
                 <Tooltip description={_t("auth|check_email_resend_tooltip")} placement="top" open={tooltipVisible}>
                     <AccessibleButton className="mx_AuthBody_resend-button" kind="link" onClick={onResendClickFn}>
-                        <RetryIcon className="mx_Icon mx_Icon_16" />
+                        <RestartIcon className="mx_Icon mx_Icon_16" />
                         {_t("action|resend")}
                     </AccessibleButton>
                 </Tooltip>
diff --git a/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx b/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx
index d883177d0c..24caa2b13d 100644
--- a/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx
+++ b/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx
@@ -8,10 +8,10 @@ Please see LICENSE files in the repository root for full details.
 
 import React, { ReactNode } from "react";
 import { Tooltip } from "@vector-im/compound-web";
+import { RestartIcon } from "@vector-im/compound-design-tokens/assets/web/icons";
 
 import { _t } from "../../../../languageHandler";
 import AccessibleButton from "../../../views/elements/AccessibleButton";
-import { Icon as RetryIcon } from "../../../../../res/img/compound/retry-16px.svg";
 import { Icon as EmailPromptIcon } from "../../../../../res/img/element-icons/email-prompt.svg";
 import { useTimeoutToggle } from "../../../../hooks/useTimeoutToggle";
 import { ErrorMessage } from "../../ErrorMessage";
@@ -59,7 +59,7 @@ export const VerifyEmailModal: React.FC<Props> = ({
                 <span className="mx_VerifyEMailDialog_text-light">{_t("auth|check_email_resend_prompt")}</span>
                 <Tooltip description={_t("auth|check_email_resend_tooltip")} placement="top" open={tooltipVisible}>
                     <AccessibleButton className="mx_AuthBody_resend-button" kind="link" onClick={onResendClickFn}>
-                        <RetryIcon className="mx_Icon mx_Icon_16" />
+                        <RestartIcon className="mx_Icon mx_Icon_16" />
                         {_t("action|resend")}
                     </AccessibleButton>
                 </Tooltip>
diff --git a/src/components/views/dialogs/AddExistingToSpaceDialog.tsx b/src/components/views/dialogs/AddExistingToSpaceDialog.tsx
index ce60b76d2e..31162b45f4 100644
--- a/src/components/views/dialogs/AddExistingToSpaceDialog.tsx
+++ b/src/components/views/dialogs/AddExistingToSpaceDialog.tsx
@@ -12,6 +12,7 @@ import { Room, EventType } from "matrix-js-sdk/src/matrix";
 import { KnownMembership } from "matrix-js-sdk/src/types";
 import { sleep } from "matrix-js-sdk/src/utils";
 import { logger } from "matrix-js-sdk/src/logger";
+import { ErrorIcon } from "@vector-im/compound-design-tokens/assets/web/icons";
 
 import { _t, _td, TranslationKey } from "../../../languageHandler";
 import BaseDialog from "./BaseDialog";
@@ -34,7 +35,6 @@ import LazyRenderList from "../elements/LazyRenderList";
 import { useSettingValue } from "../../../hooks/useSettings";
 import { filterBoolean } from "../../../utils/arrays";
 import { NonEmptyArray } from "../../../@types/common";
-import WarningBadgeSvg from "../../../../res/img/element-icons/warning-badge.svg";
 
 // These values match CSS
 const ROW_HEIGHT = 32 + 12;
@@ -229,7 +229,7 @@ export const AddExistingToSpace: React.FC<IAddExistingToSpaceProps> = ({
     if (error) {
         footer = (
             <>
-                <img src={WarningBadgeSvg} height="24" width="24" alt="" />
+                <ErrorIcon height="24px" width="24px" />
 
                 <span className="mx_AddExistingToSpaceDialog_error">
                     <div className="mx_AddExistingToSpaceDialog_errorHeading">
diff --git a/src/components/views/dialogs/ModalWidgetDialog.tsx b/src/components/views/dialogs/ModalWidgetDialog.tsx
index 90f330c625..7df9130a7a 100644
--- a/src/components/views/dialogs/ModalWidgetDialog.tsx
+++ b/src/components/views/dialogs/ModalWidgetDialog.tsx
@@ -22,6 +22,7 @@ import {
     WidgetApiFromWidgetAction,
     WidgetKind,
 } from "matrix-widget-api";
+import { ErrorIcon } from "@vector-im/compound-design-tokens/assets/web/icons";
 
 import BaseDialog from "./BaseDialog";
 import { _t, getUserLanguage } from "../../../languageHandler";
@@ -33,7 +34,6 @@ import { arrayFastClone } from "../../../utils/arrays";
 import { ElementWidget } from "../../../stores/widgets/StopGapWidget";
 import { ELEMENT_CLIENT_ID } from "../../../identifiers";
 import SettingsStore from "../../../settings/SettingsStore";
-import WarningBadgeSvg from "../../../../res/img/element-icons/warning-badge.svg";
 
 interface IProps {
     widgetDefinition: IModalWidgetOpenRequestData;
@@ -186,7 +186,7 @@ export default class ModalWidgetDialog extends React.PureComponent<IProps, IStat
                 onFinished={this.props.onFinished}
             >
                 <div className="mx_ModalWidgetDialog_warning">
-                    <img src={WarningBadgeSvg} height="16" width="16" alt="" />
+                    <ErrorIcon width="16px" height="16px" />
                     {_t("widget|modal_data_warning", {
                         widgetDomain: parsed.hostname,
                     })}
diff --git a/src/components/views/location/MapError.tsx b/src/components/views/location/MapError.tsx
index 5b19d10522..319223d3f9 100644
--- a/src/components/views/location/MapError.tsx
+++ b/src/components/views/location/MapError.tsx
@@ -8,8 +8,8 @@ Please see LICENSE files in the repository root for full details.
 
 import React from "react";
 import classNames from "classnames";
+import { ErrorIcon } from "@vector-im/compound-design-tokens/assets/web/icons";
 
-import { Icon as WarningBadge } from "../../../../res/img/element-icons/warning-badge.svg";
 import { _t } from "../../../languageHandler";
 import { getLocationShareErrorMessage, LocationShareError } from "../../../utils/location";
 import AccessibleButton from "../elements/AccessibleButton";
@@ -29,7 +29,7 @@ export const MapError: React.FC<MapErrorProps> = ({ error, isMinimised, classNam
         className={classNames("mx_MapError", className, { mx_MapError_isMinimised: isMinimised })}
         onClick={onClick}
     >
-        <WarningBadge className="mx_MapError_icon" />
+        <ErrorIcon className="mx_MapError_icon" />
         <Heading className="mx_MapError_heading" size="3">
             {_t("location_sharing|failed_load_map")}
         </Heading>
diff --git a/src/components/views/messages/MessageActionBar.tsx b/src/components/views/messages/MessageActionBar.tsx
index ddf637dee2..2f3c73a429 100644
--- a/src/components/views/messages/MessageActionBar.tsx
+++ b/src/components/views/messages/MessageActionBar.tsx
@@ -27,11 +27,11 @@ import {
     OverflowHorizontalIcon,
     ReplyIcon,
     DeleteIcon,
+    RestartIcon,
 } from "@vector-im/compound-design-tokens/assets/web/icons";
 
 import { Icon as EditIcon } from "../../../../res/img/element-icons/room/message-bar/edit.svg";
 import { Icon as EmojiIcon } from "../../../../res/img/element-icons/room/message-bar/emoji.svg";
-import { Icon as ResendIcon } from "../../../../res/img/element-icons/retry.svg";
 import { Icon as ThreadIcon } from "../../../../res/img/element-icons/message/thread.svg";
 import { Icon as ExpandMessageIcon } from "../../../../res/img/element-icons/expand-message.svg";
 import { Icon as CollapseMessageIcon } from "../../../../res/img/element-icons/collapse-message.svg";
@@ -475,14 +475,14 @@ export default class MessageActionBar extends React.PureComponent<IMessageAction
                 0,
                 0,
                 <RovingAccessibleButton
-                    className="mx_MessageActionBar_iconButton"
+                    className="mx_MessageActionBar_iconButton mx_MessageActionBar_retryButton"
                     title={_t("action|retry")}
                     onClick={this.onResendClick}
                     onContextMenu={this.onResendClick}
                     key="resend"
                     placement="left"
                 >
-                    <ResendIcon />
+                    <RestartIcon />
                 </RovingAccessibleButton>,
             );
 
diff --git a/test/unit-tests/components/views/location/__snapshots__/MapError-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/MapError-test.tsx.snap
index 427da8ffef..238097d995 100644
--- a/test/unit-tests/components/views/location/__snapshots__/MapError-test.tsx.snap
+++ b/test/unit-tests/components/views/location/__snapshots__/MapError-test.tsx.snap
@@ -6,9 +6,18 @@ exports[`<MapError /> applies class when isMinimised is truthy 1`] = `
     class="mx_MapError test mx_MapError_isMinimised"
     data-testid="map-rendering-error"
   >
-    <div
+    <svg
       class="mx_MapError_icon"
-    />
+      fill="currentColor"
+      height="1em"
+      viewBox="0 0 24 24"
+      width="1em"
+      xmlns="http://www.w3.org/2000/svg"
+    >
+      <path
+        d="M12 17a.97.97 0 0 0 .713-.288A.968.968 0 0 0 13 16a.968.968 0 0 0-.287-.713A.968.968 0 0 0 12 15a.968.968 0 0 0-.713.287A.968.968 0 0 0 11 16c0 .283.096.52.287.712.192.192.43.288.713.288Zm0-4c.283 0 .52-.096.713-.287A.968.968 0 0 0 13 12V8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8v4c0 .283.096.52.287.713.192.191.43.287.713.287Zm0 9a9.738 9.738 0 0 1-3.9-.788 10.099 10.099 0 0 1-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.738 9.738 0 0 1 2 12a9.74 9.74 0 0 1 .788-3.9 10.099 10.099 0 0 1 2.137-3.175c.9-.9 1.958-1.612 3.175-2.137A9.738 9.738 0 0 1 12 2a9.74 9.74 0 0 1 3.9.788 10.098 10.098 0 0 1 3.175 2.137c.9.9 1.613 1.958 2.137 3.175A9.738 9.738 0 0 1 22 12a9.738 9.738 0 0 1-.788 3.9 10.098 10.098 0 0 1-2.137 3.175c-.9.9-1.958 1.613-3.175 2.137A9.738 9.738 0 0 1 12 22Z"
+      />
+    </svg>
     <h3
       class="mx_Heading_h3 mx_MapError_heading"
     >
@@ -36,9 +45,18 @@ exports[`<MapError /> renders correctly for MapStyleUrlNotConfigured 1`] = `
     class="mx_MapError test"
     data-testid="map-rendering-error"
   >
-    <div
+    <svg
       class="mx_MapError_icon"
-    />
+      fill="currentColor"
+      height="1em"
+      viewBox="0 0 24 24"
+      width="1em"
+      xmlns="http://www.w3.org/2000/svg"
+    >
+      <path
+        d="M12 17a.97.97 0 0 0 .713-.288A.968.968 0 0 0 13 16a.968.968 0 0 0-.287-.713A.968.968 0 0 0 12 15a.968.968 0 0 0-.713.287A.968.968 0 0 0 11 16c0 .283.096.52.287.712.192.192.43.288.713.288Zm0-4c.283 0 .52-.096.713-.287A.968.968 0 0 0 13 12V8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8v4c0 .283.096.52.287.713.192.191.43.287.713.287Zm0 9a9.738 9.738 0 0 1-3.9-.788 10.099 10.099 0 0 1-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.738 9.738 0 0 1 2 12a9.74 9.74 0 0 1 .788-3.9 10.099 10.099 0 0 1 2.137-3.175c.9-.9 1.958-1.612 3.175-2.137A9.738 9.738 0 0 1 12 2a9.74 9.74 0 0 1 3.9.788 10.098 10.098 0 0 1 3.175 2.137c.9.9 1.613 1.958 2.137 3.175A9.738 9.738 0 0 1 22 12a9.738 9.738 0 0 1-.788 3.9 10.098 10.098 0 0 1-2.137 3.175c-.9.9-1.958 1.613-3.175 2.137A9.738 9.738 0 0 1 12 22Z"
+      />
+    </svg>
     <h3
       class="mx_Heading_h3 mx_MapError_heading"
     >
@@ -66,9 +84,18 @@ exports[`<MapError /> renders correctly for MapStyleUrlNotReachable 1`] = `
     class="mx_MapError test"
     data-testid="map-rendering-error"
   >
-    <div
+    <svg
       class="mx_MapError_icon"
-    />
+      fill="currentColor"
+      height="1em"
+      viewBox="0 0 24 24"
+      width="1em"
+      xmlns="http://www.w3.org/2000/svg"
+    >
+      <path
+        d="M12 17a.97.97 0 0 0 .713-.288A.968.968 0 0 0 13 16a.968.968 0 0 0-.287-.713A.968.968 0 0 0 12 15a.968.968 0 0 0-.713.287A.968.968 0 0 0 11 16c0 .283.096.52.287.712.192.192.43.288.713.288Zm0-4c.283 0 .52-.096.713-.287A.968.968 0 0 0 13 12V8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8v4c0 .283.096.52.287.713.192.191.43.287.713.287Zm0 9a9.738 9.738 0 0 1-3.9-.788 10.099 10.099 0 0 1-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.738 9.738 0 0 1 2 12a9.74 9.74 0 0 1 .788-3.9 10.099 10.099 0 0 1 2.137-3.175c.9-.9 1.958-1.612 3.175-2.137A9.738 9.738 0 0 1 12 2a9.74 9.74 0 0 1 3.9.788 10.098 10.098 0 0 1 3.175 2.137c.9.9 1.613 1.958 2.137 3.175A9.738 9.738 0 0 1 22 12a9.738 9.738 0 0 1-.788 3.9 10.098 10.098 0 0 1-2.137 3.175c-.9.9-1.958 1.613-3.175 2.137A9.738 9.738 0 0 1 12 22Z"
+      />
+    </svg>
     <h3
       class="mx_Heading_h3 mx_MapError_heading"
     >
diff --git a/test/unit-tests/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap
index 73b2570165..de31628ec3 100644
--- a/test/unit-tests/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap
+++ b/test/unit-tests/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap
@@ -5,9 +5,18 @@ exports[`<MBeaconBody /> when map display is not configured renders maps unavail
   class="mx_MapError mx_MBeaconBody_mapError mx_MBeaconBody_mapErrorInteractive mx_MapError_isMinimised"
   data-testid="map-rendering-error"
 >
-  <div
+  <svg
     class="mx_MapError_icon"
-  />
+    fill="currentColor"
+    height="1em"
+    viewBox="0 0 24 24"
+    width="1em"
+    xmlns="http://www.w3.org/2000/svg"
+  >
+    <path
+      d="M12 17a.97.97 0 0 0 .713-.288A.968.968 0 0 0 13 16a.968.968 0 0 0-.287-.713A.968.968 0 0 0 12 15a.968.968 0 0 0-.713.287A.968.968 0 0 0 11 16c0 .283.096.52.287.712.192.192.43.288.713.288Zm0-4c.283 0 .52-.096.713-.287A.968.968 0 0 0 13 12V8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8v4c0 .283.096.52.287.713.192.191.43.287.713.287Zm0 9a9.738 9.738 0 0 1-3.9-.788 10.099 10.099 0 0 1-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.738 9.738 0 0 1 2 12a9.74 9.74 0 0 1 .788-3.9 10.099 10.099 0 0 1 2.137-3.175c.9-.9 1.958-1.612 3.175-2.137A9.738 9.738 0 0 1 12 2a9.74 9.74 0 0 1 3.9.788 10.098 10.098 0 0 1 3.175 2.137c.9.9 1.613 1.958 2.137 3.175A9.738 9.738 0 0 1 22 12a9.738 9.738 0 0 1-.788 3.9 10.098 10.098 0 0 1-2.137 3.175c-.9.9-1.958 1.613-3.175 2.137A9.738 9.738 0 0 1 12 22Z"
+    />
+  </svg>
   <h3
     class="mx_Heading_h3 mx_MapError_heading"
   >
diff --git a/test/unit-tests/img/edit.png b/test/unit-tests/img/edit.png
deleted file mode 100644
index 6f373d3f3dc7dfbb4186e4347fad43920bd04279..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 460
zcmV;-0W<!IP)<h;3K|Lk000e1NJLTq000gE000gM1^@s6A4o0H00001b5ch_0Itp)
z=>Px$hDk(0R45gVlCf&SP!xv$Tx)R<B%3%0jY1+0U3HR9ox2tK2udHp!Dp~<U{~!M
zh?6c3MFayH7eNa`6hxt7()*{qA&3;ukbA@VzjMw#=V*vnu~@vV)oRsbGWnuunn{=M
z`}S_Pdv7+IZ{zX!Tgf$bX*3%5hGBH_`TSijmqRL*3S8Um7PHw5)9G~XIL=eOUjI}K
z2({a7Z@FB`1ec9IYN#c6!}6G^TrO+rbUF;CE~nE8gTVl@bWpS3?>myQVlu+3ygXZ$
zrL^HmsMqUZu~<OYbrcE(91aIPo6Wj{jo_QkO+m6mWHK3)N~J(TEg8Y?sYWRH9I8|*
z5JCiQYRUZmDMFtAK@k~*?4iw;)2@N2B_lXo&WR>x1@)$Ad4coqLoFF_9IaN%;hfg%
zwLh6me3|*;FsY%IjNlq^Bl`Wme>@&xnr7IDXr|R_1!|}z6Qi@+?S9E9ADhkQk#kBU
z5{Sp+@H`K$>tZw-VK^MlZQFiOD;Mr61F(c^m;46@h9Cq<lTzpa0000<MNUMnLSTYK
Ck<2du

diff --git a/test/unit-tests/img/icon_context_message.svg b/test/unit-tests/img/icon_context_message.svg
deleted file mode 100644
index f2ceccfa78..0000000000
--- a/test/unit-tests/img/icon_context_message.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: sketchtool 39.1 (31720) - http://www.bohemiancoding.com/sketch -->
-    <title>ED5D3E59-2561-4AC1-9B43-82FBC51767FC</title>
-    <desc>Created with sketchtool.</desc>
-    <defs></defs>
-    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="icon_context">
-            <g>
-                <path d="M9.5,19 C14.7467051,19 19,14.7467051 19,9.5 C19,4.25329488 14.7467051,0 9.5,0 C4.25329488,0 0,4.25329488 0,9.5 C0,14.7467051 4.25329488,19 9.5,19 Z" id="Oval-69" fill="#ECECEC"></path>
-                <path d="M4.5,9.50063771 C4.5,9.13148623 4.59887838,8.85242947 4.7966381,8.66345907 C4.99439782,8.47448867 5.28224377,8.38000488 5.66018457,8.38000488 C6.0249414,8.38000488 6.3072941,8.47668596 6.50725115,8.67005103 C6.70720821,8.86341609 6.80718523,9.14027555 6.80718523,9.50063771 C6.80718523,9.84781589 6.70610956,10.1213794 6.50395517,10.3213365 C6.30180079,10.5212935 6.02054674,10.6212705 5.66018457,10.6212705 C5.29103309,10.6212705 5.00538444,10.5234908 4.80323006,10.3279284 C4.60107568,10.132366 4.5,9.85660521 4.5,9.50063771 L4.5,9.50063771 Z M8.3431114,9.50063771 C8.3431114,9.13148623 8.44198978,8.85242947 8.63974951,8.66345907 C8.83750923,8.47448867 9.12755247,8.38000488 9.50988794,8.38000488 C9.87464476,8.38000488 10.1569975,8.47668596 10.3569545,8.67005103 C10.5569116,8.86341609 10.6568886,9.14027555 10.6568886,9.50063771 C10.6568886,9.84781589 10.5558129,10.1213794 10.3536585,10.3213365 C10.1515042,10.5212935 9.8702501,10.6212705 9.50988794,10.6212705 C9.13634179,10.6212705 8.84849585,10.5234908 8.64634146,10.3279284 C8.44418708,10.132366 8.3431114,9.85660521 8.3431114,9.50063771 L8.3431114,9.50063771 Z M12.1928148,9.50063771 C12.1928148,9.13148623 12.2916931,8.85242947 12.4894529,8.66345907 C12.6872126,8.47448867 12.9750585,8.38000488 13.3529993,8.38000488 C13.7177562,8.38000488 14.0001089,8.47668596 14.2000659,8.67005103 C14.400023,8.86341609 14.5,9.14027555 14.5,9.50063771 C14.5,9.84781589 14.3989243,10.1213794 14.1967699,10.3213365 C13.9946156,10.5212935 13.7133615,10.6212705 13.3529993,10.6212705 C12.9838479,10.6212705 12.6981992,10.5234908 12.4960448,10.3279284 C12.2938904,10.132366 12.1928148,9.85660521 12.1928148,9.50063771 L12.1928148,9.50063771 Z" id="…" fill="#9B9B9B"></path>
-            </g>
-        </g>
-    </g>
-</svg>

From da4672d715ad3188c44a26ec4f078a2287bd4c57 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 7 Nov 2024 11:43:33 +0000
Subject: [PATCH 4/7] Handle authenticated media when downloading from
 ImageView (#28379)

* Handle authenticated media when downloading from ImageView

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
 src/components/views/elements/ImageView.tsx   | 80 +++++++++++++++----
 .../views/elements/ImageView-test.tsx         | 46 ++++++++++-
 2 files changed, 109 insertions(+), 17 deletions(-)

diff --git a/src/components/views/elements/ImageView.tsx b/src/components/views/elements/ImageView.tsx
index 8032f07b6e..711a221994 100644
--- a/src/components/views/elements/ImageView.tsx
+++ b/src/components/views/elements/ImageView.tsx
@@ -8,9 +8,9 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
 Please see LICENSE files in the repository root for full details.
 */
 
-import React, { createRef, CSSProperties } from "react";
+import React, { createRef, CSSProperties, useRef, useState } from "react";
 import FocusLock from "react-focus-lock";
-import { MatrixEvent } from "matrix-js-sdk/src/matrix";
+import { MatrixEvent, parseErrorResponse } from "matrix-js-sdk/src/matrix";
 
 import { _t } from "../../../languageHandler";
 import MemberAvatar from "../avatars/MemberAvatar";
@@ -30,6 +30,9 @@ import { KeyBindingAction } from "../../../accessibility/KeyboardShortcuts";
 import { getKeyBindingsManager } from "../../../KeyBindingsManager";
 import { presentableTextForFile } from "../../../utils/FileUtils";
 import AccessibleButton from "./AccessibleButton";
+import Modal from "../../../Modal";
+import ErrorDialog from "../dialogs/ErrorDialog";
+import { FileDownloader } from "../../../utils/FileDownloader";
 
 // Max scale to keep gaps around the image
 const MAX_SCALE = 0.95;
@@ -309,15 +312,6 @@ export default class ImageView extends React.Component<IProps, IState> {
         this.setZoomAndRotation(cur + 90);
     };
 
-    private onDownloadClick = (): void => {
-        const a = document.createElement("a");
-        a.href = this.props.src;
-        if (this.props.name) a.download = this.props.name;
-        a.target = "_blank";
-        a.rel = "noreferrer noopener";
-        a.click();
-    };
-
     private onOpenContextMenu = (): void => {
         this.setState({
             contextMenuDisplayed: true,
@@ -555,11 +549,7 @@ export default class ImageView extends React.Component<IProps, IState> {
                             title={_t("lightbox|rotate_right")}
                             onClick={this.onRotateClockwiseClick}
                         />
-                        <AccessibleButton
-                            className="mx_ImageView_button mx_ImageView_button_download"
-                            title={_t("action|download")}
-                            onClick={this.onDownloadClick}
-                        />
+                        <DownloadButton url={this.props.src} fileName={this.props.name} />
                         {contextMenuButton}
                         <AccessibleButton
                             className="mx_ImageView_button mx_ImageView_button_close"
@@ -591,3 +581,61 @@ export default class ImageView extends React.Component<IProps, IState> {
         );
     }
 }
+
+function DownloadButton({ url, fileName }: { url: string; fileName?: string }): JSX.Element {
+    const downloader = useRef(new FileDownloader()).current;
+    const [loading, setLoading] = useState(false);
+    const blobRef = useRef<Blob>();
+
+    function showError(e: unknown): void {
+        Modal.createDialog(ErrorDialog, {
+            title: _t("timeline|download_failed"),
+            description: (
+                <>
+                    <div>{_t("timeline|download_failed_description")}</div>
+                    <div>{e instanceof Error ? e.toString() : ""}</div>
+                </>
+            ),
+        });
+        setLoading(false);
+    }
+
+    const onDownloadClick = async (): Promise<void> => {
+        try {
+            if (loading) return;
+            setLoading(true);
+
+            if (blobRef.current) {
+                // Cheat and trigger a download, again.
+                return downloadBlob(blobRef.current);
+            }
+
+            const res = await fetch(url);
+            if (!res.ok) {
+                throw parseErrorResponse(res, await res.text());
+            }
+            const blob = await res.blob();
+            blobRef.current = blob;
+            await downloadBlob(blob);
+        } catch (e) {
+            showError(e);
+        }
+    };
+
+    async function downloadBlob(blob: Blob): Promise<void> {
+        await downloader.download({
+            blob,
+            name: fileName ?? _t("common|image"),
+        });
+        setLoading(false);
+    }
+
+    return (
+        <AccessibleButton
+            className="mx_ImageView_button mx_ImageView_button_download"
+            title={loading ? _t("timeline|download_action_downloading") : _t("action|download")}
+            onClick={onDownloadClick}
+            disabled={loading}
+        />
+    );
+}
diff --git a/test/unit-tests/components/views/elements/ImageView-test.tsx b/test/unit-tests/components/views/elements/ImageView-test.tsx
index 48a312ed3a..4a23d847cb 100644
--- a/test/unit-tests/components/views/elements/ImageView-test.tsx
+++ b/test/unit-tests/components/views/elements/ImageView-test.tsx
@@ -7,13 +7,57 @@
  */
 
 import React from "react";
-import { render } from "jest-matrix-react";
+import { mocked } from "jest-mock";
+import { render, fireEvent, waitFor } from "jest-matrix-react";
+import fetchMock from "fetch-mock-jest";
 
 import ImageView from "../../../../../src/components/views/elements/ImageView";
+import { FileDownloader } from "../../../../../src/utils/FileDownloader";
+import Modal from "../../../../../src/Modal";
+import ErrorDialog from "../../../../../src/components/views/dialogs/ErrorDialog";
+
+jest.mock("../../../../../src/utils/FileDownloader");
 
 describe("<ImageView />", () => {
+    beforeEach(() => {
+        jest.resetAllMocks();
+        fetchMock.reset();
+    });
+
     it("renders correctly", () => {
         const { container } = render(<ImageView src="https://example.com/image.png" onFinished={jest.fn()} />);
         expect(container).toMatchSnapshot();
     });
+
+    it("should download on click", async () => {
+        fetchMock.get("https://example.com/image.png", "TESTFILE");
+        const { getByRole } = render(
+            <ImageView src="https://example.com/image.png" name="filename.png" onFinished={jest.fn()} />,
+        );
+        fireEvent.click(getByRole("button", { name: "Download" }));
+        await waitFor(() =>
+            expect(mocked(FileDownloader).mock.instances[0].download).toHaveBeenCalledWith({
+                blob: expect.anything(),
+                name: "filename.png",
+            }),
+        );
+        expect(fetchMock).toHaveFetched("https://example.com/image.png");
+    });
+
+    it("should handle download errors", async () => {
+        const modalSpy = jest.spyOn(Modal, "createDialog");
+        fetchMock.get("https://example.com/image.png", { status: 500 });
+        const { getByRole } = render(
+            <ImageView src="https://example.com/image.png" name="filename.png" onFinished={jest.fn()} />,
+        );
+        fireEvent.click(getByRole("button", { name: "Download" }));
+        await waitFor(() =>
+            expect(modalSpy).toHaveBeenCalledWith(
+                ErrorDialog,
+                expect.objectContaining({
+                    title: "Download failed",
+                }),
+            ),
+        );
+    });
 });

From b604a6ea8cdb3c86c2c42a4c405c127091add527 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 7 Nov 2024 11:58:17 +0000
Subject: [PATCH 5/7] Enable enable_authenticated_media in Playwright tests
 (#28395)

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
 .../homeserver/synapse/templates/default/homeserver.yaml        | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/playwright/plugins/homeserver/synapse/templates/default/homeserver.yaml b/playwright/plugins/homeserver/synapse/templates/default/homeserver.yaml
index bc3ecd7c9b..539a917b20 100644
--- a/playwright/plugins/homeserver/synapse/templates/default/homeserver.yaml
+++ b/playwright/plugins/homeserver/synapse/templates/default/homeserver.yaml
@@ -102,3 +102,5 @@ experimental_features:
     # messages > non-joined historical messages.
     # Can be removed after Synapse enables it by default
     msc4115_membership_on_events: true
+
+enable_authenticated_media: true

From 536d6ad360bf8a41f24a38ca2442faf44c6df902 Mon Sep 17 00:00:00 2001
From: ElementRobot <releases@riot.im>
Date: Fri, 8 Nov 2024 06:24:40 +0000
Subject: [PATCH 6/7] [create-pull-request] automated change (#28409)

Co-authored-by: t3chguy <t3chguy@users.noreply.github.com>
---
 src/i18n/strings/fr.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 905aa11fa7..7d209a8a45 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -1624,7 +1624,7 @@
         "download_f_droid": "Récupérez-le sur F-Droid",
         "download_google_play": "Récupérez-le sur Google Play",
         "enable_notifications": "Activer les notifications",
-        "enable_notifications_action": "Activer les notifications",
+        "enable_notifications_action": "Ouvrir les paramètres",
         "enable_notifications_description": "Ne ratez pas une réponse ou un message important",
         "explore_rooms": "Explorez les salons publics",
         "find_community_members": "Trouvez et invitez les membres de votre communauté",
@@ -1803,7 +1803,7 @@
         "restore_failed_error": "Impossible de restaurer la sauvegarde"
     },
     "right_panel": {
-        "add_integrations": "Ajouter des widgets, passerelles et robots",
+        "add_integrations": "Ajouter des extensions",
         "add_topic": "Ajouter un sujet",
         "files_button": "Fichiers",
         "pinned_messages": {
@@ -1823,7 +1823,7 @@
                 "button": "Désépingler tous les messages"
             }
         },
-        "pinned_messages_button": "Épinglé",
+        "pinned_messages_button": "Messages épinglés",
         "poll": {
             "active_heading": "Sondages en cours",
             "empty_active": "Il n’y a aucun sondage en cours dans ce salon",
@@ -1848,7 +1848,7 @@
             "view_in_timeline": "Consulter la chronologie des sondages",
             "view_poll": "Voir le sondage"
         },
-        "polls_button": "Historique des sondages",
+        "polls_button": "Sondages",
         "room_summary_card": {
             "title": "Information du salon"
         },
@@ -3252,7 +3252,7 @@
         },
         "m.file": {
             "error_decrypting": "Erreur lors du déchiffrement de la pièce jointe",
-            "error_invalid": "Fichier %(extra)s non valide"
+            "error_invalid": "Fichier invalide"
         },
         "m.image": {
             "error": "Impossible d’afficher l’image à cause d’une erreur",
@@ -3988,7 +3988,7 @@
             "title": "Autoriser ce widget à vérifier votre identité"
         },
         "popout": "Détacher le widget",
-        "set_room_layout": "Définir ma disposition de salon pour tout le monde",
+        "set_room_layout": "Définir la mise en page pour tout le monde",
         "shared_data_avatar": "Votre URL d’image de profil",
         "shared_data_device_id": "Votre ID d’appareil",
         "shared_data_lang": "Votre langue",

From 9a6be72c100fe99306395b4fc06eb10ba2b9686f Mon Sep 17 00:00:00 2001
From: ElementRobot <releases@riot.im>
Date: Fri, 8 Nov 2024 09:31:14 +0000
Subject: [PATCH 7/7] [create-pull-request] automated change (#28408)

Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
---
 playwright/plugins/homeserver/synapse/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/playwright/plugins/homeserver/synapse/index.ts b/playwright/plugins/homeserver/synapse/index.ts
index 6dfd4b5ef5..5e5728a0b5 100644
--- a/playwright/plugins/homeserver/synapse/index.ts
+++ b/playwright/plugins/homeserver/synapse/index.ts
@@ -20,7 +20,7 @@ import { randB64Bytes } from "../../utils/rand";
 // Docker tag to use for synapse docker image.
 // We target a specific digest as every now and then a Synapse update will break our CI.
 // This digest is updated by the playwright-image-updates.yaml workflow periodically.
-const DOCKER_TAG = "develop@sha256:5bae9c459793f800db51bf8ec5e606ae49f7497f081cdbf83ee637885f9f8f7e";
+const DOCKER_TAG = "develop@sha256:d1a89bd0fcdc2bf2900dac30696d53bb9e44da1231faacd5c2d3b9f539ce9586";
 
 async function cfgDirFromTemplate(opts: StartHomeserverOpts): Promise<Omit<HomeserverConfig, "dockerUrl">> {
     const templateDir = path.join(__dirname, "templates", opts.template);