Bruno Windels
155f4beba8
add devicesForUser to fetch devices for untracked room
...
and use it when fetching senders to verify.
2022-11-10 17:53:11 +01:00
Bruno Windels
3d5a733267
split up _devicesForUserIds to reuse with different outdated criteria
2022-11-10 17:51:40 +01:00
Bruno Windels
c78bed846e
create unknown userIdentity when processing /keys/query response
...
this can happen when the room isn't tracked yet, which is a use case
we add support for in the next commit to verify senders that we don't
know about yet (e.g. when the room isn't tracked).
2022-11-10 17:28:18 +01:00
Bruno Windels
31579b4945
when tracking room, check roomId isn't on user we shouldn't share with
2022-11-10 17:26:50 +01:00
Bruno Windels
860f435855
log session afterSyncCompleted with normal log level
2022-11-10 17:26:21 +01:00
Bruno Windels
47d557b38d
expand comment how to handle race here
2022-11-10 17:20:59 +01:00
Bruno Windels
32835e26b9
adjust query for finding all state events of a type
...
we were looking for state events with state key between \0 and \u10FFFF
but an empty state key is also valid and would come before \0,
so allow empty state keys at the beginning of the range and include them
in the result by opening the lower bound.
2022-11-10 14:12:22 +01:00
Bruno Windels
ec4413550b
apply method rename (and catch errors)
2022-11-08 07:59:26 +01:00
Bruno Windels
f18aac017a
Merge pull request #819 from Kaki-In/recalculate_dm
...
Deleting leaving Heroes
2022-11-04 09:29:00 +00:00
Bruno Windels
cc70d44752
Merge pull request #913 from vector-im/bwindels/verify-unfetched-roomkey-senders
...
Verify unfetched roomkey senders
2022-11-04 09:04:41 +00:00
Bruno Windels
6c73c31735
take any decryption result, as it might now have a device to verify with
2022-11-03 17:32:01 +01:00
Bruno Windels
dd7bbe89ac
put detached logs in correct log item
2022-11-03 16:37:53 +01:00
Bruno Windels
dfede83c0b
log verifying senders in own item
2022-11-03 16:37:38 +01:00
Bruno Windels
2582600249
await operation, otherwise it keeps running during next sync
2022-11-03 16:37:20 +01:00
Bruno Windels
25c8f1cf04
always return a promise from this method, even if nothing to verify
2022-11-03 16:36:31 +01:00
Bruno Windels
cd5343414a
fix lint
2022-10-28 17:16:32 +02:00
Bruno Windels
6123d794da
also fetch unknown sender keys after decrypting entries outside of sync
2022-10-28 16:55:36 +02:00
Bruno Windels
dc25f96e73
update observed events as well
2022-10-28 16:55:20 +02:00
Bruno Windels
218d25d973
fix typo
2022-10-28 16:50:01 +02:00
Bruno Windels
d0122d17c0
don't assume timeline is open as have an await since last check
2022-10-28 16:49:33 +02:00
Bruno Windels
6dbcd46d80
cleanup of ctor
2022-10-28 16:31:00 +02:00
Bruno Windels
fcb1546fba
fetch keys as part of afterSyncCompleted step
...
remove needsAfterSyncCompleted step as well, performance difference
should be neglible
2022-10-28 16:25:31 +02:00
Bruno Windels
9c13b2b4a4
add method to fetch missing sender keys
2022-10-28 16:09:03 +02:00
Bruno Windels
c544819b42
rename and refactor method to verify locally known senders a bit
...
to differentiate with method to come for verifying senders that need to
be fetched still, and also allow reuse of verification logic by said new
method.
Also get rid of roomTracked flag in DecryptionResult as once we fetch
unknown senders (in commit to come), we should now always have a device,
unless the device isn't known on the server,
in which case we should shout.
2022-10-28 15:35:31 +02:00
Paulo Pinto
ad02c1625f
Encode SSO redirect URL as it may contain multiple query parameters
...
If the returnURL contains multiple query parameters (e.g. http://localhost:3000?foo=bar&bar=baz ), the homeserver would fail to correctly parse the URL, and only the first query parameter would be kept.
This is not an issue with the homeserver since the URL cannot be parsed in an unambiguous way, as the resulting URL would be:
https://example.com/_matrix/client/r0/login/sso/redirect?redirectUrl=http://localhost:3000?foo=bar&bar=baz
It's not possible to know whether the bar parameter is part of the "parent" URL, or part of the redirectUrl parameter.
----
To fix this, we now encode the redirectUrl parameter, which results in:
https://example.com/_matrix/client/r0/login/sso/redirect?redirectUrl=http%3A%2F%2Flocalhost%3A3000%2Fparent.html%3Ffoo%3Dbar%26bar%3Dbaz
This URL is correctly parsed by synapse.
2022-10-27 15:42:24 +01:00
Robert Long
e9b8cfbd9e
Member should be expired if there's no expires at key
2022-10-18 13:42:01 -07:00
Eric Eastwood
9ad5dd752c
Make no content PL fallback to 0
( #863 )
...
Make no `content` PL fallback to `0`. A valid PL event will have `content` but when you're just stubbing a PL event with an empty object `{}`, it doesn't need to exist and we can just as easily fallback to `0` PL level.
Split off from https://github.com/vector-im/hydrogen-web/pull/653
Changes necessary for https://github.com/matrix-org/matrix-public-archive/pull/57
2022-10-17 15:59:24 -05:00
Eric Eastwood
b4f4636555
Clarify that we no-op because if it's already aborted, that's what we wanted to do anyway ( #861 )
...
Split off from https://github.com/vector-im/hydrogen-web/pull/653
2022-10-17 15:56:34 -05:00
Bruno Windels
d37965ef91
return promise from _createSessionAfterAuth
2022-10-14 20:08:26 +02:00
Bruno Windels
4d5f202d94
Merge pull request #889 from vector-im/login_with_access_token
...
Add abiity to setup session immediately after registration without using /login
2022-10-14 08:54:52 +00:00
Bruno Windels
1f8a591cf6
dont need extra log depth
2022-10-14 10:28:42 +02:00
Bruno Windels
f46d2c1bf5
make startWithFinishedRegistration more broadly useful
2022-10-14 10:17:32 +02:00
RMidhunSuresh
dcba6d1500
Split method
2022-10-11 18:05:54 +05:30
RMidhunSuresh
a448c0218d
Fix missing semicolon
2022-10-11 18:01:54 +05:30
RMidhunSuresh
1f764664c9
Expose homeserver from Registration object
2022-10-11 17:58:33 +05:30
RMidhunSuresh
85a9a019c8
Don't inhibit login
2022-10-11 17:58:07 +05:30
R Midhun Suresh
8ef163353a
Merge pull request #793 from ibeckermayer/ibeckermayer/ts-conversion-observable-map
...
Typescript conversion for `src/observable/map`
2022-10-10 11:31:25 +05:30
Bruno Windels
7d10bec4ac
remove comment not relevant anymore
2022-10-07 10:59:13 +02:00
Bruno Windels
4350537004
cleanup
2022-10-07 10:58:12 +02:00
Bruno Windels
7936863934
remove options on dispose in Member
...
to ensure callback can't be called anymore, as we don't check
that the member argument is the one currently in GroupCall._members.
2022-10-07 10:07:46 +02:00
Bruno Windels
400df6a4ff
ensure removing expired members from call is always logged
...
also return the log item from logger.log so we can ref it
2022-10-07 10:07:10 +02:00
Bruno Windels
a07be730f9
bring member validity period back to 1h
2022-10-06 16:10:50 +02:00
Bruno Windels
a8ac504efd
explain when joinedData is set
2022-10-06 16:10:36 +02:00
Bruno Windels
7ae9c3af0d
renew at least 10s before own membership expires
2022-10-06 16:00:38 +02:00
Bruno Windels
c87fd4dfed
cleanup
2022-10-06 15:59:45 +02:00
Bruno Windels
2ecfb8f139
unify dispose logic in Member
2022-10-06 15:22:15 +02:00
Bruno Windels
7eb8015ace
ensure member.dispose is called when removing member
...
so expiration timer is always stopped
2022-10-06 15:20:05 +02:00
Bruno Windels
56ecd39f26
don't assume joinedData is set here
...
although not entirely sure why it wouldn't be
2022-09-30 17:46:57 +02:00
Bruno Windels
1dddabc038
make removing own membership a bit clearer in the logs
2022-09-30 11:21:26 +02:00
Bruno Windels
b694d13348
can be readonly
2022-09-30 11:20:33 +02:00
Bruno Windels
f2564ed5cc
also emit updates for expired, connected members that we didn't kick
2022-09-30 11:20:00 +02:00
Bruno Windels
b5f686b10e
also allow clean up while still in Joining state, otherwise we get stuck
...
in joined state but without joinedData
2022-09-30 11:17:54 +02:00
Bruno Windels
282cba0ff1
call points for PeerCall.delay rely on AbortError actually being thrown
...
+ fix this in one call point where it wasn't the case
2022-09-30 11:17:07 +02:00
Bruno Windels
8f8a964b3b
allow to actually process the invite in the new peer call
2022-09-30 11:15:48 +02:00
Bruno Windels
05bb360c00
allow to dequeue signalling messages with repeated seq (from other call)
...
they will just be ignored by peerCall.getMessageAction() but we don't
want to block dequeuing on these
2022-09-30 11:12:04 +02:00
Bruno Windels
6f0e781b49
WIP
2022-09-26 19:15:13 +02:00
Bruno Windels
bf71a88799
Merge pull request #880 from vector-im/matthew/turn
...
Implement TURN
2022-09-26 14:19:00 +00:00
Bruno Windels
c660d82d6a
make internal method private
2022-09-26 16:00:25 +02:00
Bruno Windels
eccbab1491
cleanup polling and also hangup on all ongoing calls on dispose session
2022-09-26 15:57:20 +02:00
Bruno Windels
24ebf6c559
cleanup
2022-09-26 15:47:48 +02:00
Bruno Windels
ac319bdafd
we can assume setConfiguration is available
2022-09-26 15:45:41 +02:00
Bruno Windels
d36b9be24f
fix screwing up whitespace
2022-09-26 15:41:30 +02:00
Bruno Windels
05c2da95c4
fix typo
2022-09-26 15:38:04 +02:00
Bruno Windels
e6bf49a6cc
remove previous hardcoded turnServers setting
2022-09-26 15:27:41 +02:00
Bruno Windels
f74c4e6425
remove previous approach
2022-09-26 15:26:16 +02:00
Bruno Windels
917ad52302
use observable for turnserver in peercall
...
and subscribe if changing config is supported
2022-09-26 15:25:53 +02:00
Bruno Windels
3a4c38086c
fetch turn server settings when joining a call, and pass down
2022-09-26 15:25:24 +02:00
Bruno Windels
035ead0d5b
implement polling of voip turnServer settings from HS in separate class
2022-09-26 15:24:41 +02:00
Matthew Hodgson
6570ec46f4
setTurnServers doesn't need to be async
2022-09-26 09:02:22 +01:00
Matthew Hodgson
3d7852a469
set array of turnservers
2022-09-26 01:07:24 +01:00
Matthew Hodgson
eab87e5157
fix plurals
2022-09-26 00:52:41 +01:00
Matthew Hodgson
af2098327b
first cut at implementing TURN
2022-09-26 00:47:12 +01:00
Matthew Hodgson
31e67142bd
typo
2022-09-25 22:11:35 +01:00
Matthew Hodgson
8aa62b2573
don't ignore end-of-ICE candidates
2022-09-25 21:39:38 +01:00
Bruno Windels
7ce5cdfc4a
prevent concurrent calls of OlmEncryption.encrypt to OOM olm wasm heap
...
This is being triggered by connecting to many call members at once,
while encrypting the signaling messages. This keeps many olm.Session
objects into memory at the same time, which makes olm run out of
wasm heap memory.
2022-09-22 13:19:56 +02:00
Bruno Windels
bb2e63b05b
don't queue messages for different callIds so last seq doesn't corrupt
...
this includes handling invite glares differently
2022-09-20 17:27:39 +02:00
RMidhunSuresh
1898c4892e
Specify return type
2022-09-12 23:44:51 +05:30
RMidhunSuresh
88091622db
Rename variable
2022-09-12 23:21:55 +05:30
RMidhunSuresh
2d4b6b0341
Exctract into function
2022-09-12 17:22:10 +05:30
R Midhun Suresh
ca4f6d83f9
Merge pull request #850 from vector-im/fix-798
...
Perform forced logout when access token is invalidated
2022-08-26 16:31:06 +05:30
RMidhunSuresh
216c5da386
Implement forced logout
2022-08-22 21:59:33 +05:30
RMidhunSuresh
d6cea6fc5c
Extract method to function outside class
2022-08-19 16:36:21 +05:30
RMidhunSuresh
34dd7e4fa5
Remove code
2022-08-19 16:31:48 +05:30
RMidhunSuresh
bfd54f2764
Delete localstorage on logout
2022-08-09 23:11:02 +05:30
Isaiah Becker-Mayer
b33db1df36
refactors ObservableMap
2022-08-07 21:12:59 -07:00
Kaki In
f812519187
Merge branch 'vector-im:master' into recalculate_dm
2022-07-29 16:29:02 +02:00
Bruno Windels
4838e19c92
Merge pull request #811 from vector-im/bwindels/sharekeyswithinvitees
...
Key sharing based on room history visibility
2022-07-29 14:23:26 +00:00
Bruno Windels
cb0ac846c7
remove obsolete comment
2022-07-29 16:22:01 +02:00
Kaki In
69871ab985
Merge branch 'vector-im:master' into recalculate_dm
2022-07-29 12:08:33 +02:00
Bruno Windels
2a5e0302dc
Merge pull request #785 from vector-im/hs/log-when-storage-access-fails
...
Log the error when we can't get storage access
2022-07-29 09:47:58 +00:00
Half-Shot
5b5c852401
Revert "use logging items"
...
This reverts commit d937b9b14b
.
2022-07-29 10:44:37 +01:00
Half-Shot
d937b9b14b
use logging items
2022-07-29 10:39:41 +01:00
Bruno Windels
d3e93196e3
Merge pull request #777 from ibeckermayer/ibeckermayer/ts-conversion-loginviewmodel
...
TS conversion for `LoginViewModel`
2022-07-29 09:27:10 +00:00
Bruno Windels
62b3a67e33
write unit tests for correctly reading history visibility when needed
2022-07-28 17:09:41 +02:00
Kaki In
b73e3e9883
Don't add a memeber to the members list if it left the DM
2022-07-28 13:06:47 +02:00
Bruno Windels
319ec37864
fix typos preventing to load the history visibility
2022-07-28 11:44:50 +02:00
Isaiah Becker-Mayer
7b7b19476c
updates some signatures to be more verbose, fixes wrong type for attemptLogin
2022-07-27 22:09:30 -07:00
Isaiah Becker-Mayer
ad0bd82bda
creating default exports
2022-07-27 22:09:30 -07:00
Isaiah Becker-Mayer
d7657dcc4d
first draft of fully typescriptified LoginViewModel.ts
2022-07-27 22:09:30 -07:00
Bruno Windels
0df66b5aea
track room before listing user ids when sharing key
2022-07-27 12:06:55 +02:00
Bruno Windels
f18520a2fe
let loadMembers use own txn in case members haven't been fetched yet
...
if they haven't, it will need a network request, meaning that the txn
will get closed, so we can't reuse it afterwards
2022-07-27 11:39:50 +02:00
Bruno Windels
50b6ee91d7
don't need history visibility here
2022-07-27 11:39:36 +02:00
Bruno Windels
bfaba63f47
fix ts error
2022-07-26 17:55:21 +02:00
Bruno Windels
544afef902
test adding and removing when tracking multiple rooms
2022-07-26 17:41:26 +02:00
Bruno Windels
dd878bb8d6
also take rejecting invites into account to remove user identity
2022-07-26 16:58:07 +02:00
Bruno Windels
dea3852425
add some tests for sharing keys with invitees
2022-07-26 16:57:28 +02:00
Bruno Windels
4c17612b05
allow passing txn to loadMembers so we can do it as part of sync txn
...
to rewrite useridentities upon receiving new history visibility
2022-07-26 16:53:02 +02:00
Bruno Windels
a23df8a545
pass history visibility to device tracker
...
and delegate adding and removing members to share keys with to it
2022-07-22 17:49:59 +02:00
Bruno Windels
17f42f523a
add write method for when history visibility changes
...
also returning added and removed user ids
2022-07-22 17:49:26 +02:00
Bruno Windels
f6011f3f34
take history visibility into account in device tracker
...
and return added and removed userids to their userIdentity for the given
room, so room encryption can share and discard the keys for them
2022-07-22 17:48:26 +02:00
Bruno Windels
86c0e9e669
logic for whether a key should be shared by membership and h. visibility
2022-07-22 17:46:53 +02:00
Bruno Windels
f337940202
this migration shouldn't be needed anymore
...
and undoes the export of addRoomToIdentity, which is somewhat internal
2022-07-22 17:46:29 +02:00
Bruno Windels
22831e710c
support async callback in iterateResponseStateEvents
2022-07-22 14:15:26 +02:00
Bruno Windels
c8a8eb10b5
get user ids for sharing a new key when the message is sent
...
rather than when the key happens to get sent
2022-07-20 15:21:33 +02:00
Bruno Windels
d79e5f7806
create key share operations for invitees when history visibility=invited
2022-07-20 15:20:23 +02:00
Bruno Windels
3346f68d25
WIP
2022-07-12 11:59:52 +02:00
Bruno Windels
e9649ec7c2
different streams never have the same id, even for same devices
2022-07-07 15:47:09 +02:00
Bruno Windels
2f08cd8984
clone localMedia in Member when connection, like we do for setMedia
2022-07-07 15:36:49 +02:00
Bruno Windels
f187a51c97
stop replaced track in PeerCall
2022-07-07 15:36:30 +02:00
RMidhunSuresh
cd9e00b847
Support power_level_content_override
2022-07-07 17:17:05 +05:30
Will Hunt
a85d2c96d6
Log the error when we can't get storage access
...
This is quite useful when debugging why a session isn't working properly.
2022-07-06 10:06:00 +01:00
Bruno Windels
206ac6e2dd
WIP: prevent stream id from changing when upgrading call
2022-07-05 18:22:36 +02:00
Bruno Windels
6aab049052
Merge branch 'master' into bwindels/calls
2022-07-04 16:59:17 +02:00
Bruno Windels
84bac0afe9
Also allow undefined, which means at the end of the paginated direction
...
we already detect the end by chunk.length===0, so we just need to not throw
2022-06-25 19:37:36 +02:00
Bruno Windels
8a90c48d1e
debugging unmuting not working
2022-06-25 05:56:43 +02:00
Bruno Windels
375d8b066c
complete settings view model for logs ui
2022-06-15 11:13:46 +02:00
Bruno Windels
a644621889
basic support for sending rageshake in view model
2022-06-14 18:46:02 +02:00
Bruno Windels
41288683fc
allow unmuting when we don't yet have a mic/cam track
2022-06-10 17:10:23 +02:00
Bruno Windels
bfdea03bbd
start with seq 1, like Element Call does
2022-06-03 15:50:02 +02:00
Bruno Windels
ed5fdb8154
don't withhold member event for call just because we don't have profile
2022-06-03 12:43:51 +02:00
Bruno Windels
c8b5c6dd41
expose own user on BaseRoom
...
so we don't have to pass session around everywhere we need this
2022-06-02 17:30:17 +02:00
Bruno Windels
8ba1d085f6
fix refactor mistake in logging
2022-06-02 15:58:50 +02:00
Bruno Windels
90b6a5ccb6
update call member info with room member info
2022-06-02 15:56:23 +02:00
Bruno Windels
a52740ed1b
give room state handler access to member sync to get sender profile info
2022-06-02 15:55:08 +02:00
Bruno Windels
a530944f7d
add logging to seq queueing
2022-06-02 11:11:32 +02:00
Bruno Windels
513c059459
buffer messages as long as seq numbers in between haven't been received
2022-06-02 10:59:14 +02:00
Bruno Windels
a139571e20
move setting seq on outbound messages to member, is specific to_device
2022-06-02 10:59:03 +02:00
Bruno Windels
a014740e72
don't throw when we can't encrypt, just fall back to sending unencrypted
2022-06-01 15:55:43 +02:00
Bruno Windels
83eef2be9d
log lack of persisted storage in ... persisted logs!
2022-06-01 15:30:41 +02:00
Bruno Windels
3edfbd2cf6
await hangup here, so log doesn't terminate early
2022-06-01 15:30:25 +02:00
Bruno Windels
9efe294a79
fetch and verify keys on olm call signalling message
2022-06-01 15:29:24 +02:00
Bruno Windels
50ae51e893
encrypt call signalling message only for given device
2022-06-01 15:28:49 +02:00
Bruno Windels
6f0ebeacb7
fetch single device key in DeviceTracker
2022-06-01 15:27:00 +02:00
Bruno Windels
9384fdc885
Merge branch 'bwindels/fix-tracker-changed-key-check' into bwindels/calls
2022-05-31 13:46:10 +02:00
Bruno Windels
c62c8da10b
fix changed key not being ignored
2022-05-31 13:39:35 +02:00
Bruno Windels
bc51644868
reassignment is not used later on, remove
2022-05-31 13:39:23 +02:00
Bruno Windels
3d3d590334
add failing test for device with changed key being returned
2022-05-31 13:39:05 +02:00
Bruno Windels
11d7535c23
add some basic tests (with mock utils) for DeviceTracker
2022-05-31 13:38:34 +02:00
Bruno Windels
b2d787b96c
fix wrong extension in import
2022-05-17 15:55:15 +02:00
Bruno Windels
6225574df6
write test for ObservedStateKeyValue
2022-05-12 17:52:17 +02:00
Bruno Windels
a50ea7e77b
add support for observing room state for single room + initial state
2022-05-12 17:27:03 +02:00
Bruno Windels
db05338596
extract function to iterate over room response state events
2022-05-12 17:26:29 +02:00
Bruno Windels
d727dfd843
add session.observeRoomState to observe state changes in all rooms
...
and use it for calls
this won't be called for state already received and stored in storage,
that you need to still do yourself
2022-05-12 11:58:28 +02:00
Bruno Windels
ae0973b916
Merge branch 'master' into bwindels/calls
2022-05-11 15:13:27 +02:00
Bruno Windels
a923e7e5e1
don't pass errors as log levels
2022-05-11 13:15:03 +02:00
Bruno Windels
5ee4e39bc7
add return type
2022-05-11 10:06:15 +02:00
Robert Long
21065791a8
Fix removing members in handleCallMemberEvent
2022-05-10 16:58:03 -07:00
Bruno Windels
cd8fac2872
update TODO
2022-05-09 14:31:19 +02:00
Bruno Windels
d69b1dc3e2
expose log items for exposing debugging info in sdk users
2022-05-06 17:06:56 +02:00
Bruno Windels
fc08fc3744
always log device removal in same way and prevent call id overwritten
2022-05-06 16:59:26 +02:00
Bruno Windels
1a08616df1
logging improvements
2022-05-04 18:44:11 +02:00
Bruno Windels
1a0b11ff7e
also log payload when receiving to_device call message, help debug with thirdroom
2022-04-29 14:59:19 +01:00
Bruno Windels
c1c08e9eb0
more logging of callId and sessionIds
2022-04-29 14:58:44 +01:00
Bruno Windels
9938071e1c
more sessionId logging
2022-04-29 14:34:03 +01:00
Bruno Windels
bb92d2e30d
log session id when adding a member entry
2022-04-29 14:19:10 +01:00
Bruno Windels
8e2e92cd2c
this timer should not fire after disposing
2022-04-29 10:11:12 +01:00
Bruno Windels
e1974711f3
dont close this when disconnecting as long as we haven't restructured the log items in general, we can always connect again fr now and assume to reuse the same log item
2022-04-28 16:56:32 +01:00
Bruno Windels
d346f4a3fb
add & remove rather than update when session id changed
2022-04-28 16:52:42 +01:00
Bruno Windels
3d83fda69f
some more cleanup
2022-04-28 16:52:17 +01:00
Bruno Windels
2d9b69751f
some logging cleanup
2022-04-28 16:52:00 +01:00
Bruno Windels
0be75d9c59
update the TODO
2022-04-28 12:45:15 +01:00
Bruno Windels
a91bcf5d22
ensure there is no race between reconnecting & updating the session id
...
it's probably fine as connect has to wait to receive the
negotiationneeded event before it can send out an invite, but just to
be sure update the session id beforehand
2022-04-28 12:44:13 +01:00
Bruno Windels
b03b296391
comments, todo housekeeping
2022-04-27 19:41:25 +02:00
Bruno Windels
4f2999f8d8
reconnect when detecting session id change, so we send invite if needed
2022-04-27 19:41:02 +02:00
Bruno Windels
bffce7fafe
more logging
2022-04-27 19:40:49 +02:00
Bruno Windels
be04eeded0
always reevaluate remote media when receiving a new remote track
...
not just when we don't know the stream already
this caused the video track to not appear when the other party sends the
invite.
Also added more logging
2022-04-27 17:33:27 +02:00
Bruno Windels
230ccd95ab
reset retryCount when disconnecting
2022-04-27 17:33:12 +02:00
Bruno Windels
6b22078140
prevent localMedia being disposed when disconnecting on session change
...
this would cause us to not send any media anymore and a black screen
on the other side that just refreshed
2022-04-27 11:34:05 +01:00
RMidhunSuresh
049a477008
Pass flowSelector from Client.startRegistration
2022-04-27 12:27:19 +05:30
Bruno Windels
beeb191588
reset member when seeing a new session id
...
also buffer to_device messages for members we don't have a member event
for already.
2022-04-26 21:11:41 +02:00
Bruno Windels
eea3830146
emit change when muting so our own video feed gets hidden in the view
2022-04-26 16:18:49 +02:00
Bruno Windels
9ab75e8ed4
fix c/p error mixing up audio and video muting
2022-04-26 15:48:03 +02:00
Bruno Windels
b46ec8bac4
Merge branch 'bwindels/calls-wip' into bwindels/calls
2022-04-26 14:29:04 +02:00
Bruno Windels
f61064c462
nicer UI for calls, show avatar when muted, muted status
2022-04-26 14:27:28 +02:00
Bruno Windels
330f234b5a
prefer undefined over null
2022-04-26 14:21:19 +02:00
Bruno Windels
3198ca6a92
expose remote mute settings
2022-04-26 14:20:44 +02:00
Bruno Windels
22df062bbb
fix observable typescript errors
2022-04-25 14:05:02 +02:00
Bruno Windels
cdb2a79b62
add muting again, separate from changing media
2022-04-22 14:48:14 +01:00
Bruno Windels
ac60d1b61d
remove thick abstraction layer
...
instead just copy the DOM typing and make it part of the platform layer
2022-04-21 17:40:45 +02:00
Bruno Windels
10a6269147
always send new metadata after calling setMedia
2022-04-21 10:15:57 +02:00
Bruno Windels
55c6dcf613
don't re-clone streams when not needed
2022-04-21 10:11:24 +02:00
Bruno Windels
99769eb84e
implement basic renegotiation
2022-04-21 10:10:49 +02:00
Bruno Windels
82ffb557e5
update TODO
2022-04-21 10:09:31 +02:00
Bruno Windels
d6b239e58f
ensure we always set the correct session id when joining
2022-04-20 16:42:20 +02:00
Bruno Windels
c42292f1b0
more WIP
2022-04-20 10:57:07 +02:00
Bruno Windels
382fba88bd
WIP for muting
2022-04-14 23:19:44 +02:00
Bruno Windels
ea1c3a2b86
Merge remote-tracking branch 'origin/bwindels/calls' into bwindels/calls
2022-04-14 13:47:23 +02:00
Bruno Windels
021b8cdcdc
send hangup when leaving the call
...
but not when somebody else leaves the call through a member event
2022-04-14 13:45:21 +02:00
Bruno Windels
ff856d843c
ensure all member streams are cloned
...
so we can stop them without affecting the main one
also, only stop them when disconnecting from the member, rather then
when the peer call ends, as we might want to retry connecting to
the peer with the same stream.
2022-04-14 13:44:11 +02:00
Robert Long
55097e4154
Add intent to CallHandler
2022-04-13 13:08:47 -07:00
Bruno Windels
bc118b5c0b
WIP
2022-04-13 18:34:01 +02:00
Bruno Windels
2d4301fe5a
WIP: expose streams, senders and receivers
2022-04-12 21:20:24 +02:00
Bruno Windels
36dc463d23
update TODO
2022-04-12 21:20:15 +02:00
Bruno Windels
0e9307608b
update TODO
2022-04-12 14:02:57 +02:00
Bruno Windels
2635adb232
hardcode turn server for now
2022-04-12 14:02:38 +02:00
Bruno Windels
797cb23cc7
implement receiving hangup, and retry on connection failure
2022-04-12 14:02:13 +02:00
Bruno Windels
fd5b2aa7bb
only create datachannel on side that sends invite
2022-04-11 16:29:46 +02:00
Bruno Windels
517e796e90
remove obsolete import
2022-04-11 15:56:31 +02:00
Bruno Windels
c99fc2ad70
use deviceId getter in Member
2022-04-11 15:54:41 +02:00
Bruno Windels
9be64730b6
don't automatically join a call we create
2022-04-11 15:54:06 +02:00
Bruno Windels
b84c90891c
add very early datachannel support
2022-04-11 15:53:34 +02:00
Bruno Windels
c02e1de001
log when renegotiation would be triggered
2022-04-11 14:55:14 +02:00
Bruno Windels
8153060831
only send to target device, not all user devices
2022-04-11 13:39:40 +02:00
Bruno Windels
302d4bc02d
use session id from member event, and also send it for other party
2022-04-11 13:39:18 +02:00
Bruno Windels
1b0abebe8f
remove unused constants
2022-04-11 12:37:05 +02:00
Bruno Windels
156f5b78bf
use session_id from member event to set dest_session_id
...
so our invite event isn't ignored by EC
2022-04-11 12:36:02 +02:00
Bruno Windels
8a06663023
load all call members for now at startup
...
later on we can be smarter and load then once you interact with the call
2022-04-07 16:55:41 +02:00
Bruno Windels
b133f58f7a
don't throw here for now, although it is probably a sign of why the tracks disappear
2022-04-07 16:54:47 +02:00
Bruno Windels
bade40acc6
log track length
2022-04-07 16:54:36 +02:00
Bruno Windels
1dc46127c3
no need to throw here
2022-04-07 16:54:24 +02:00
Bruno Windels
79411437cf
fix who initiates call, needs to be lower, not higher
2022-04-07 16:53:57 +02:00
Bruno Windels
6472800387
impl session id so EC does not ignore our messages
2022-04-07 16:53:37 +02:00
Bruno Windels
fe6e7b09b5
don't encrypt to_device messages for now
2022-04-07 16:50:16 +02:00
Bruno Windels
9755062563
fix error thrown during request when response code is not used
2022-04-07 10:35:00 +02:00
Bruno Windels
ad1cceac86
fix error thrown during request when response code is not used
2022-04-07 10:33:12 +02:00
Bruno Windels
2852834ce3
persist calls so they can be quickly loaded after a restart
...
also use event prefixes compatible with Element Call/MSC
2022-04-07 10:32:43 +02:00
Bruno Windels
d7360e7741
fix multiple device support
2022-03-30 15:18:46 +02:00
Bruno Windels
c54ffd4fc3
support multiple devices in call per user
2022-03-29 17:13:33 +02:00
Bruno Windels
ba45178e04
implement terminate and hangup (currently unused)
2022-03-29 12:01:47 +02:00
Bruno Windels
11a9177592
log state changes in PeerCall
2022-03-29 12:01:47 +02:00
Bruno Windels
eaf92b382b
add structured logging to call code
2022-03-29 12:01:47 +02:00
Bruno Windels
a0a07355d4
more improvements, make hangup work
2022-03-29 12:01:47 +02:00
Bruno Windels
0a37fd561e
just enough view code to join a call
2022-03-29 12:01:47 +02:00
Bruno Windels
9efd191f4e
some more fixes
2022-03-29 12:01:46 +02:00
Bruno Windels
cad2aa760d
some fixes
2022-03-29 12:01:46 +02:00
Bruno Windels
e760b8e556
basic view model setup
2022-03-29 12:01:46 +02:00
Bruno Windels
6daae797e5
fix some ts/lint errors
2022-03-29 12:01:46 +02:00
Bruno Windels
07bc0a2376
move observable values each in their own file
2022-03-29 12:01:46 +02:00
Bruno Windels
1bccbbfa08
fix typescript errors
2022-03-29 12:01:46 +02:00
Bruno Windels
f674492685
remove local media promises (handle them outside of call code) + glare
2022-03-29 12:01:46 +02:00
Bruno Windels
3c160c8a37
handle remote ice candidates
2022-03-29 12:01:46 +02:00
Bruno Windels
b213a45c5c
WIP: work on group call state transitions
2022-03-29 12:01:46 +02:00
Bruno Windels
b2ac4bc291
WIP13
2022-03-29 12:01:46 +02:00
Bruno Windels
6da4a4209c
WIP: work on group calling code
2022-03-29 12:01:46 +02:00
Bruno Windels
4bedd4737b
WIP11
2022-03-29 12:01:46 +02:00
Bruno Windels
60da85d641
WIP10
2022-03-29 12:01:46 +02:00
Bruno Windels
6fe90e60db
WIP9
2022-03-29 12:01:46 +02:00
Bruno Windels
ecf7eab3ee
WIP8 - implement PeerCall.handleAnswer and other things
2022-03-29 12:01:46 +02:00
Bruno Windels
25b0148073
WIP8
2022-03-29 12:01:46 +02:00
Bruno Windels
98b77fc761
WIP7
2022-03-29 12:01:46 +02:00
Bruno Windels
179c7e74b5
WIP6
2022-03-29 12:01:46 +02:00
Bruno Windels
98e1dcf799
WIP5
2022-03-29 12:01:46 +02:00
Bruno Windels
e5f44aecfb
WIP4
2022-03-29 12:01:46 +02:00
Bruno Windels
468841ecea
WIP3
2022-03-29 12:01:46 +02:00
Bruno Windels
b12bc52c4a
WIP2
2022-03-29 12:01:46 +02:00
Bruno Windels
46ebd55092
WIP
2022-03-29 12:01:46 +02:00
Bruno Windels
ca211f929b
Merge pull request #702 from vector-im/bwindels/observablemapts
...
convert (Base)ObservableMap to typescript
2022-03-09 11:53:59 +01:00
Bruno Windels
6d7c983e8e
convert (Base)ObservableMap to typescript
2022-03-09 11:33:49 +01:00
Bruno Windels
2e1283d199
Merge pull request #670 from vector-im/bwindels/ts-olm
...
Convert olm code to typescript
2022-03-01 18:53:22 +01:00
Bruno Windels
b6d9993ed0
remove unused import
2022-03-01 17:08:49 +01:00
Bruno Windels
8adc5a9fae
these were public actually
2022-02-18 17:24:55 +01:00
Bruno Windels
3f9f0e98c7
remove unused olm property in SenderKeyDecryption
2022-02-18 17:21:27 +01:00
Bruno Windels
82299e5aea
Update src/matrix/e2ee/olm/Decryption.ts
...
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2022-02-18 17:18:33 +01:00
Bruno Windels
3330530f68
Update src/matrix/e2ee/DecryptionResult.ts
...
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2022-02-18 17:18:25 +01:00
Bruno Windels
620409b3f0
fixup: ctor argument order
...
as it was an object before, order didn't matter
2022-02-18 17:17:24 +01:00
Bruno Windels
78e0bb1ff0
replace isPreKeyMessage with const enum
2022-02-18 17:00:56 +01:00
Bruno Windels
347edb5988
remove unused storage property
2022-02-18 16:47:47 +01:00
Bruno Windels
60f5da60bb
fix lint
2022-02-16 18:01:24 +01:00
Bruno Windels
e3e90ed167
convert olm/Encryption to TS
2022-02-16 18:00:13 +01:00
Bruno Windels
eb5ca200f2
missed rename here
2022-02-16 18:00:03 +01:00
RMidhunSuresh
7a9298328f
Return _type from getter
2022-02-16 14:37:18 +05:30
RMidhunSuresh
a76bcd1739
Changes in TokenAuth
2022-02-16 13:36:24 +05:30
RMidhunSuresh
60bc4450f3
Use type from server
2022-02-16 13:21:04 +05:30
RMidhunSuresh
ed151c8567
Return token stage from createRegistrationStage
2022-02-16 12:33:59 +05:30
RMidhunSuresh
c40801efd9
Implement the registration stage
2022-02-16 12:33:24 +05:30
Bruno Windels
a4fd1615dd
convert decryption
2022-02-15 18:21:29 +01:00
Bruno Windels
74c640f937
convert Session
2022-02-15 18:21:12 +01:00
Bruno Windels
7aeda70ff6
convert DecryptionResult
2022-02-15 18:20:14 +01:00
Bruno Windels
9685ef4dd3
dont log summary valued, as they can contain PII
2022-02-11 18:39:37 +01:00
Bruno Windels
ea8f3e5a6a
remove argument that is already bound in BaseRoom, making decryption fail
2022-02-11 17:14:56 +01:00
Bruno Windels
175f869c83
fix lint
2022-02-10 20:07:27 +01:00
Bruno Windels
a442b4b009
Merge branch 'master' into bwindels/create-room
2022-02-10 20:05:40 +01:00
Bruno Windels
d65b25f084
also adjust m.direct if the room has already been replaced
2022-02-10 20:00:01 +01:00
Bruno Windels
2765f48a64
create user id array in m.direct if it doesn't exist already
2022-02-10 19:59:44 +01:00
Bruno Windels
d2008a336b
fix lint errors
2022-02-10 19:54:47 +01:00
Bruno Windels
ff46d382ac
adjust m.direct when creating a DM
2022-02-10 19:54:15 +01:00
Bruno Windels
8526461d3c
split up create code into separate files
2022-02-10 16:43:32 +01:00
Bruno Windels
75bbde598d
also consider rooms without a name and just you and the other a DM
...
as we don't process m.direct account data yet
2022-02-10 14:39:18 +01:00
Bruno Windels
147810864f
add support to set alias and federation flag in create room
2022-02-10 14:09:18 +01:00
Bruno Windels
b5536830d0
improve RoomBeingCreatedView, allow removing the roombeingcreated
2022-02-10 11:07:29 +01:00
Bruno Windels
20493f9e87
cleanup
2022-02-10 11:07:13 +01:00
Bruno Windels
f12841b2d3
better error handling in RoomBeingCreated
2022-02-10 11:06:20 +01:00
Bruno Windels
d6d1af13d0
rename RoomBeingCreated.localId to id
2022-02-10 11:03:52 +01:00
Bruno Windels
74f7879cb6
fix unrelated bug: invite sorting order wasn't stable in left panel
...
as the timestamp is the same when you receive the invite during your
first sync
2022-02-10 09:40:03 +01:00
Bruno Windels
83d2b58bad
add avatar support to creating room
2022-02-09 19:00:00 +01:00
Bruno Windels
afe8e17a6f
remove debugging code
2022-02-08 17:00:06 +01:00
Bruno Windels
5325b0b466
cleanup logging
2022-02-08 14:58:29 +01:00
Bruno Windels
45c8e3a793
mark room as DM based on synced state events,rather than just inviteData
...
as that does not work for rooms we create ourselves
2022-02-08 14:34:34 +01:00
Bruno Windels
e04463c143
WIP for finding DM room
2022-02-07 18:58:53 +01:00
Bruno Windels
26fa2a5d60
add option
2022-02-07 18:58:43 +01:00