Commit graph

792 commits

Author SHA1 Message Date
Bruno Windels a5e6294593 test accepted/rejected fields in invite tests 2021-04-21 15:32:13 +02:00
Bruno Windels 465e0c191f add logging to accepting or rejecting an invite 2021-04-21 15:31:55 +02:00
Bruno Windels 5ce138539b network calls to accept and reject invite 2021-04-20 19:02:45 +02:00
Bruno Windels bb1c64e1ac add left panel tile view model for invites
and track in-progress state in Invite so it is shared by left panel
and open invite
2021-04-20 19:01:40 +02:00
Bruno Windels ee98eaa640 restore invites when loading the session 2021-04-20 18:09:48 +02:00
Bruno Windels 5876e5200b don't need this for now 2021-04-20 18:03:27 +02:00
Bruno Windels 4560e0e491 split sync lifecycle steps out in different methods to keep it smaller 2021-04-20 17:57:17 +02:00
Bruno Windels 09ac503e22 add test for removing invite 2021-04-20 17:57:03 +02:00
Bruno Windels d1dc4c9e9c remove extra layer of log items 2021-04-20 17:56:53 +02:00
Bruno Windels a072426e07 integrate invites into the sync lifecycle and expose them on session 2021-04-20 17:39:46 +02:00
Bruno Windels de125441d1 add write/load test for Invite 2021-04-20 17:34:45 +02:00
Bruno Windels 39c772300a fix indenting 2021-04-20 16:21:35 +02:00
Bruno Windels 81a35639ba add Invite class
calculating the room name, avatar, etc ...
with empty accept and reject methods for now
2021-04-20 16:21:27 +02:00
Bruno Windels 7c4a6fbe4b invite store 2021-04-20 13:13:56 +02:00
Bruno Windels d414fb6b94 sync can also stop without an error 2021-04-09 19:50:22 +02:00
Bruno Windels ba38ce7976 use canonical way of check error type 2021-04-09 16:30:53 +02:00
Bruno Windels b852feeb9c ConnectionError isn't throw from start, but sets sync.error 2021-04-09 16:28:14 +02:00
Bruno Windels 4b19e3c498 remove unused member 2021-04-09 16:27:25 +02:00
Bruno Windels 606e30fed2 make comment easier to read 2021-04-09 15:24:10 +02:00
Bruno Windels c36e812360 move RequestWrapper to own file
and add tests, improve comments, and and don't use timeout connection
error as that's not what happens if aborted request from service worker
is reported as TypeError either.
2021-04-09 15:15:28 +02:00
Bruno Windels 2b1f4866a9 map unexpected fetch AbortError to ConnectionError, so doesn't stop sync 2021-04-09 14:25:19 +02:00
Bruno Windels e17fb24bd8 also await sharing the key in encrypt 2021-04-09 10:37:55 +02:00
Bruno Windels 13f20cdd26 wait for running key share operation in encrypt 2021-04-09 10:37:43 +02:00
Bruno Windels bdc8451c4a better logging 2021-04-08 18:39:52 +02:00
Bruno Windels 9e697c6cbe don't add the pending event again if removed already, fixes #289 2021-04-08 18:36:26 +02:00
Bruno Windels f976eeaf13 rename SortedArray.replace to update 2021-04-08 18:36:09 +02:00
Bruno Windels 863f659774 fall back to bare userid for local echo profile 2021-04-08 16:30:46 +02:00
Bruno Windels 813be758d7 we should prefer to not pick the event itself if it's a member event
but still fall back to that if it's a new join
2021-04-08 15:33:21 +02:00
Bruno Windels f67ccc18f4 take most recent member rather than first in timeline for inline lookup
noticed this while inspecting the code, looks related to #269
2021-04-08 12:57:10 +02:00
Bruno Windels 6f37c232f7 Don't cache members that haven't been written yet - fixes #271 2021-04-08 12:56:24 +02:00
Bruno Windels 97030f7ef3 add https to homeserver if not already a valid url 2021-04-01 17:44:55 +02:00
Bruno Windels c06659c0be support checking if pusher is still present on server 2021-04-01 14:59:46 +02:00
Bruno Windels 76fdbbb2fe shorten this 2021-03-23 18:20:23 +01:00
Bruno Windels d5b12fa7f9 log endpoint hostname 2021-03-23 18:20:23 +01:00
Bruno Windels 3313d0623a thinko with push checks 2021-03-23 18:20:23 +01:00
Bruno Windels 630e61a674 support enabling/disabling push notifs on a session 2021-03-23 18:20:23 +01:00
Bruno Windels d4fc08c06b put pusher bits in separate class to enable and disable on the HS 2021-03-23 18:20:23 +01:00
Bruno Windels 5d55f6d78c log app version when opening session 2021-03-15 16:55:14 +01:00
Bruno Windels d88720a18f don't start key backup operation if not enabled 2021-03-15 16:54:43 +01:00
Bruno Windels 2b24de838a actually log initial session backup enabling rather than using null log 2021-03-15 15:24:57 +01:00
Bruno Windels 325d237302 simpler optional log 2021-03-15 15:23:46 +01:00
Bruno Windels 8684d6b5e5 some fixes 2021-03-15 15:23:35 +01:00
Bruno Windels fcc06b2754 WIP to add logging to decryption and fetching key backups 2021-03-15 14:39:42 +01:00
Bruno Windels f2dc7728a5 notifyRoomKey was a better name 2021-03-15 14:36:38 +01:00
Bruno Windels 96f060c0a9 also retry decryption for backfilled entries
as their event ids won't be stored along the missing key (we only store
synced items so we don't fill up the missing event ids in the store
with undecryptable backfilled event ids)
2021-03-15 14:33:14 +01:00
Bruno Windels 4b62e0a2ce extract retry event ids for key before overwriting key on key backup 2021-03-15 13:38:27 +01:00
Bruno Windels b4f4594ead
Merge pull request #267 from vector-im/bwindels/fix-223
consider all server errors as connection errors
2021-03-09 11:54:21 +00:00
Bruno Windels 0bd0f788e3 consider all server errors as connection errors
even if they do have an errcode

