Skip to content

Commit a9413f9

Browse files
committed
fixup! emitting outbound key before anyone registered
1 parent 9b06920 commit a9413f9

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

spec/unit/matrixrtc/MatrixRTCSession.spec.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1013,6 +1013,7 @@ describe("MatrixRTCSession", () => {
10131013
useNewMembershipManager: true,
10141014
useExperimentalToDeviceTransport: true,
10151015
});
1016+
sess.onRTCSessionMemberUpdate();
10161017

10171018
await keySentPromise;
10181019

spec/unit/matrixrtc/RTCEncrytionManager.spec.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ describe("RTCEncryptionManager", () => {
7777
getMembershipMock.mockReturnValue([]);
7878

7979
encryptionManager.join(undefined);
80-
80+
// After join it is too early, key might be lost as no one is listening yet
81+
expect(onEncryptionKeysChanged).not.toHaveBeenCalled();
82+
encryptionManager.onMembershipsUpdate([]);
8183
// The key should have been rolled out immediately
8284
expect(onEncryptionKeysChanged).toHaveBeenCalled();
8385
});
@@ -91,6 +93,7 @@ describe("RTCEncryptionManager", () => {
9193
getMembershipMock.mockReturnValue(members);
9294

9395
encryptionManager.join(undefined);
96+
encryptionManager.onMembershipsUpdate([]);
9497

9598
expect(mockTransport.sendKey).toHaveBeenCalledTimes(1);
9699
expect(mockTransport.sendKey).toHaveBeenCalledWith(
@@ -114,6 +117,7 @@ describe("RTCEncryptionManager", () => {
114117
getMembershipMock.mockReturnValue(members);
115118

116119
encryptionManager.join(undefined);
120+
encryptionManager.onMembershipsUpdate([]);
117121

118122
expect(mockTransport.sendKey).toHaveBeenCalledTimes(1);
119123
expect(mockTransport.sendKey).toHaveBeenCalledWith(
@@ -169,6 +173,7 @@ describe("RTCEncryptionManager", () => {
169173

170174
// initial rollout
171175
encryptionManager.join(undefined);
176+
encryptionManager.onMembershipsUpdate([]);
172177
await jest.runOnlyPendingTimersAsync();
173178

174179
expect(mockTransport.sendKey).toHaveBeenCalledTimes(1);
@@ -217,6 +222,7 @@ describe("RTCEncryptionManager", () => {
217222

218223
// initial rollout
219224
encryptionManager.join(undefined);
225+
encryptionManager.onMembershipsUpdate([]);
220226
await jest.runOnlyPendingTimersAsync();
221227

222228
expect(mockTransport.sendKey).toHaveBeenCalledTimes(1);
@@ -246,6 +252,7 @@ describe("RTCEncryptionManager", () => {
246252
getMembershipMock.mockReturnValue(members);
247253

248254
encryptionManager.join(undefined);
255+
encryptionManager.onMembershipsUpdate([]);
249256
await jest.advanceTimersByTimeAsync(10);
250257

251258
expect(mockTransport.sendKey).toHaveBeenCalledTimes(1);
@@ -324,6 +331,7 @@ describe("RTCEncryptionManager", () => {
324331
getMembershipMock.mockReturnValue(members);
325332

326333
encryptionManager.join(undefined);
334+
encryptionManager.onMembershipsUpdate([]);
327335
await jest.advanceTimersByTimeAsync(10);
328336

329337
mockTransport.emit(
@@ -431,6 +439,7 @@ describe("RTCEncryptionManager", () => {
431439

432440
// Let's join
433441
encryptionManager.join(undefined);
442+
encryptionManager.onMembershipsUpdate([]);
434443
await jest.advanceTimersByTimeAsync(10);
435444

436445
// The initial rollout

src/matrixrtc/RTCEncryptionManager.ts

-2
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ export class RTCEncryptionManager implements IEncryptionManager {
9696
this.delayRolloutTimeMillis = joinConfig?.useKeyDelay ?? 1000;
9797
this.transport.on(KeyTransportEvents.ReceivedKeys, this.onNewKeyReceived);
9898
this.transport.start();
99-
100-
this.ensureMediaKey();
10199
}
102100

103101
public leave(): void {

0 commit comments

Comments
 (0)