Matthew Hodgson
db9ba52873
make presence work when peeking. fixes https://github.com/vector-im/vector-web/issues/780
2016-03-15 21:50:18 +00:00
David Baker
d13fbd0e3e
fix lint
2016-03-14 17:13:01 +00:00
David Baker
5e18c84e53
Add a delay before we start polling the connectivity check endpoint to avoid tightlooping if the conn check succeeds but /sync etc fails.
2016-03-14 16:50:00 +00:00
Richard van der Hoff
78eded3bbd
Emit an event when a local-echo is turned into a proper event
...
We need to trigger an update of the timeline when this happens, so raise an
event for it.
2016-03-08 15:00:19 +00:00
Richard van der Hoff
0034bdf4ad
Set the back-pagination token before raising Room.timelineReset
...
This fixes another race condition on gappy syncs, wherein we weren't
back-paginating back from the start of the gappy sync.
2016-03-01 13:35:22 +00:00
Richard van der Hoff
e287e7591b
Merge pull request #91 from matrix-org/rav/fix_stuck_pagination_after_join
...
Don't reset the timeline when we join a room after peeking
2016-03-01 09:10:21 +00:00
Richard van der Hoff
a14f9e6d1c
Don't reset the timeline when we join a room after peeking
...
If we've already got all the events in a limited sync, there is no need to reset
the timeline.
2016-02-29 17:25:20 +00:00
Richard van der Hoff
abf908b14f
Fire a 'Room.timelineReset' event when we get a gappy sync
...
We need to reset things at the UI level when we get a gappy sync, so give the
clients something to listen for.
Also add a bunch of tests for that bit of code.
2016-02-25 18:26:11 +00:00
Richard van der Hoff
6a19e08381
lint
2016-02-24 15:58:35 +00:00
Richard van der Hoff
43f392955d
Check filters before we reuse them
...
Make sure that we check the content of existing filters before we blindly reuse
them.
Fixes https://github.com/vector-im/vector-web/issues/988
2016-02-24 15:23:42 +00:00
Richard van der Hoff
785326376a
Merge pull request #80 from matrix-org/rav/keep_redactions
...
Keep redacted events in the timeline
2016-02-17 21:41:42 +00:00
Richard van der Hoff
6f3bdcfbb6
Remember to propagate Room.redaction
2016-02-16 16:03:40 +00:00
David Baker
8614632e54
No ES6 in the JS SDK and other lint warnings.
2016-02-10 10:48:03 +00:00
David Baker
c3796c61cd
Use a promise for when the connection comes back
2016-02-10 10:40:42 +00:00
David Baker
6224aff882
improve comment as per PR review
2016-02-10 10:09:39 +00:00
David Baker
e506a1b2de
Oops: set keepAliveTimer!
2016-02-09 17:39:30 +00:00
David Baker
b40a6d1481
remember bound function as it returns a new reference each time
2016-02-09 17:06:20 +00:00
David Baker
3cfc4f8ba5
Add short delay to treating a 400 as a success to avoid hammering in a loop.
2016-02-09 16:17:52 +00:00
David Baker
4d46251b15
Just use the keepalive logic to recover from lost internet connections.
...
* This should fix the problem where we could end up with two concurrent syncs
due to both retrying /sync and hitting /versions. There is now one and only
one mechanism for connection recovery.
* Hit /versions a little less often as I think every 2 seconds is a little
over-aggressive. Also introduce randomness to minimize possibility of
thundering herds.
* Add a listener for the 'online' event in case any browser is nice enough
to ever fire it.
* Treat a 400 response from /versions as successful since older synapses
will not support it.
2016-02-09 16:08:14 +00:00
David Baker
977e33f1bd
Merge pull request #76 from matrix-org/dbkr/sync_gutwrench_less
...
Change the sync state tracking slightly to gut-wrench client a bit less
2016-02-08 14:18:59 +00:00
David Baker
daa0e6291e
Add docs for STOPPED state and correct js doc
2016-02-08 14:18:15 +00:00
Daniel Wagner-Hall
02196416e4
Use /r0 or /unstable for all requests
2016-02-08 11:15:30 +00:00
David Baker
fc730d4637
remove unintentional log line
2016-02-05 14:13:14 +00:00
David Baker
41d5917bb6
Change the sync state tracking slightly to gut-wrench client a bit less
...
Should be functionally identical outside of client and sync.
2016-02-05 14:09:58 +00:00
Richard van der Hoff
0a7efe3e8b
Fix undefined variable accesses
...
fix a merge error in the last commit
2016-01-30 00:44:40 +00:00
Richard van der Hoff
2af947fc1a
Stash the old next_batch token for pagination
...
When we reset the live timeline due to a limited sync, stash next_batch as the
pagination token so that we can work forward to the new live timeline.
(Note that this requires matrix-org/synapse#535 )
2016-01-30 00:12:31 +00:00
David Baker
3d5e2937e2
docstring
2016-01-29 11:29:14 +00:00
David Baker
bbf3b2637a
Re-apply: 5297855ad3
...
Separate the actual processing of the sync response from the loop doing the requests.
2016-01-29 11:25:01 +00:00
David Baker
04a1c4f1a2
Revert "Separate the actual processing of the sync response from the loop doing the requests."
...
This reverts commit 5297855ad3 .
Accidentally committed to wrong branch
2016-01-29 11:17:12 +00:00
David Baker
5297855ad3
Separate the actual processing of the sync response from the loop doing the requests.
2016-01-29 11:05:32 +00:00
Richard van der Hoff
a01501b42c
Address a number of review comments.
...
Make sure that room state is copied correctly when resetting the live
timeline.
Also comments and bits.
2016-01-26 18:09:15 +00:00
Richard van der Hoff
48d1bc3158
Fix incompatibility with peeking.
...
The peek code needs to make sure it sets the pagination token /after/ adding
the events to the timeline, otherwise it will get reset when the events
are added.
2016-01-26 11:21:49 +00:00
Richard van der Hoff
840b8f0bc0
Merge branch 'develop' into rav/context
...
Conflicts:
lib/models/room.js
2016-01-25 10:45:22 +00:00
Kegan Dougal
f8ec35691f
Interrupt /sync backoff when keep-alive succeeds in order to immediately retry if we were waiting
2016-01-21 18:02:26 +00:00
Kegan Dougal
c5e7df8975
Hit /versions instead of / since it is actually a known endpoint
2016-01-21 17:52:52 +00:00
Kegan Dougal
7bdab05785
Unbreak tests
2016-01-21 17:34:12 +00:00
Kegan Dougal
197144dcda
Implement a keep-alive timer for /sync requests
...
When a /sync request fails, we spin up a keep-alive poll to /_matrix/client/r0
which 400s. We treat any HTTP response code as a success for the purposes of
polling the server. When a successful poll is done, we shoot the current /sync
request in the head immediately (via a hacky abort() on the promise) and retry
the /sync.
2016-01-21 17:17:27 +00:00
Kegan Dougal
ff990914b2
Remove low client-side timeouts hack
2016-01-21 16:12:07 +00:00
David Baker
a24a9d35c4
Fix PR comments: typos and redundant line
2016-01-20 18:52:32 +00:00
David Baker
5ec0fce2a4
style
2016-01-20 17:19:26 +00:00
David Baker
8cb180525e
Add getter/setter for unread notif counts.
2016-01-20 17:16:20 +00:00
David Baker
b3c06dd723
Update for new unread count format
2016-01-20 15:59:06 +00:00
manuroe
80f7220a7b
Merge branch 'develop' into push-rules-settings
...
# Conflicts:
# lib/sync.js
2016-01-18 17:33:13 +01:00
Richard van der Hoff
706966ffe9
Support for non-contiguous event timelines
...
This provides optional support for fetching old events via the /context API,
and paginating backwards and forwards from them, eventually merging into the
live timeline.
To support it, events are now stored in an EventTimeline, rather than directly
in an array in the Room; the old names are maintained as references for
compatibility.
The feature has to be enabled explicitly, otherwise it would be impossible for
existing clients to back-paginate to the old events after a gappy /sync.
Still TODO here:
* An object which provides a window into the timelines to make them possible to
use. This will be a separate PR.
* Rewrite the 'EventContext' used by the searchRoomEvents API in terms of an
EventTimeline - it is essentially a subset.
2016-01-15 13:19:11 +00:00
Kegan Dougal
e4c38ac78c
Linting
2016-01-13 15:31:27 +00:00
Kegan Dougal
0bab00c47c
Add debug logging to sync polling. Add speculative fix for vector-im/vector-web#544
2016-01-13 13:17:21 +00:00
Matthew Hodgson
a79270b8f8
Merge pull request #61 from matrix-org/matthew/accountdata
...
implement account data
2016-01-13 12:43:53 +00:00
Matthew Hodgson
88c7293838
based on PR review, rewrite account_data support to avoid tracking the section that events came from, and instead having /sync results piped into the right bit of the room directly
2016-01-11 19:25:44 +00:00
Kegan Dougal
97003f7382
Use timeout=0 rather than timeout=1 because of SYN-588
...
Fixes https://github.com/vector-im/vector-web/issues/606
2016-01-11 16:33:43 +00:00
manuroe
5c59a2ea3e
Fixed MatrixClient pushRules method and ivar clash.
...
Added MatrixClient.setPushRuleEnabled method.
2016-01-11 17:00:05 +01:00