Commit Graph
100 Commits
Author SHA1 Message Date
David Baker c6ad2003f0 Add other missing file 2022-12-16 17:28:52 +00:00
David Baker 9aed344a80 Add missing file 2022-12-16 17:25:28 +00:00
David Baker d8b4fea6fc i18n 2022-12-16 17:22:38 +00:00
David Baker 0c55efe4b6 Don't reorder imports - 3rd time's a charm 2022-12-16 17:20:52 +00:00
David Baker c93df1fd06 Don't reorder import try 2 2022-12-16 17:19:40 +00:00
David Baker c30eb19021 Don't reorder imports 2022-12-16 17:18:52 +00:00
David Baker 2d8c33d66d Merge remote-tracking branch 'origin/main' into dbkr/spatial_audio_ff_only 2022-12-16 17:17:30 +00:00
David Baker 223793a445 Make spatial audio Firefox-only
Hopefully explained in comment: we have a heisenbug where we sometimes
lack audio from a certain participant, so this simplifies the audio
path by removing the workaround required to do AEC with spatial audio
on chrome.
2022-12-16 17:12:17 +00:00
David Baker 9c08a69226 Add import
And also Prettier says hi apparently
2022-11-23 10:11:55 +00:00
David Baker 098be75415 Fix click leaking through to DOM element underneath
See comment, although this is quite hack - I'm torn on whether this
is worth it for the bugfix. Upgrading react-aria doesn't fix it either
(and also breaks everything in React strict mode).

