Richard van der Hoff
926fee8493
fix typo
2017-02-16 16:16:13 +00:00
Kegan Dougal
eedaacd256
Merge branch 'develop' into kegan/indexeddb
2017-02-16 16:10:56 +00:00
Kegan Dougal
e926aa1bf8
Explain limits on maxTimelineEntries
2017-02-16 15:49:13 +00:00
Richard van der Hoff
597f981fec
Poll /sync with a short timeout while catching up
...
On first connect, or after a disconnection, poll /sync with timeout=0 until
we get no to_device messages back. This will allow us to figure out whether we
have more to_device messages queued up for us on the server, which in turn will
help us fix a bug with clearing out one-time-keys too quickly.
2017-02-16 15:21:24 +00:00
Richard van der Hoff
777fdfbcfa
Correct/improve comments about sync states
2017-02-16 14:03:41 +00:00
Kegan Dougal
aafb587085
Don't break causality when rolling back state
...
We need to use the *previous* state when rolling back or else
causality breaks. Consider the messages:
- m.room.member : Alice
- Alice: 1
- Alice: 2
- m.room.member : Alice -> Bob
- Bob: 3
- Bob: 4
If we roll back 4 messages (to Alice: 2), we want the rolled
back m.room.member value to be "Alice" and NOT Bob. This
means we need to look at the previous state of the m.room.member
event and not the current state.
2017-02-16 12:35:34 +00:00
Kegan Dougal
1eb2576dbe
More copyyright headers on touched files
2017-02-16 11:31:33 +00:00
Kegan Dougal
9a9646d012
Review comments
2017-02-16 11:28:51 +00:00
Richard van der Hoff
8ecb05a094
Merge pull request #368 from matrix-org/rav/fix_coverage
...
Make test coverage work again
2017-02-15 20:40:09 +00:00
Richard van der Hoff
8c8ca0584f
fix package.json
2017-02-15 19:37:40 +00:00
Kegan Dougal
b02ba08abc
Remove debug comments
2017-02-15 16:53:31 +00:00
Richard van der Hoff
75d213f6b3
Make test coverage work again
...
* don't try to run npm under istanbul
* use _mocha instead of mocha because
https://github.com/gotwarlost/istanbul/issues/44#issuecomment-16093330
Also:
* write a text report for better travis
* On jenkins, clear out old coverage reports so that we don't pick up last
time's.
2017-02-15 16:52:19 +00:00
Kegan Dougal
9fdeb7a8e3
Add tests for the SyncAccumulator
2017-02-15 16:21:06 +00:00
David Baker
635b3dbccb
Merge pull request #367 from matrix-org/dbkr/event_sender_docs
...
Add docs to event
2017-02-15 15:01:40 +00:00
David Baker
e42af06609
spelling
2017-02-15 14:53:58 +00:00
David Baker
0416816329
Add docs to event
...
to say that sender won't always be set
2017-02-15 14:27:38 +00:00
David Baker
7f8f216263
Merge pull request #366 from matrix-org/rav/update_synctoken_more_often
...
Keep the device-sync token more up-to-date
2017-02-15 13:10:32 +00:00
Kegan Dougal
69ebcf08fc
Bugfix where, upon refresh, it was impossible to write to the db (clone errors)
2017-02-14 17:28:56 +00:00
Kegan Dougal
cbdb007b26
Persist receipt data
2017-02-14 16:51:27 +00:00
Kegan Dougal
a28c03a2f9
Remove TODO checks and change copyright
...
Manually tested and it appears that Synapse will indeed send
down the complete state upon rejoining a room. \o/
2017-02-14 15:42:53 +00:00
David Baker
94a8915f6c
Merge pull request #365 from matrix-org/rav/fix_devicelist_race_1
...
Fix race conditions in device list download
2017-02-14 10:46:48 +00:00
Richard van der Hoff
be7192082a
Keep the device-sync token more up-to-date
...
Update the sync token whenever the device list is in sync. Fixes
https://github.com/vector-im/riot-web/issues/3127 .
2017-02-13 18:56:49 +00:00
Richard van der Hoff
54297cacd1
Fix race when downloading initial device change list
...
Fixes a problem if the user initiates a device query before the /changes
response comes back.
2017-02-13 18:33:02 +00:00
Richard van der Hoff
82f5997e61
Fix race condition in device list query
...
Fix a race where device list queries completing out-of-order could lead to us
thinking that we were more in-sync than we actually were.
2017-02-13 18:33:02 +00:00
David Baker
4d2bc88305
Merge pull request #364 from matrix-org/dbkr/fix_unban
...
Fix the unban method
2017-02-13 18:06:35 +00:00
David Baker
cd8dfa331a
Fix the unban method
...
Which didn't work because of
https://github.com/matrix-org/synapse/issues/1860
2017-02-13 18:00:28 +00:00
Richard van der Hoff
45d22c6196
Merge pull request #362 from matrix-org/rav/no_freeze_on_device_download
...
Spread out device verification work
2017-02-13 11:54:59 +00:00
Richard van der Hoff
eeed11e283
Fix integ tests
...
Two tweaks:
* `httpBackend.flush()` now returns a value, so we can't pass its result
straight into `done()`.
* In one of the megolm tests, we need to wait for the device query to finish
before marking the relevant device as known. One easy way to do this is
actually to try sending the message first - that will block until the device
query completes.
2017-02-13 11:41:13 +00:00
Richard van der Hoff
476333b3fc
Fix comment typo
2017-02-13 11:28:19 +00:00
Kegan Dougal
c7fdbd1c64
Persist notification counts and treat them as clobbers
2017-02-10 17:15:17 +00:00
Kegan Dougal
0b9bc2a7a7
Remove old (de)serialize stuff. Inline more things
2017-02-10 16:51:55 +00:00
Kegan Dougal
6949b6666e
Revert non-functional changes to other files
2017-02-10 16:13:13 +00:00
Kegan Dougal
a380b6803a
Merge branch 'develop' into kegan/indexeddb
2017-02-10 16:11:05 +00:00
Kegan Dougal
6696c712d3
Bug fixes with the accumualtor
...
- Only take invite_state as there is a Room attached to invite objects
which then fail to be persisted.
- Store empty string state keys!
2017-02-10 15:19:50 +00:00
Kegan Dougal
0d4833d6e3
Make it all work!
2017-02-10 14:27:56 +00:00
Richard van der Hoff
207bce61ad
Spread out device verification work
...
Avoid a big freeze when we process the results of a device query, by splitting
the work up by user.
2017-02-10 13:37:41 +00:00
Richard van der Hoff
0f1d367b80
Merge pull request #361 from matrix-org/rav/moar_uisi_logging
...
Clean up/improve e2e logging
2017-02-10 10:51:19 +00:00
Richard van der Hoff
bf2e6a33c2
Minor post-review tweaks
2017-02-10 10:37:46 +00:00
Richard van der Hoff
b66fed9ae9
Clean up/improve e2e logging
...
In an attempt to make the rageshake logs a bit more useful, try to make the
logging a bit saner. Firstly, make sure we log every decryption failure, and
log it exactly once, rather than in several places. Also record when we receive
megolm keys. Also add some more explicit logging in the sync loop.
2017-02-09 17:36:22 +00:00
Richard van der Hoff
4897287fda
Merge pull request #360 from matrix-org/rav/fix_decrypt_after_keys_arrive
...
Fix decryption of events whose key arrives later
2017-02-09 17:33:45 +00:00
Kegan Dougal
cc1daa5a54
Fix tests due to API breakage
2017-02-09 17:32:23 +00:00
Kegan Dougal
6e7b9472be
Add a save() method to the store interface
...
Originally I just piggy-backed off setSyncToken() but this was]
non-obvious that depending on the store it might do writes to the
database. This was exacerbated by the fact that the save needs to
be done at the "right time" (after sync data is accumulated and
after the sync response has been processed) and setSyncToken was
being called too early.
A save() method fixes both these things.
2017-02-09 17:25:40 +00:00
Richard van der Hoff
e13ed6436e
Fix decryption of events whose key arrives later
...
Re-fixes https://github.com/vector-im/riot-web/issues/2273 .
And test it this time.
2017-02-09 16:12:43 +00:00
Kegan Dougal
db24690d9b
Fix broken tests
2017-02-09 13:37:47 +00:00
Kegan Dougal
3a39fd23c4
Add glue code to hook up the sync accumulator
...
The user of the SDK is responsible for DIing the main components:
let store = new IndexedDBStore(
new IndexedDBStoreBackend(window.indexedDB),
new SyncAccumulator(),
});
await store.startup();
let client = matrix.createClient({store: store});
2017-02-09 12:49:10 +00:00
Richard van der Hoff
d471277031
Merge pull request #359 from matrix-org/rav/remove_redundant_invalidate
...
Invalidate device lists when encryption is enabled in a room
2017-02-09 12:36:02 +00:00
Kegan Dougal
ef57b88343
Remember next_batch tokens in the accumulator. Glue it in to SyncApi
2017-02-09 11:05:16 +00:00
Kegan Dougal
1e3fcdc109
Implement getJSON()
2017-02-09 10:50:31 +00:00
Kegan Dougal
606b9718a3
Implement timeline accumulation
...
Including pruning based on maxTimelineEntries
2017-02-09 10:14:10 +00:00
Kegan Dougal
ab6e30da28
Merge branch 'develop' into kegan/indexeddb
2017-02-09 09:57:36 +00:00