Commit graph

181 commits

Author SHA1 Message Date
Bruno Windels 24cb9e3f5c only increment sent counter after successful send
otherwise the message doesn't get sent after coming back online
2020-05-07 18:46:16 +02:00
Bruno Windels 52e2d3203e also make filter request interruptable 2020-05-07 00:04:41 +02:00
Bruno Windels cc19063c79 set timeout on /sync request
as long running requests run higher risk of getting wedged
2020-05-06 23:50:12 +02:00
Bruno Windels 2010704f14 fix only reconnecting the first time 2020-05-06 20:58:48 +02:00
Bruno Windels f8f13f54be fix timeouts not working
and also not being handled in the Reconnector
2020-05-06 19:38:33 +02:00
Bruno Windels 3adc609e07 implement session status bar, with feedback on connection status 2020-05-05 23:16:51 +02:00
Bruno Windels 0eefc88fe3 waitForRetry doesn't reject when aborted 2020-05-05 23:13:41 +02:00
Bruno Windels 8e9c76c26b options is the 5th arg 2020-05-05 23:13:05 +02:00
Bruno Windels 4de29779c7 also abort timeout timer when response is rejected 2020-05-05 23:12:46 +02:00
Bruno Windels f90b435362 No need for Offline state if we're always in Waiting really 2020-05-04 23:42:34 +02:00
Bruno Windels 28bed56b5a prevent closing more than once 2020-05-04 22:21:56 +02:00
Bruno Windels 1fa14a99e9 correctly wait for catchup sync 2020-05-04 19:38:23 +02:00
Bruno Windels a19e541e1e less http specific 2020-04-22 20:49:21 +02:00
Bruno Windels 3359c6950f typo (this made the loadStatus undefined :/) 2020-04-22 20:49:03 +02:00
Bruno Windels 08b1c02af7 remove start value, can be hardcoded for now
also fix params in wrong order this way
2020-04-22 20:48:49 +02:00
Bruno Windels f826258c75 null doesn't set queryParams to {} here, so revert explicitly 2020-04-22 20:47:53 +02:00
Bruno Windels 174fd3ea4a don't assume options 2020-04-22 20:47:46 +02:00
Bruno Windels 3f840d9d33 simple unit test for hsApi 2020-04-22 20:47:31 +02:00
Bruno Windels 277c8af628 Headers is a DOM specific class, use Map instead in HomeServerApi 2020-04-22 20:46:47 +02:00
Bruno Windels f4983b5ba6 port SessionPickerViewModel to SessionContainer 2020-04-20 22:49:14 +02:00
Bruno Windels bb7fca0592 support deleting the session from the container 2020-04-20 22:29:25 +02:00
Bruno Windels a097929dbd rename lowercase filenames of classes to camelcase like class 2020-04-20 21:41:10 +02:00
Bruno Windels 31f3886eba move EventEmitter to utils 2020-04-20 21:35:53 +02:00
Bruno Windels c379caf4c0 remove obsolete ifdef comments 2020-04-20 21:31:27 +02:00
Bruno Windels 0f29fdb24e some notes 2020-04-20 21:27:07 +02:00
Bruno Windels 001dbefbcf stop using default exports
because it becomes hard to remember where you used them and where not
2020-04-20 21:26:39 +02:00
Bruno Windels 164d9d594f finish implemenation of SessionContainer 2020-04-20 19:48:21 +02:00
Bruno Windels 87b23d062c fix imports after reshuffleling 2020-04-20 19:47:45 +02:00
Bruno Windels 72b0eefccb replace isSyncing and emit with an Observable SyncStatus 2020-04-19 19:52:26 +02:00
Bruno Windels 80f7caadbe rename SessionsStore to SessionInfoStorage 2020-04-19 19:13:38 +02:00
Bruno Windels 8c56ac3e4f rename NetworkError to ConnectionError 2020-04-19 19:05:12 +02:00
Bruno Windels 8c5411cb7d moar WIP 2020-04-19 19:02:10 +02:00
Bruno Windels 1f15ca6498 more WIP 2020-04-18 19:16:16 +02:00
Bruno Windels 378b75c98a more WIP and breakage 2020-04-09 23:19:49 +02:00
Bruno Windels ef267ca331 WIP2 2020-04-05 15:11:15 +02:00
Bruno Windels c980f682c6 create DOMClock, abstraction of clock functionalities for DOM 2020-04-04 17:34:46 +02:00
Bruno Windels bc69e49cfb WIP2 2020-03-31 10:13:25 +02:00
Bruno Windels b6a5a02a33 WIP 2020-03-30 23:56:03 +02:00
Bruno Windels e4563135bf look at prev_content when handling member events 2020-03-30 21:59:44 +02:00
Bruno Windels c830f50325 catch errors while persisting a new message 2020-03-30 21:33:04 +02:00
Bruno Windels 234c260339 dont modify fragments in comparer until txn succeeds 2020-03-30 20:46:52 +02:00
Bruno Windels 73ea09f668 Handle sync ordering vs back-fill ordering (see synapse #7164) resulting in dupe events
Also extra robustness while filling a gap

ignore duplicate events from synapse instead considering them an
overlapping event with the adjacent fragment
2020-03-30 20:37:36 +02:00
Bruno Windels 8354c58c07 also look for remote echos based on event_id 2020-03-23 23:00:33 +01:00
Bruno Windels f02641c808 look for transaction_id in /messages response to delete pending events 2020-03-22 00:07:37 +01:00
Bruno Windels 6d68ec1bac move fillGap to room 2020-03-21 23:40:40 +01:00
Bruno Windels 44760a9f82 Revert "add logging related to fragments"
This reverts commit 2f355cabef.
2020-03-21 10:47:35 +01:00
Bruno Windels c4a5de20c0 update previous fragment in comparer when appending a new line fragment 2020-03-21 10:45:09 +01:00
Bruno Windels 2f355cabef add logging related to fragments
both when rebuilding and when sorting will be used
2020-03-20 20:23:07 +01:00
Bruno Windels 7e8cc7ae00 need to return the response here, not the request wrapper
we were reading back a remote id of undefined because of this,
so when for some reason we never receive the message down from sync,
the pending message keeps sending on every load. The server ignores
the send though, because the transaction id is already used, and it returns
the remote id of the event that was already sent the previous time, but
as we were not storing this remote id, we'd just try again and again.

not receiving it through sync could have happened when we were sending a bunch of events
and then receiving (this is how we encountered this bug, while trying to repro another) the
response, but not yet the sync for the message that got wedged. Then we typed stuff on another client
so we would get a limited response for that room, and boom, we would not get the remote echo of the
event that was already sent (but because of this bug we didn't store the remote id) but no echo received yet (when we remove the pending event),
so it gets wedged!
2020-03-17 00:11:50 +01:00
Bruno Windels b69efc3425 fix errors when replaying 2020-03-17 00:07:54 +01:00