Fixes https://github.com/vector-im/element-call/issues/762
2022-11-22 19:01:50 +00:00
David Baker eab8b1d095 Put rageshake request ID in title of debug log submission 2022-11-17 16:06:41 +00:00
David Baker 734d330a10 CamcelCase for enum values 2022-11-16 10:45:49 +00:00
David Baker 432f7ef93a i18n update 2022-11-15 17:34:56 +00:00
David Baker 5623fa415f Also update connection states when participants change 2022-11-15 17:33:58 +00:00
David Baker f2746ab994 Pass user's connection state for their screenshare feed 2022-11-15 17:19:09 +00:00
David Baker 80f07a5454 Add a 'waiting for video' state to media tiles
This will show if the call is waiting for media to connect (in practice
doesn't actually seem to happen all that often) but also show if the
media connection is lost, with the js-sdk change.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/2880
Fixes: https://github.com/vector-im/element-call/issues/669
2022-11-15 16:13:33 +00:00
David Baker bd08166a50 Make room / call creation logging more accurate
It said it was creating the room when actually it was creating the call
2022-11-10 19:10:10 +00:00
David Baker e133625405 Don't check out group-call branch in build script
This build script might change more soon (we shouldn't really need
to checkout & link the js-sdk at all) but for now let's just switch
the branch now group-call is merged.
2022-11-07 17:37:40 +00:00
David Baker d5a5ce9860 Don't pass potentially undefined 'desc' to useId
Also use the useId that comes with React 18.
2022-11-07 14:05:58 +00:00
David Baker e5feba8c26 Make Home link description translateable 2022-11-07 12:33:06 +00:00
David Baker 3cac74df24 Add aria-describedBy to textarea and use useID 2022-11-07 12:28:54 +00:00
David Baker 51572b5787 Make onClose required in Modal 2022-11-07 12:23:21 +00:00
David Baker 5c8562088d A couple of minor a11y fixes
Picked up by Axe
2022-11-04 18:31:21 +00:00
David Baker 58e505cd38 Add aria-describedby associations 2022-11-04 18:10:53 +00:00
David Baker 509fd65156 Fix close button on join call modal
It just errored as we didn't pass onClose through to the modal
2022-11-04 17:56:37 +00:00
David Baker 0cd2ad6242 Add config file for CD version 2022-11-03 19:01:13 +00:00
David Baker 45dbaa968a Fix Walkie-Talkie mode in Safari
We didn't check whether we actually had a video device when seeing
if the current video devices was in the list of devices, so this
caused loops which confused Safari.
2022-11-02 20:03:56 +00:00
David Baker feeb9c4e7c Fix missing tile bug
The 'connecting' tile change meant that we could have tiles right
at the start of the call where we wouldn't have before, and in fact
could have tiles for other users before we even had a tile for ourself.
This threw off the logic for ordering tiles which had a special case
for 1:1 calling which assumed that one of the tiles in a 1:1 call was
the local user. In this case, this assumption wasn't true at the very
start of the call, so the tile orders got assigned incorrectly and then
persisted for the rest of the call.

Fixes https://github.com/vector-im/element-call/issues/694
2022-11-01 18:10:11 +00:00
David Baker 50e9e33922 i18n 2022-10-24 19:02:01 +01:00
David Baker 736aa95133 Fix type 2022-10-24 18:58:55 +01:00
David Baker 537341da3a Fix storybook 2022-10-24 10:06:38 +01:00
David Baker 3891b042e3 Use commit from js-sdk branch 2022-10-21 21:10:04 +01:00
David Baker 821622f71c Types 2022-10-21 20:28:33 +01:00
David Baker 71dcc94166 Fix screen sharing
* Make the embedded mode screen sharing a request-each-way rather
   than request-and-reply, since replies time out and so can't wait
   for the user.
 * Try normal screen sharing first, then fall back to using the widget
   API if it fails (for lack of a good way of detecting when we
   should be using the widget API).

Fixes https://github.com/vector-im/element-call/issues/649
2022-10-21 20:19:52 +01:00
David Baker 1ea9432769 Show tiles for members we're trying to connect to
This should help give more context on what's going wrong in
splitbrain scenarios.

If users leave calls uncleanly, their tile will remain in until
their member event times out, which will be an hour from when they
joined the call. See https://github.com/vector-im/element-call/issues/639.

Part of https://github.com/vector-im/element-call/issues/616
2022-10-21 17:24:56 +01:00
David Baker fa4b4eabdf Fix missing key in tab container 2022-10-21 16:26:44 +01:00
David Baker 54fe2aa7a3 Bump js-sdk for addTransceiver fix 2022-10-19 18:06:24 +01:00
David Baker 3ff201562b Bump js-sdk 2022-10-19 16:02:48 +01:00
David Baker f808c56121 Type 2022-09-29 17:08:48 +01:00
David Baker 77da0c912f Match device type too
Because lots of audio & video inputs have the same name
2022-09-29 17:07:10 +01:00
David Baker 17613837b6 Hold a user media stream open while we get devices
As per comment.
2022-09-29 13:19:46 +01:00
David Baker 4a5b69800c Use device labels rather than IDs in widget API
device IDs are different for each origin, so won't match up when passed
in & out of widgets. Use the label instead.

For https://github.com/vector-im/element-web/issues/23331
2022-09-27 16:19:48 +01:00
David Baker 46ab10f733 Remove unintentional commenting 2022-09-26 13:03:39 +01:00
David Baker 6e91ec3a0e Clear storage after logout 2022-09-26 13:01:43 +01:00
David Baker ded6a80b58 Fix passworldess user prompt screen
This is how boolean logic works
2022-09-23 15:38:35 +01:00
David Baker 7435f1101a Fix bug causing mic/webcam to remain open after call
Fixes https://github.com/vector-im/element-call/issues/596
2022-09-23 15:35:05 +01:00
David Baker d9fc9e82ab Fix another cause of split-brain rooms
Wait for the client to start syncing before we attempt to join a
room.

Fixes https://github.com/vector-im/element-call/issues/600 (detailed
bug analysis is also in that issue).
2022-09-23 10:50:42 +01:00
David Baker 6355aa863c Fix scroll bug in spotlight view
This was a confusion between indicies of the tile and the tile position:
the spotlight tile is the 0th TilePosition, ie. the tile with order
0, not the tile with index 0.

Also comment one method to hopefully make this slightly easier to
understand.
2022-09-22 12:03:57 +01:00
David Baker a2fdab8eb9 Update js-sdk for exception fix
For https://github.com/matrix-org/matrix-js-sdk/pull/2667
2022-09-14 09:47:53 +01:00
David Baker b1c9e8c07a Bump js-sdk dependency
For https://github.com/matrix-org/matrix-js-sdk/pull/2662
2022-09-13 16:39:14 +01:00
David Baker ca5ce7d468 Update to latest js-sdk group call branch 2022-09-08 11:25:21 +01:00
David Baker 70dffe95ff Handle groupcall being null 2022-09-07 11:42:37 +01:00
David Baker 0360889fd6 Log ID instead of object
as otherwise it recurses and logs the entire client + store
2022-09-06 15:11:45 +01:00
David Baker 22dd095ea9 Update js-sdk to latest on group-call branch 2022-09-06 13:55:32 +01:00
David Baker 30a270193f Use js-sdk branch 2022-09-06 12:14:24 +01:00
David Baker ee1dd2293e Use new method to wait until a room is ready fopr group calls
We were waiting for the group call event handler to process the room,
but only if we couldn't get the room from the client - if getRoom returned
a room, we just wouldn't wait. This just uses promises rather than
an event to wait for the room to be ready.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/2641
2022-09-06 11:57:07 +01:00
David Baker 30c9dfce02 Remove unused import 2022-09-01 13:36:02 +01:00
David Baker 48ad4d040d Actually wait for the right event
& update js-sdk dependency
2022-09-01 13:32:11 +01:00
David Baker 1b4f097b1c Fix bug where additional group calls could be created
This (hopefully) fixes the remaining bug where extra group calls
could be created when entering a room.