fixes #223
2021-03-09 12:51:34 +01:00
Bruno Windels 8cd6a7988a on fill server OTKs up to max/2
so we don't remove keys for yet to be received
olm messages that claimed a key
2021-03-09 12:33:31 +01:00
Bruno Windels 0b211e8e1c simplify this code now that it is only doing one thing 2021-03-09 12:27:51 +01:00
Bruno Windels 30b056af1c let devices know we can't claim their OTKs 2021-03-08 16:19:46 +01:00
Bruno Windels 30525cf391 oops, missing await to store new olm sessions! 2021-03-08 16:19:28 +01:00
Bruno Windels a3987a655e log if a connection error is a timeout 2021-03-08 15:35:34 +01:00
Bruno Windels cfb521ef10 fix ll events being duplicated in the timeline preventing name changes 2021-03-05 20:10:57 +01:00
Bruno Windels b37a586094 add clarification why this doesn't need to also check member changes 2021-03-05 17:04:18 +01:00
Bruno Windels f4a7782298 add MemberWriter, and only return MemberChange's if something changed 2021-03-05 17:03:45 +01:00
Bruno Windels e97ed9ae45 fix session test, just barely 2021-03-05 17:03:12 +01:00
Bruno Windels 49fc971d67 cleanup 2021-03-05 17:02:57 +01:00
Bruno Windels f98f690b49 no need to "serialize" here every time, it just adds noise 2021-03-05 17:02:26 +01:00
Bruno Windels 4e0bd16a4e reuse LRU Cache for session cache 2021-03-05 17:01:38 +01:00
Bruno Windels c1c8f11bf7 fix TypeError when syncing a new e2ee room with keys at the same time 2021-03-05 11:50:54 +01:00
Bruno Windels 5682e715e6 prevent multiple checks if a new room key is better 2021-03-05 10:07:48 +01:00
Bruno Windels d08c41c13a probably best to close this 2021-03-04 22:09:11 +01:00
Bruno Windels 932d26ed8c detect the webkit bug, and await a bogus request when opening a txn 2021-03-04 19:49:13 +01:00
Bruno Windels e0d14207ac make opening a txn async again
as we'll need to await a bogus request first thing after opening the txn

funny enough, we originally made it sync to accommodate the same bug
in safari, but that didn't prevent any microtask being awaited
before scheduling a request in the calling code closing the txn.

