Commit Graph

5270 Commits

Author SHA1 Message Date
Saúl Ibarra Corretgé
178e87d408 fix(local-recordings) more resilient way to get local audio
It's OK if we don't have any local audio track, we'll add it to the
mixer later.

The original bug / limitation that prompted the previous code no longer
applies since we always have a MediaStream (with audio tracks) which
we are recording.
2025-04-30 15:57:18 +02:00
Saúl Ibarra Corretgé
4fcab33afb feat(local-recordings) refactor how audio is captured
Capture the tab audio, which will include all participants and sound
effects, YouTube videos, anything playing in the tab.

This requires the `suppressLocalAudioPlayback` constraint since
otherwise the shared tab won't keep playing audio.

Local audio still needs to be injected seprarately, since it's not
played back to the local user.
2025-04-30 15:57:18 +02:00
Saúl Ibarra Corretgé
99669dc869 fix(local-recordings) style, for readability 2025-04-30 15:57:18 +02:00
Saúl Ibarra Corretgé
bf34c9ab19 fix(local-recording) require setCaptureHandleConfig 2025-04-30 15:57:18 +02:00
Saúl Ibarra Corretgé
f6f4ebf185 fix(recording) prevent multiple consent requests
A given recording should only trigger a single consent request.

The mechanism to notify about recording status updates may fire multiple
times since it's tied to XMPP presence and may send updates such as when
the live stream view URL is set.

