Commit Graph

5417 Commits

Author SHA1 Message Date
Timo
5332970dcf add onAudioTrackReady callback for controls v0.12.1 2025-06-05 19:00:08 +02:00
Timo
9ff6bcb583 Use html audio element to call setsink id for reactions and call sounds. 2025-06-05 18:59:37 +02:00
Robin
45fd7fdc7f Always render audio from the current set of participants
We forgot to tell React that we need the audio renderer to react to changes in the set of MatrixRTC participants; instead we had it referencing rtcSession.memberships non-reactively.

Now, I'm not 100% confident that this is going to fix the "speaking from the void" issues observed in the wild, because I can't reproduce them and, in my testing, the InCallView component always seemed to be rendered redundantly when the MatrixRTC participants change, even though we hadn't explicitly stated that it needs to react. (This makes sense as we haven't memoized the component.) But it's worth a shot.
2025-06-05 18:59:25 +02:00
Robin
047b3ffded Avoid reactivity bugs in how we track external state (#3316)
* Avoid reactivity bugs in how we track external state

Many of our hooks which attempt to bridge external state from an EventEmitter or EventTarget into React had subtle bugs which could cause them to fail to react to certain updates. The conditions necessary for triggering these bugs are explained by the tests that I've included.

In the majority of cases, I don't think we were triggering these bugs in practice. They could've become problems if we refactored our components in certain ways. The one concrete case I'm aware of in which we actually triggered such a bug was the race condition with the useRoomEncryptionSystem shared secret logic (addressed by a1110af6d5).

But, particularly with all the weird reactivity issues we're debugging this week, I think we need to eliminate the possibility that any of the bugs in these hooks are the cause of our current headaches.

* Reuse useTypedEventEmitterState in useLocalStorage

* Fix type error
2025-06-05 18:59:08 +02:00
Robin
a9ab93304a Ignore spurious 'devicechange' events
This gives us the additional insurance of breaking the Safari media acquisition loop at the source by admitting that they can be spurious in practice. Safari, why!?
2025-06-05 18:55:44 +02:00
Robin
8b75a266ea Break loop in acquiring media on Safari 2025-06-05 18:55:35 +02:00
Timo
87f02b28a5 Merge pull request #3293 from element-hq/toger5/more-disconnect-logging (#3297)
Fix creating two lk rooms if there is no local store setup (fixes a resulting disconnect bug)
v0.12.0
2025-05-28 09:07:50 +02:00
Timo
24cb61c24b Merge pull request #3291 from element-hq:toger5/backport-disable-device-switching-and-update-state
Backport: Disable device switching when in controlled audio devices mode
v0.12.0-rc.3
2025-05-23 17:56:49 +02:00
Timo
8f424452fc Disable device switching when in controlled audio devices mode (#3290)
* Disable device switching when in controlled audio devices mode

* Temporarily switch matrix-js-sdk to robin/embedded-no-update-state

To allow us to test this change on Element X, which does not yet support the update_state action.

* Also add a check for controlled audio devices in useAudioContext

* use develop branch

* fix tests

---------

Co-authored-by: Robin <robin@robin.town>
2025-05-23 17:55:28 +02:00
Robin
c2ce1fd382 Merge pull request #3288 from element-hq/robin/backport-audio-controls
Audio device controls for mobile native audio device selection
v0.12.0-rc.2
2025-05-22 14:32:12 -04:00
Robin
52895ed599 Audio device controls for mobile native audio device selection
Backport of 0971a15c40.
2025-05-22 14:11:46 -04:00
Robin
0719320ceb Merge pull request #3286 from element-hq/robin/backport-reset-develop
Reset to develop branch of matrix-js-sdk
2025-05-22 13:57:06 -04:00
Robin
593a50289a Reset to develop branch of matrix-js-sdk
Now that the toger5/add-room-key-fallback-on-encryption-manager-not-supported branch has been merged, we can reset to develop. (And need to, actually, because that branch is deleted.)
2025-05-22 13:12:23 -04:00
Robin
60881d7b11 Merge pull request #3281 from element-hq/robin/backport-reintroduce-update-state
Improve the reliability of state changes in widget mode
2025-05-21 14:36:24 -04:00
Robin
5f65c51cf3 Reference matrix-js-sdk by branch name
Rather than by commit, which makes it hard to tell whether we're using mainline matrix-js-sdk or not.
2025-05-21 14:27:15 -04:00
Robin
4876bddea4 Update matrix-widget-api to support update_state action 2025-05-21 14:27:15 -04:00
Robin
a5a737f830 Update matrix-js-sdk to support update_state action 2025-05-21 14:27:15 -04:00
Timo
8497f008c8 Bump js-sdk to support to-device fallback (#3277) v0.12.0-rc.1 2025-05-19 19:27:08 +02:00
Timo
28246ef86b Update RTCSession configuration to non deprecated names. (#3267)
* Update RTCSession configuration to non deprecated names.

* bump js-sdk

* es2024 and array buffer adaptions

* Alternative without `createKeyMaterialFromBuffer`
2025-05-19 18:04:07 +02:00
Timo
0110465b38 Docker-compose: do not access ports <443 (#3261)
* Do not try accessing ports <1024

* adapt nginx reverse proxy for element web

---------

Co-authored-by: fkwp <github-fkwp@w4ve.de>
2025-05-19 14:18:03 +02:00
fkwp
cc8ab0ac93 Merge pull request #3241 from element-hq/renovate/github-actions
Update GitHub Actions
2025-05-16 09:57:30 +02:00
renovate[bot]
da2ce68348 Update GitHub Actions 2025-05-15 23:01:56 +00:00
ElementRobot
471917b16a Merge pull request #3273 from element-hq/actions/localazy-download
Localazy Download
2025-05-15 15:15:05 -05:00
fkwp
f6870ae5b4 Translations updates 2025-05-15 20:10:41 +00:00
Timo
b5fe55aef2 Add custom audio renderer for iPhone earpiece and only render joined participants (#3249)
* Add custom audio renderer to only render joined participants & add ios earpice workaround

fix left right to match chromium + safari
(firefox is swapped)

earpice as setting

Simpler code and documentation
The doc explains, what this class actually does and why it is so complicated.

Signed-off-by: Timo K <toger5@hotmail.de>

use only one audioContext, remove (non working) standby fallback

* Add tests

* use optional audio context and effect to initiate it + review
2025-05-15 20:46:39 +02:00
Valere Fedronic
86d80630c1 Fix connection leaks: Ensure that any pending connection open are cancelled/undo when ActiveCall is unmounted (#3255)
* Better logs for connection/component lifecycle

* fix: `AudioCaptureOptions` was causing un-necessary effect render

AudioCaptureOptions was a different object but with same internal values, use directly deviceId so that Object.is works properly

* fix: Livekit openned connection leaks

* review: rename to AbortHandles

* review: rename variable

---------

Co-authored-by: Timo <toger5@hotmail.de>
2025-05-14 18:41:22 +02:00
renovate[bot]
4569d01353 Update dependency vite to v6.2.7 [SECURITY] (#3240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 12:09:53 +02:00
Valere Fedronic
1ff2fb3fff only show to-device transport label in dev mode (#3221)
* Only show to device encryption label if developer mode on

* Add tests for developer mode to device label

---------

Co-authored-by: Timo <toger5@hotmail.de>
2025-05-13 22:22:56 +02:00
Timo
e6710f72e3 Fix to-device encryption info label (#3208)
* Fix to-device encryption info label
The label was shown also without checking that we use PerParticipantE2EE. Which is a prerequisite for toDevice transport. As a result the label was shown when not desired.

* rename: useLiveKit -> useLivekit

* make the settings naming consistent
2025-05-13 22:05:55 +02:00
Timo
04bc6c77a3 developer option to mute all audio (#3239) 2025-05-13 21:11:12 +02:00
fkwp
34b3b9d733 Merge pull request #3265 from element-hq/renovate/livekit-client
Update dependency livekit-client to v2.12.0
2025-05-13 09:44:26 +02:00
fkwp
44ed04475d bump livekit protocol version 2025-05-13 09:38:43 +02:00
renovate[bot]
de8a2cb533 Update dependency livekit-client to v2.12.0 2025-05-13 07:25:55 +00:00
fkwp
4344f1dd1e Merge pull request #3260 from element-hq/renovate/livekit-client
Update dependency livekit-client to v2.11.4
2025-05-13 09:23:49 +02:00
renovate[bot]
9f8dd000e0 Update embedded package dependencies (#3242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 14:20:03 +02:00
renovate[bot]
b681e53c35 Update dependency livekit-client to v2.11.4 2025-05-12 01:54:04 +00:00
Robin
6281628e4e Merge pull request #3258 from element-hq/robin/webcodecs-update
Remove patched version of WebCodecs types
2025-05-09 10:54:23 -04:00
Robin
9f727b904b Remove patched version of WebCodecs types
The patch has now been upstreamed to @types/dom-webcodecs.
2025-05-09 10:48:09 -04:00
Quentin Gliech
380880137e Keep the HTML lang attribute in sync with the i18next language (#3247) 2025-05-05 17:12:00 +02:00
fkwp
8828b705d9 Merge pull request #3235 from element-hq/fkwp/refactor_dev_backend
DevX: Properly server .well-known and use endpoint routing as described in self-hosting.md
2025-05-05 16:30:02 +02:00
fkwp
b7e5b81dbf update yarn.lock to remove plugin-basic-ssl 2025-05-05 16:25:18 +02:00
fkwp
e12dfa9a9f prettier 2025-05-05 16:17:16 +02:00
fkwp
48b4fd63fe prettier 2025-05-05 16:09:34 +02:00
fkwp
f2b68e6dee add localhost domain to certificate 2025-05-05 16:02:19 +02:00
fkwp
128851263b use ssl cert from mini localhost CA 2025-05-05 16:01:58 +02:00
fkwp
679ff8c2af adapt to TLS setup 2025-05-05 15:47:03 +02:00
fkwp
9dcaa60982 added app.m.localhost for element web 2025-05-05 15:26:47 +02:00
fkwp
34a223f04b add yarn dev --host hint 2025-05-05 14:54:14 +02:00
fkwp
005402d8d1 prettier 2025-05-05 14:48:45 +02:00
fkwp
76fb16dbfd update README.md to reflect TLS settings 2025-05-05 14:44:21 +02:00