We'll await a bogus request within the transaction class now so it
doesn't depend on the calling code
2021-03-04 19:47:02 +01:00
Bruno Windels 4445b1ee01 store key share operations before tracking the room 2021-03-03 18:56:16 +01:00
Bruno Windels aa23672694 forgot await, this broke updating the timeline when fetching key backup 2021-03-03 17:50:38 +01:00
Bruno Windels b012b1dc99 Show correct profile for pending messages 2021-03-03 14:53:22 +01:00
Bruno Windels 6771303086 make a method to determine only the retry entries rather 2021-03-03 14:03:50 +01:00
Bruno Windels 404dbcd065 english 2021-03-03 14:03:50 +01:00
Bruno Windels e7598b9c76 only request key backup for events that are UTD 2021-03-03 14:03:50 +01:00
Bruno Windels 30481a5a9e add logging to key sharing and discarding in reaction to member changes 2021-03-03 14:03:50 +01:00
Bruno Windels f3c49e51f2 add, don't replace timeline retry entries
also, filter out any that have been decrypted already
2021-03-03 14:03:50 +01:00
Bruno Windels 43547e0901 don't add retried entries to the timeline if they are not already there 2021-03-03 14:03:50 +01:00
Bruno Windels 7f1cdf6841 also decrypt all matching timeline entries when new key 2021-03-03 14:03:50 +01:00
Bruno Windels 3671574547 comment about session backup 2021-03-03 14:03:50 +01:00
Bruno Windels 3bfe52b1dc filter encrypted events before deciding to decrypt or not 2021-03-03 14:03:50 +01:00
Bruno Windels 9702c4fd64 more logging in sync write 2021-03-03 14:03:50 +01:00
Bruno Windels 8d7cb2a39a remove unused imports 2021-03-03 14:03:50 +01:00
Bruno Windels e85844f482 don't redeclare retryEntries, or they won't get passed to writeSync 2021-03-03 14:03:50 +01:00
Bruno Windels 56db210763 attempt at fixing https://github.com/vector-im/hydrogen-web/issues/245 2021-03-03 14:03:50 +01:00
Bruno Windels e29bc6710a bring back missing import 2021-03-03 14:03:50 +01:00
Bruno Windels c6db23bcfb WIP to store missing session event ids 2021-03-03 14:03:50 +01:00
Bruno Windels 3fa2d22015 remove isTimelineOpen flag and rather do the check to verify in Room
flags are ugly, let's avoid them where we can
2021-03-03 14:03:50 +01:00
Bruno Windels 265a9bd993 applyToEntries does not return anything 2021-03-02 19:39:04 +01:00
Bruno Windels 10003e7d3a also sync room not in the rooms section but with new room keys 2021-03-02 19:39:04 +01:00
Bruno Windels 8d080163b3 reattempt decryption for timeline items 2021-03-02 19:39:04 +01:00
Bruno Windels 061e7abd50 don't break on empty room sync response 2021-03-02 19:39:04 +01:00
Bruno Windels 8a39c16a38 fix name conflict with _sessionInfo in parent class 2021-03-02 19:39:04 +01:00
Bruno Windels a536ea7742 comment to explain replay attack better 2021-03-02 19:39:04 +01:00
Bruno Windels a33200d926 fix sender key lookup for room key coming from olm 2021-03-02 19:39:04 +01:00
Bruno Windels fb446167f6 make new sync room keys available during decryption of same sync 2021-03-02 19:39:04 +01:00
Bruno Windels 8208464653 only log and clear when actually needed 2021-03-02 19:37:11 +01:00
Bruno Windels e1821b1753 prevent linking fragment to itself when filling a gap
this seems to happen when at the beginning of the timeline and
make the timeline reader go into an infinite loop
2021-03-02 19:31:00 +01:00
Bruno Windels 6f6346d5c3 detect when hitting beginning of timeline when loading timeline 2021-03-02 19:29:55 +01:00
Bruno Windels 636208a321 show all event type counts in device msg logging 2021-02-24 20:56:20 +01:00
Bruno Windels 1e209b8613 Prevent pending events being skipped when remote echo comes
This fixes #241
2021-02-24 14:14:04 +01:00
Bruno Windels b63ad629a7 can remove console logging here now 2021-02-24 11:25:26 +01:00
Bruno Windels 48c361531d log clearing unread state of a room 2021-02-24 11:22:19 +01:00
Bruno Windels 376e59820c more info when logging gap fills 2021-02-24 11:22:07 +01:00