We waited for the Room event to arrive, but didn't wait for the
group call event handler to actually process the event, so it would
have depended what order the event handlers were run in.

If this doesn't fix it, it at least adds logging so we'll have more
to go on next time.

Fixes https://github.com/vector-im/element-call/issues/563
2022-09-01 11:41:22 +01:00
David Baker 7b6193ab62 Update js-sdk for ICE end-of-candidates fix 2022-08-26 10:06:18 +01:00
David Baker e7353e184f Fix groupcall debug info in rageshakes
We were putting the whole array from setState in, so the debug info
was wrapped in an array when it shouldn't be.

Also comment the groupCallInspector setState/context dance which I
now *finally* understand.
2022-08-25 11:43:47 +01:00
David Baker c550545116 Fix 'submit debug logs' checkbox in the rageshake form
Fixes https://github.com/vector-im/element-call/issues/550
2022-08-23 20:29:41 +01:00
David Baker 56afbe6eb1 Fix crash on screen share
Don't try to wire up audio nodes if the stream has no audio track,
'cos it'll crash.

Fixes https://github.com/vector-im/element-call/issues/421
2022-07-20 20:49:07 +01:00
David Baker cf309102a2 Make the error boundary work
We had an error boundary at the top level of the app, but it didn't
work because it used ErrorPage which tried to use a bunch of things
like useLocation() and an error prop. Also it wasn't passed in correctly
anyway.

This wires it up correctly to a separate view with a button to send
debug logs, and also moves it down a few layers so it has access to
enough things to be able to send rageshakes.

Related: https://github.com/vector-im/element-call/issues/421
2022-07-20 20:43:11 +01:00
David Baker 32b37ed8f0 Fix 'cannot find room' error
We weren't waiting for rooms to arrive down the sync stream after
joining them but before trying to use them.

More regression details in linked issue.

Fixes https://github.com/vector-im/element-call/issues/477
2022-07-20 16:01:29 +01:00
David Baker 873e68e1e1 Add notes from thinking through the need for storing what crypto db we use 2022-07-14 13:24:22 +01:00
David Baker 1eab957d85 Fix typescript syntax 2022-07-14 13:11:47 +01:00
David Baker 4c145af7a3 Don't restore session unless crypto data is found
Add a check to ensure that we find crypto data in the crypto store
when we're restoring a session and otherwise abort the session restore.

This will prevent us from restoring a session and generating new keys
when there was a previous session with different keys.

***This will force a logout for all users***

See the linked issue (and the comment in code) for more detail.

Fixes https://github.com/vector-im/element-call/issues/464
2022-07-14 13:07:30 +01:00
David Baker c1e45c4a30 Missed a file 2022-07-13 16:02:17 +01:00
David Baker 5784a005dc Auto-register if displayName URL param is given
Fixes https://github.com/vector-im/element-call/issues/442
2022-07-13 14:34:15 +01:00
David Baker 32907764b3 Add ptt URL param to control what mode rooms are created in 2022-07-11 13:23:03 +01:00
David Baker 5199fd2566 Prettier 2022-07-08 21:17:27 +01:00
David Baker b31c6c6780 Bypass lobby in embedded mode 2022-07-08 20:55:18 +01:00
David Baker dbdc010764 Updgrade postcss-preset-env
as it was complaining that it didn't work with our version of postcss
2022-07-08 17:19:13 +01:00
David Baker a81c48cc22 Fix 'waiting for network' after reaching time limit
If you spoke for the maximum amount of time and got cut off, the
next time you tried to speak you'd just get the 'waiting for network'
state. Key repeats would cause more delayed state timeouts to queue
up.
2022-07-08 15:52:32 +01:00
David Baker 6eb77b7c2f Fix types 2022-07-08 14:56:00 +01:00
David Baker 92a50fe51d yarn upgrade
Fixes https://github.com/vector-im/element-call/issues/456 as
the various react libraries had got out of sync (also we were well
overdue a dependency update).
2022-07-08 14:26:08 +01:00
David Baker c9ae6532a0 Bump js-sdk 2022-07-08 09:48:40 +01:00
David Baker 2b92bf3694 Fix talking collision not colliding properly
The code was only entering the blocked state if the user was speaking,
which often won't be the case when another person starts speaking because
we'll have pressed the button but not got the ack back from the server
yet. Add the transmitblocked flag instead so we don't enter that state
again if we've already decided we've been blocked.

