mirror of
				https://github.com/vector-im/element-web.git
				synced 2025-10-31 16:21:46 +01:00 
			
		
		
		
	Merge pull request #2113 from matrix-org/bwindels/e2e_enc_ll
Lazy loading: fix end-to-end encryption rooms
This commit is contained in:
		
						commit
						612077125e
					
				| @ -84,7 +84,7 @@ ConferenceCall.prototype._getConferenceUserRoom = function() { | ||||
|         preset: "private_chat", | ||||
|         invite: [this.confUserId] | ||||
|     }).then(function(res) { | ||||
|         return new Room(res.room_id, client.getUserId()); | ||||
|         return new Room(res.room_id, null, client.getUserId()); | ||||
|     }); | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -317,7 +317,7 @@ module.exports = React.createClass({ | ||||
| 
 | ||||
|                 // lazy load members if enabled
 | ||||
|                 if (SettingsStore.isFeatureEnabled('feature_lazyloading')) { | ||||
|                     MatrixClientPeg.get().loadRoomMembersIfNeeded(room.roomId).catch((err) => { | ||||
|                     room.loadMembersIfNeeded().catch((err) => { | ||||
|                         const errorMessage = `Fetching room members for ${this.roomId} failed.` + | ||||
|                             " Room members will appear incomplete."; | ||||
|                         console.error(errorMessage); | ||||
|  | ||||
| @ -43,27 +43,26 @@ export function markAllDevicesKnown(matrixClient, devices) { | ||||
|  * @return {Promise} A promise which resolves to a map userId->deviceId->{@link | ||||
|  * module:crypto~DeviceInfo|DeviceInfo}. | ||||
|  */ | ||||
| export function getUnknownDevicesForRoom(matrixClient, room) { | ||||
|     const roomMembers = room.getEncryptionTargetMembers().map((m) => { | ||||
| export async function getUnknownDevicesForRoom(matrixClient, room) { | ||||
|     const roomMembers = await room.getEncryptionTargetMembers().map((m) => { | ||||
|         return m.userId; | ||||
|     }); | ||||
|     return matrixClient.downloadKeys(roomMembers, false).then((devices) => { | ||||
|         const unknownDevices = {}; | ||||
|         // This is all devices in this room, so find the unknown ones.
 | ||||
|         Object.keys(devices).forEach((userId) => { | ||||
|             Object.keys(devices[userId]).map((deviceId) => { | ||||
|                 const device = devices[userId][deviceId]; | ||||
|     const devices = await matrixClient.downloadKeys(roomMembers, false); | ||||
|     const unknownDevices = {}; | ||||
|     // This is all devices in this room, so find the unknown ones.
 | ||||
|     Object.keys(devices).forEach((userId) => { | ||||
|         Object.keys(devices[userId]).map((deviceId) => { | ||||
|             const device = devices[userId][deviceId]; | ||||
| 
 | ||||
|                 if (device.isUnverified() && !device.isKnown()) { | ||||
|                     if (unknownDevices[userId] === undefined) { | ||||
|                         unknownDevices[userId] = {}; | ||||
|                     } | ||||
|                     unknownDevices[userId][deviceId] = device; | ||||
|             if (device.isUnverified() && !device.isKnown()) { | ||||
|                 if (unknownDevices[userId] === undefined) { | ||||
|                     unknownDevices[userId] = {}; | ||||
|                 } | ||||
|             }); | ||||
|                 unknownDevices[userId][deviceId] = device; | ||||
|             } | ||||
|         }); | ||||
|         return unknownDevices; | ||||
|     }); | ||||
|     return unknownDevices; | ||||
| } | ||||
| 
 | ||||
| function focusComposer() { | ||||
|  | ||||
| @ -23,7 +23,7 @@ function generateRoomId() { | ||||
| 
 | ||||
| describe('RoomList', () => { | ||||
|     function createRoom(opts) { | ||||
|         const room = new Room(generateRoomId(), client.getUserId()); | ||||
|         const room = new Room(generateRoomId(), null, client.getUserId()); | ||||
|         if (opts) { | ||||
|             Object.assign(room, opts); | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user