Commit Graph

11 Commits (9a126795a81d13aba2d331b38df75878682d54a1)

Author SHA1 Message Date
Michael Telatynski 6bc8080ec5
Merge pull request #28387 from element-hq/t3chguy/knip2 2024-11-12 09:01:24 +00:00
Robin d0cddc5b66
Feed events to widgets as they are decrypted (even if out of order) (#28376)
* Refactor feeding of events to widgets

This is a pure refactor with (hopefully) no behavior changes.

* Feed events to widgets as they are decrypted (even if out of order)

The code that feeds events to widgets tries to enforce that only events from the end of the timeline will be passed through. This is to prevent old, irrelevant events from being passed to widgets as the timeline is back-filled. However, since encrypted events need to be decrypted asynchronously, it's not possible to feed them to a widget in a strictly linear order without introducing some kind of blocking or unreliable delivery. This code has been dropping events when they're decrypted out of order, which we consider to be an undesirable behavior.

The solution provided here is that, to reflect the asynchronous nature of decryption, encrypted events that arrive at the end of the timeline will be fed to a widget whenever they finish decrypting, even if this means feeding them out of order. For now we're not aware of any widgets that care about knowing the exact order of events in the timeline, but if such a need reveals itself later, we can explore adding ordering information to this part of the widget API.

* Add braces to if
2024-11-08 14:35:47 +00:00
Michael Telatynski 1c06ebadcd
Avoid double exports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-11-05 18:36:26 +00:00
Hugh Nimmo-Smith c23c9dfacb
Use new CryptoApi.encryptToDeviceMessages() to send encrypted to-device messages from widgets (#28315) 2024-10-30 09:37:23 +00:00
Florian Duros 7de5c84b3d
Add back unencrypted path in `StopGapWidgetDriver.sendToDevice` (#28295) 2024-10-25 13:07:45 +00:00
Florian Duros 1ec2f9261f
Replace `IBootstrapCrossSigningOpts` by `BootstrapCrossSigningOpts` to use CryptoApi type instead of old crypto type. (#28263) 2024-10-22 09:18:30 +00:00
Florian Duros 4a1f86f273
Remove `MatrixClient.getDehydratedDevice` call (#28254) 2024-10-22 08:09:07 +00:00
Michael Telatynski 6c6bf811a6
Migrate to stylistic
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 14:34:01 +01:00
Florian Duros 7236953d07
Remove references to `MatrixClient.crypto` (#28204)
* Remove `VerificationExplorer`

* Remove `remakeolm` slash command

* Remove call to `crypto.cancelAndResendAllOutgoingKeyRequests`

* Remove crypto mock in `LoginWithQR-test.tsx`

* Remove `StopGadWidgetDriver.sendToDevice`

* Remove remaining mock
2024-10-17 08:50:44 +01:00
Michael Telatynski f0ee7f7905
Merge matrix-react-sdk into element-web
Merge remote-tracking branch 'repomerge/t3chguy/repomerge' into t3chguy/repo-merge

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 15:32:09 +01:00
Michael Telatynski b084ff2313
Prepare for repo merge
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 11:35:21 +01:00