We were also starting with blocked = false and so resetting it when it
shouldn't have been reset.

Also requires https://github.com/matrix-org/matrix-js-sdk/pull/2502
2022-07-07 19:42:15 +01:00
David Baker cd42d09ea9 Fix facepile display issues
Fixes https://github.com/vector-im/element-call/issues/434 and a
separate bug where the facepile would just disappear off to the left
(because we kept increasing the size even though we capped the number
of circles at 8 plus the overflow one).
2022-07-07 14:30:28 +01:00
David Baker 655058a7e6 Remove the 'Take Me Home' link in embed mode 2022-07-06 18:27:30 +01:00
David Baker 775125c8a7 Fix view when another person is talking
Fixes https://github.com/vector-im/element-call/issues/445
2022-07-06 13:44:17 +01:00
David Baker e310392800 Bump js-sdk 2022-07-05 13:19:32 +01:00
David Baker 2dcf043787 Fix the PTT button on mobile
We were using createRef() instead of useRef() in the hook, which
meant we were always creating a new ref object and never actually
getting the ref. This must have been working before the useEventTarget
stuff due to some quirk of React / hooks...
2022-07-05 11:06:32 +01:00
David Baker 5dd5668389 Add config param to disable e2e for signalling 2022-07-04 20:10:13 +01:00
David Baker 761eee2cdc Remove button props / style too 2022-07-01 13:10:08 +01:00
David Baker c49e300247 Fix js-sdk imports to be from src
(For a curious definition of 'fix')
2022-06-29 10:31:17 +01:00
David Baker 4e3345482f Move setsinkid inside if statement 2022-06-28 15:12:59 +01:00
David Baker 7dc6fb27ea Add embed mode
https://github.com/vector-im/element-call/commit/2db23e411074a9e2e0b4fc5d480a7f05abb9915c
from postmessage_ptt branch done in a slightly nicer way
2022-06-28 15:08:14 +01:00
David Baker 0ffd860fdb catch a couple of exceptions 2022-06-28 13:24:07 +01:00
David Baker d2c820f080 Update js-sdk for chrome audio renderer hang fix
Fixes https://github.com/vector-im/element-call/issues/267
2022-06-10 21:03:52 +01:00
David Baker eb9f2ccbaa Merge remote-tracking branch 'origin/main' into dbkr/version_warning 2022-06-10 12:11:19 +01:00
David Baker d4b211e678 Update js-sdk version 2022-06-10 12:07:14 +01:00
David Baker 9fc4fbc3e7 Icon / styling fixes + typo
* Use icon from compound
 * Use warning colour
 * Fix capitalisation
2022-06-10 12:06:06 +01:00
David Baker 1f5ac411f6 Add warning if incompatible versionsd are being used
This will probably be overly sensitive until we start timing out
member events (ie. https://github.com/matrix-org/matrix-js-sdk/pull/2446
lands) because lots of calls might have old member events from people
who've joined previously.
2022-06-09 21:56:58 +01:00
David Baker edbcf95ead Bump js-sdk for https://github.com/matrix-org/matrix-js-sdk/pull/2445 2022-06-08 19:29:49 +01:00
David Baker 17098cf2ab Also yarn.lock 2022-06-08 14:35:27 +01:00
David Baker 7ef3dcc56c Bump js-sdk version for a couple of PTT network reliability fixes 2022-06-08 14:34:29 +01:00
David Baker 017ec13981 Disable typescript warnings 2022-06-01 16:05:58 +01:00
David Baker 5282ab5f12 Merge remote-tracking branch 'origin/main' into dbkr/avoid-browser-index-import 2022-06-01 16:03:18 +01:00