Rather than trying to handle all possible corner cases to make sure we
only show the consent dialog once, keep track of the recording session
IDs for which we _have_ asked for consent and skip the dialog in case we
have done it already.
2025-04-30 15:30:51 +02:00
Calinteodor
b500c9dcde fix(base/connection/native): add a check for vpass meeting when we connect (#15978)
When we connect to a VPASS meeting on mobile we need to check for a couple of things.
2025-04-30 15:16:25 +03:00
Saúl Ibarra Corretgé
ee3f82bf0c feat(external_api,devices) drop use of isDeviceListAvailable
It's always true.
2025-04-29 19:37:55 +02:00
Calinteodor
3c27f15490 fix(invite/add-people-dialog): isCorsAvatarURL update (#15959)
For the case of AddPeopleDialog, isCORSAvatarURL takes url param as a function aka an Icon component, thus we need it to return false.
2025-04-24 09:41:47 +03:00
Saúl Ibarra Corretgé
607073c669 feat(local-recordings) remove recording time limit
Use the `showSaveFilePicker` File System Access API to pre-select the
file for download and stream the contents there. The browser uses a
temporary file as the buffer, thus not requiring us to buffer the
contents in memory.

Also change the container to MP4, since we have no way to fix the
seeking problem since we don't have the file in memory. Good news is
that it's supported since Chrome 126 and we can feature detect it!

Finally, add a helper `isSupprted` method which feature-detects
everything we need to make this work.

Ref: https://developer.mozilla.org/en-US/docs/Web/API/Window/showSaveFilePicker
Ref: https://groups.google.com/a/chromium.org/g/blink-dev/c/p1OMVj1FrMI/m/6FdLk7rZAQAJ
2025-04-23 13:52:02 -04:00
Hristo Terezov
348573b254 feat: Implement a closed caption history panel. 2025-04-21 08:56:31 -05:00
Saúl Ibarra Corretgé
7cf8902fdd fix(recording) skip consent dialog on Spot TV 2025-04-17 21:33:05 +02:00
Calinteodor
057dc0e4d2 feat(base/ui/native): Convert rem to px (#15934)
* feat(base/ui): create and use conversion helpers for tokens on mobile
2025-04-15 16:04:58 +03:00
Saúl Ibarra Corretgé
ce4cbacceb feat(web,input) add hint for 1Password to ignore input fields
When autoComplete is set to off, at least.
2025-04-15 14:35:15 +02:00
Saúl Ibarra Corretgé
af4f122602 fix(ui) default to "off" for autoComplete in Input 2025-04-15 14:35:15 +02:00
Hristo Terezov
b7f5b8ecd2 feat(toolbar): Enable 9th and 10th button 2025-04-15 07:20:20 -05:00
raduanastase8x8
affef1ac66 fix(web,input) Added description to inputs that filter participants 2025-04-14 13:38:27 +02:00
Saúl Ibarra Corretgé
7f95dbb6d6 fix(rtcstats) drop unnecessary dependency
We either expose those events in LJM or live with strings since they
match standard WebRTC states, but depending on the package just for 3
events is just not right.
2025-04-14 10:34:16 +02:00
Hristo Terezov
3c7829a457 fix(DesktopPicker): Stops displaying if closed too fast.
If the desktop picker window is closed before we load the sources, a JS error is thrown. From there the app goes into a broken state where when the screen sharing button is pressed nothing happens.  Explanation:
When the error from the _onCloseModal handler is thrown we don't reach the line to call the onSourceChoose callback. The result is that we never call the callback received by setDisplayMediaRequestHandler. It seems that when this happens on subsequent gDM calls electron won't call the setDisplayMediaRequestHandler and therefore we don't display the desktop picker.
2025-04-11 09:32:22 -05:00
raduanastase8x8
c486dc07db fix(overlay|prejoin) Added level to items with heading role 2025-04-11 11:06:53 +02:00
raduanastase8x8
6fa94b0bb4 style(general) Replaced fixed values for font-size and line-height with rem (#15917)
* style(general) Replaced font-size fixed units with rem

* style(general) Replaced font-size fixed units with rem in the tokens

* style(general) Replaced line-height fixed units with rem
2025-04-10 16:06:52 +03:00
Дамян Минков
6903ccf009 fix(features): Allow checking features when jwt is not available. (#15906)
* fix(features): Allow checking features when jwt is not available.

Fixes #15904.

* squash: Drop unused import.
2025-04-09 11:48:24 -05:00
Joshua Irmer
62d2c9f633 fix(UploadImageButton): add accessibility role
Signed-off-by: Joshua Irmer <irmer@gonicus.de>
2025-04-08 15:20:42 +02:00
damencho
d542b05bc4 feat(tests): Checks for mute icon in filmstrip and participants pane. 2025-04-04 12:44:46 -05:00
damencho
58b73d8dbd feat: Save state debug function. 2025-04-04 12:44:39 -05:00
damencho
5bc8bc8b64 fix(invite): Improves the logged error.
Print more information about the error, instead of just "Object(6)".
2025-04-03 13:39:38 -05:00
JPL
4dcc4b3711 fix(rn) adapt to new BackHandler eventing API 2025-04-03 15:45:47 +02:00
Дамян Минков
80081ce31c fix(logging): Logger names changed, adjusting. (#15879)
* fix(logging): Logger names changed, adjusting.

* chore(deps) lib-jitsi-meet@latest

https://github.com/jitsi/lib-jitsi-meet/compare/v1963.0.0+403ceed2...v1964.0.0+d413f971
2025-04-02 14:18:43 -05:00
Andrei Gavrilescu
5314d779ed feat(rtcstats): attach LogCollector storage to rtcstats lifecycle
* attach LogCollector to rtcstats lifecycle

* remove legacy param
2025-04-02 09:07:39 -05:00
Mihaela Dumitru
cf7c39d3e5 fix(recording) disable option to dismiss consent dialog (#15876) 2025-04-02 15:54:27 +03:00
Calin-Teodor
4e4f91f184 fix(base/ui): fallback to og value if not found in allTokens 2025-04-02 15:47:28 +03:00
Joshua Irmer
2ec3cfcb9e fix(audio-devices): fix index as pos in set
Signed-off-by: Joshua Irmer <irmer@gonicus.de>
2025-04-02 08:14:41 +02:00
damencho
0f5412715a feat(groupchat-polls-permissions): Backend implementation.
Adding UI option which is usable only with allowners module.
2025-03-31 11:49:13 -05:00
damencho
92df4bfbbb feat: Backend reports default permissions.
When any of the backend is used 'anonymous', 'jitsi-anonymous', 'internal_hashed', 'internal_plain', 'cyrus' and a participant becomes a moderator, because of external module or because set from jicofo we send to client with the self-presence about becoming moderator a default set of permissions which can be controlled via prosody config.
If using 'token' authentication the above applies only if there is a token and the token does not contain context.features.
2025-03-31 11:49:13 -05:00
damencho
f488ef1e5c feat(groupchat-polls-permissions): Native implementation. 2025-03-31 11:49:13 -05:00
Calin-Teodor
716c6cc567 fix(mobile/external-api): check types for recording error, initiator, terminator 2025-03-28 17:37:14 +02:00
Дамян Минков
8745f07052 fix(jwt): Fix tenant matching for features when tenant is missing. 2025-03-26 19:13:43 -05:00
Saúl Ibarra Corretgé
0a467f78ee feat(isEmbedded) limit mobile meetings too 2025-03-26 23:39:16 +01:00
Saúl Ibarra Corretgé
1e8cc9d085 feat(inIframe/isEmbedded) add ability to detect generic embedding
On web we detect if we run on an iframe, and on mobile we detect if the
app is one of ours.
2025-03-26 23:39:16 +01:00
Calin-Teodor
101bd637b0 feat(notification/native): remove number of lines limitation for description 2025-03-25 16:34:11 +02:00
Mihaela Dumitru
6654feacee fix(recordings) skip consent for jibri participant (#15825) 2025-03-21 13:40:30 +02:00
Saúl Ibarra Corretgé
3d4defd799 feat(lint) update to eslint-config-jitsi v6 2025-03-20 17:17:41 +01:00
Naman Jain
6de935b372 fix(welcome) open external links in a new tab 2025-03-20 16:16:46 +01:00
Horatiu Muresan
45626a0d23 feat(groupchat-polls-permissions) Implement groupchat and polls creation for web (#15806) 2025-03-19 22:02:32 -05:00
Calinteodor
5f44c7580d feat(base/ui): update tokens (#15688)
* Make createColorTokens generate values based on jitsiTokens and tokens
2025-03-18 18:00:54 +02:00
Joshua Irmer
fecac0322e fix(prejoin): polite name error message
Signed-off-by: Joshua Irmer <irmer@gonicus.de>
2025-03-17 22:37:17 +01:00
Calin-Teodor
2ba57730cd fix(base/config): apply disableProfile check only for web buttons 2025-03-17 12:49:58 +02:00
Ahmad Faraz
78c304cba8 Annotate with type (#15782) 2025-03-15 12:13:29 +02:00
Дамян Минков
7d6990b3f8 feat(logging): Let ljm handle its logging to rtcStats.
* feat(logging): Let ljm handle its logging to rtcStats.

* chore(deps) lib-jitsi-meet@latest

https://github.com/jitsi/lib-jitsi-meet/compare/v1919.0.0+d4a47d0e...v1922.0.0+25031534

* squash: Small gap between stopping screenshare and turning on video.

We see some FF failures and not sending video in p2p mode after enabling video back one shortly after switching off screenshare.
2025-03-13 10:49:38 -05:00
Joshua Irmer
a51e97f318 fix(settings): notification tab restructure
Signed-off-by: Joshua Irmer <irmer@gonicus.de>
2025-03-13 16:25:40 +02:00
Lakshay
e9236fd9ff fix: Disable lobby chat emoji reactions
* fixed lobby chat emoji react

* disabled the chat reaction

* removed previous changes

* fixed lint errors
2025-03-12 15:06:59 -05:00