From e032b71f9ff6dd644bae7b980ac570754bc94aa4 Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Mon, 5 Jan 2026 09:05:59 +0000 Subject: [PATCH] Remove perParticipantE2EE --- docs/url-params.md | 1 - sdk/README.md | 3 +-- src/UrlParams.test.ts | 3 --- src/UrlParams.ts | 10 ---------- src/room/GroupCallView.tsx | 7 +------ 5 files changed, 2 insertions(+), 22 deletions(-) diff --git a/docs/url-params.md b/docs/url-params.md index a474daed..747a436b 100644 --- a/docs/url-params.md +++ b/docs/url-params.md @@ -62,7 +62,6 @@ These parameters are relevant to both [widget](./embedded-standalone.md) and [st | `homeserver` | | Not applicable | No | Homeserver for registering a new (guest) user, configures non-default guest user server when creating a spa link. | | `lang` | [BCP 47](https://www.rfc-editor.org/info/bcp47) code | No | No | The language the app should use. | | `password` | | No | No | E2EE password when using a shared secret. (For individual sender keys in embedded mode this is not required.) | -| `perParticipantE2EE` | `true` or `false` | No, defaults to `false` | No, defaults to `false` | Enables per participant encryption with Keys exchanged over encrypted matrix room messages. | | `controlledAudioDevices` | `true` or `false` | No, defaults to `false` | No, defaults to `false` | Whether the [global JS controls for audio devices](./controls.md#audio-devices) should be enabled, allowing the list of audio devices to be controlled by the app hosting Element Call. | | `roomId` | [Matrix Room ID](https://spec.matrix.org/v1.12/appendices/#room-ids) | Yes | No | Anything about what room we're pointed to should be from useRoomIdentifier which parses the path and resolves alias with respect to the default server name, however roomId is an exception as we need the room ID in embedded widget mode, and not the room alias (or even the via params because we are not trying to join it). This is also not validated, where it is in `useRoomIdentifier()`. | | `showControls` | `true` or `false` | No, defaults to `true` | No, defaults to `true` | Displays controls like mute, screen-share, invite, and hangup buttons during a call. | diff --git a/sdk/README.md b/sdk/README.md index 03801b83..c210632f 100644 --- a/sdk/README.md +++ b/sdk/README.md @@ -18,7 +18,6 @@ To create a widget see the example index.html file in this folder. And add it to ``` widgetId = $matrix_widget_id -perParticipantE2EE = true userId = $matrix_user_id deviceId = $org.matrix.msc3819.matrix_device_id baseUrl = $org.matrix.msc4039.matrix_base_url @@ -29,7 +28,7 @@ baseUrl = $org.matrix.msc4039.matrix_base_url Full template use as ``: ``` -http://localhost:3000?widgetId=$matrix_widget_id&perParticipantE2EE=true&userId=$matrix_user_id&deviceId=$org.matrix.msc3819.matrix_device_id&baseUrl=$org.matrix.msc4039.matrix_base_url&roomId=$matrix_room_id +http://localhost:3000?widgetId=$matrix_widget_id&userId=$matrix_user_id&deviceId=$org.matrix.msc3819.matrix_device_id&baseUrl=$org.matrix.msc4039.matrix_base_url&roomId=$matrix_room_id ``` the `$` prefixed variables will be replaced by EW on widget instantiation. (e.g. `$matrix_user_id` -> `@user:example.com` (url encoding will also be applied automatically by EW) -> `%40user%3Aexample.com`) diff --git a/src/UrlParams.test.ts b/src/UrlParams.test.ts index faba394f..f51939cb 100644 --- a/src/UrlParams.test.ts +++ b/src/UrlParams.test.ts @@ -223,7 +223,6 @@ describe("UrlParams", () => { showControls: true, hideScreensharing: false, allowIceFallback: false, - perParticipantE2EE: false, controlledAudioDevices: false, skipLobby: false, returnToLobby: false, @@ -237,7 +236,6 @@ describe("UrlParams", () => { showControls: true, hideScreensharing: false, allowIceFallback: true, - perParticipantE2EE: true, controlledAudioDevices: platform === "desktop" ? false : true, skipLobby: true, returnToLobby: false, @@ -251,7 +249,6 @@ describe("UrlParams", () => { showControls: true, hideScreensharing: false, allowIceFallback: true, - perParticipantE2EE: true, controlledAudioDevices: platform === "desktop" ? false : true, skipLobby: false, returnToLobby: false, diff --git a/src/UrlParams.ts b/src/UrlParams.ts index f78841fb..d83bdf07 100644 --- a/src/UrlParams.ts +++ b/src/UrlParams.ts @@ -190,10 +190,6 @@ export interface UrlConfiguration { */ allowIceFallback: boolean; - /** - * Whether the app should use per participant keys for E2EE. - */ - perParticipantE2EE: boolean; /** * Whether the global JS controls for audio output devices should be enabled, * allowing the list of output devices to be controlled by the app hosting @@ -406,7 +402,6 @@ export const computeUrlParams = (search = "", hash = ""): UrlParams => { showControls: true, hideScreensharing: false, allowIceFallback: true, - perParticipantE2EE: true, controlledAudioDevices: platform === "desktop" ? false : true, skipLobby: true, returnToLobby: false, @@ -453,7 +448,6 @@ export const computeUrlParams = (search = "", hash = ""): UrlParams => { showControls: true, hideScreensharing: false, allowIceFallback: false, - perParticipantE2EE: false, controlledAudioDevices: false, skipLobby: false, returnToLobby: false, @@ -524,7 +518,6 @@ export const computeUrlParams = (search = "", hash = ""): UrlParams => { showControls: parser.getFlag("showControls"), hideScreensharing: parser.getFlag("hideScreensharing"), allowIceFallback: parser.getFlag("allowIceFallback"), - perParticipantE2EE: parser.getFlag("perParticipantE2EE"), controlledAudioDevices: parser.getFlag("controlledAudioDevices"), skipLobby: isWidget ? parser.getFlag("skipLobby") : false, // In SPA mode the user should always exit to the home screen when hanging @@ -663,9 +656,6 @@ export function generateUrlSearchParams( params.set("password", encodedPassword); break; } - case E2eeType.PER_PARTICIPANT: - params.set("perParticipantE2EE", "true"); - break; } params.set("roomId", roomId); viaServers?.forEach((s) => params.set("viaServers", s)); diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx index dfd11ff3..c043f7f3 100644 --- a/src/room/GroupCallView.tsx +++ b/src/room/GroupCallView.tsx @@ -178,11 +178,7 @@ export const GroupCallView: FC = ({ const { displayName, avatarUrl } = useProfile(client); const roomName = useRoomName(room); const roomAvatar = useRoomAvatar(room); - const { - perParticipantE2EE, - returnToLobby, - password: passwordFromUrl, - } = useUrlParams(); + const { returnToLobby, password: passwordFromUrl } = useUrlParams(); const e2eeSystem = useRoomEncryptionSystem(room.roomId); // Save the password once we start the groupCallView @@ -303,7 +299,6 @@ export const GroupCallView: FC = ({ rtcSession, preload, skipLobby, - perParticipantE2EE, mediaDevices, latestMuteStates, setJoined,