* Add `getUserDeviceInfo` to `CryptoBackend` and old crypto impl
* Add `getUserDeviceInfo` WIP impl to `rust-crypto`
* Add tests for `downloadUncached`
* WIP test
* Fix typo and use `downloadDeviceToJsDevice`
* Add `getUserDeviceInfo` to `client.ts`
* Use new `Device` class instead of `IDevice`
* Add tests for `device-convertor`
* Add method description for `isInRustUserIds` in `rust-crypto.ts`
* Misc
* Fix typo
* Fix `rustDeviceToJsDevice`
* Fix comments and new one
* Review of `device.ts`
* Remove `getUserDeviceInfo` from `client.ts`
* Review of `getUserDeviceInfo` in `rust-crypto.ts`
* Fix typo in `index.ts`
* Review `device-converter.ts`
* Add documentation to `getUserDeviceInfo` in `crypto-api.ts`
* Last changes in comments
* stats: calculate received media by ignore not added tracks
* stats: fix lint issue
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* Element-R: implement `{get,set}TrustCrossSignedDevices`
A precursor to https://github.com/vector-im/element-web/issues/25092
* Pull out new `DeviceVerificationStatus`
Define a new base class to replace `DeviceTrustLevel`. The intention is to have
a cleaner interface which is easier to expose from the new crypto impl
* Define, and implement, a new `CryptoApi.getDeviceVerificationStatus`
This is similar to `checkDeviceTrust`, which we're deprecating, but:
* is `async`, meaning we can implement it in Rust
* Returns a `DeviceVerificationStatus` instead of a `DeviceTrustLevel`
* Returns `null` rather than "not verified" if the device is unknown
* add some tests
* Export DeviceVerificationStatus as a proper class
... so that we can instantiate it in tests
* stats: add max jitter and max packet loss
* stats: add test for max jitter and packet loss
* stats: add build summery report tests
* stats: switch to packetsLost instead of packetsTotal
`getCapabilities` exists now(?), but `setCodecPreferences` doesn't,
which means it would throw an error and fail the call.
Signed-off-by: Tulir Asokan <tulir@maunium.net>
* stats: Add Jitter stats
* Update src/webrtc/stats/trackStatsReporter.ts
Co-authored-by: Robin <robin@robin.town>
* stats: Fix typos in tests
* stats: differences between 0 and undefined in jitter val
---------
Co-authored-by: Robin <robin@robin.town>
Followup to #3275
Fixes a warning from webpack:
[element-js] WARNING in ../matrix-js-sdk/src/matrix.ts 46:0-61
[element-js] "export 'OutgoingRoomKeyRequest' was not found in './crypto/store/base'
* Pull `SecretStorageCallbacks` out of `ICryptoCallbacks`
* Pull the storage part of SecretStorage out to a new class
* Move SecretSharing to a separate class
* Move `ISecretRequest` into `SecretSharing.ts`
* Pull out ISecretStorage interface, and use it
* Mark old `SecretStorage` as deprecated, and rename accesses to it
* Move a `SecretStorage` unit test into its own file
* Use new `SecretStorage` in a couple of places
* add some more unit tests
* Fix test file name
... to match the unit under test
* even more tests
* Add a load of comments
* Rename classes
* Fix some broken tsdoc links
* fix broken test
* Fix compaints about superlinear regex
* just one more test
The only implementation of this is an async function, but I can’t await it because the interface hides the return type.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Export type for return of getCapabilities()
Renamed because it clashes with ICapabilities from embedded
* Export type for return of getCapabilities()
Renamed because it clashes with ICapabilities from embedded
* Rename to Capabilities
* Retry processing potential poll events after decryption
* Point `typedoc` at `matrix.ts`, not `index.ts` (#3239)
This gets rid of the rather pointless "default" module in the generated docs.
* Split up, rename, and move `ISecretStorageKeyInfo` (#3242)
* Move SecretStorageKeyInfo interfaces out to a new module
* Replace usages of ISecretStorageKeyInfo with SecretStorageKeyDescription
* Skip clear text non-poll events
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* stats: add summery stats reporter
* stats: export summery stats reports
* stats: fix typo of event name
* stats: check promise condition for node 16 test linter
* stats: remove weak test to figure out memory leak
* stats: remove second weak test
* stats: add starting processing test
* stats: fix tests
* stats: fix typo in group call
* stats: fix stats report gathering test
* stats: reactivate promise merge
* stats: add track counter and track mute counter in summary stats
* stats: add summery calculation
* stats: fix PR issues
* stats: adjust summery reporter for inbound and mute state
* stats: check async state
* stats: switch from an `Or` to `And` condition for entire received media value
* stats: Add property description
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>