Commit Graph

12295 Commits

Author SHA1 Message Date
Anton Georgiev
d484867c99
Merge pull request #20122 from prlanzarin/u27/fix/review-mobile-audio-chevron
fix(audio): review device selection in mobile endpoints
2024-04-30 14:39:14 -04:00
Anton Georgiev
403959bc34
Merge pull request #20123 from prlanzarin/u27/fix/assorted-br-crashes
fix: undefined accesses causes crashes in actions-bar breakout utils
2024-04-30 14:38:14 -04:00
prlanzarin
5f59453548 fix: crash at meeting-ended due to undefined access + incorrect meetingID
Fixes an undefined access crash at the meeting-ended component caused by
trying to access a property of a nullish user document.
Fixes incorrect access to the meetingId property of the user document -
currently fetched as meetingID, which doesn't exist.
2024-04-30 14:44:20 -03:00
prlanzarin
2084392ac7 fix: undefined accesses causes crashes in actions-bar breakout utils
Multiple undefined accesses in actions-bar's service, mainly related to
breakouts and ageneral Meetings info, cause crashes in production
environments - most likely in reconnection scenarios.

Guarantee that nested data is safely accessed.
2024-04-30 14:41:16 -03:00
prlanzarin
141c553b17 fix(audio): review device selection in mobile endpoints
Mobile users have no way to change I/O devices after joining audio.
The removal of the audio options chevron in mobile browsers was supposed
to be replaced by something else - in this case, by the dedicated
leave/join audio button. That didn't happen, leave/join audio button
retained the old behavior.

Review device selection in mobile endpoints via two UI/UX changes:
  - Restore the device selection chevron/icon in mobile endpoints
  - Override the leave/join button action in mobile endpoints so that it
    opens the device selection contextual menu, which also includes the
    "Leave audio" option. This retains the old behavior (leaving audio)
    while also providing an way for users to change devices mid-call in
    mobile browsers.
2024-04-30 14:29:53 -03:00
prlanzarin
9956af9aa1 fix(audio): improve help modal for listen only scenarios
The audio troubleshooting modal has very microphone-specific strings,
which might confuse users trying to join listen only.

Review the Help screen so that listen only scenarios are more generic.
As a bonus, review the unknownError locale with a more actionable text.
2024-04-30 13:59:08 -03:00
prlanzarin
f91402bc4a fix(audio): remove listen only retry routines
Listen only has a built-in retry routine on join failures that's
convoluted half-broken. It stems from the Kurento era where it could
fail randomly due to a myriad of reasons.
Production logs indicate that the retry is seldom used nowadays in
mediasoup-based environments. The presence of the retry also breaks
the error troubleshooting modal when actual failures happening, leaving
users in the dark about what's happening.

Remove the listen only retry code from AudioManager and bubble up any
join failure to the callers.
2024-04-30 13:58:06 -03:00
prlanzarin
a2e22fffb3 fix(audio): broken connection stats on Firefox >= 125
WebRTC-based stats generation in the connection status modal is broken
on Firefox >= 125. A broken type check coupled with a new partially
implemented RTCIceTransport dictionary causes and undefined function
call when fetching the selected candidate pair. Since that error is
unhandled, collection breaks.

Correctly check for the getSelectedCandidatePair method availability in
RTCIceTransport so that it skips to pair inference from getStats if
necessary.
2024-04-30 13:44:29 -03:00
Tainan Felipe
da60b246d0 Fix: user reaction not showing right emoji 2024-04-26 16:52:28 -03:00
Anton Georgiev
0eae452d25
Merge pull request #19987 from lfzawacki/v2.7.x-release-more-languages
[2.7] Support more transcription languages
2024-04-19 11:53:22 -04:00
Arthurk12
49c33b4eea fix(whiteboard): check before manipulating pan tool class list
Since the pan tool is only available for the presenter, it has to be checked
whether it actually exists before attempting to modify its class list.
2024-04-16 16:18:30 -03:00
Arthurk12
45e1724954 fix(presentation): toolbar width on small screens
Forces the toolbar width to be the maximum available width, which is
the width of the media area, on mobile devices. Also allow the toolbar to
overflow with an horizontal scroll when the available width is not enough
to display all of its contents.
2024-04-16 15:46:50 -03:00
Anton Georgiev
916d601d2b
Merge pull request #20008 from prlanzarin/u27/fix/crash-videoprovider-onmessage
[2.7] fix(bbb-html5): crash on video-provider unmount
2024-04-12 15:54:17 -04:00
Anton Georgiev
85b5e83bd5
Merge pull request #20013 from prlanzarin/u27/fix/arthurk12-undefined-role-crash
[2.7] fix: add safeguards when returning user roles
2024-04-12 15:53:42 -04:00
Anton Georgiev
6eaf8cd44d
Merge pull request #20004 from prlanzarin/u27/fix/audio-less-toasts
[2.7] fix(audio): minimize redundant audio exit toasts
2024-04-12 15:53:18 -04:00
Anton Georgiev
b98340bd27
Merge pull request #20003 from prlanzarin/u27/fix/ua-invalid-version-number
[2.7] fix: crash due to invalid UA version number in WKWebView (backport)
2024-04-12 15:37:15 -04:00
Anton Georgiev
10cb2f3875
Merge pull request #20012 from prlanzarin/u27/fix/arthurk12-screenreader-crash
[2.7] fix(screen-reader): add safeguards for adding alerts
2024-04-12 15:33:28 -04:00
Anton Georgiev
2f3e709324
Merge pull request #20007 from prlanzarin/u27/fix/invalid-metadataprop-access
[2.7] fix(bbb-html5): crash due to undefined metadataProp access
2024-04-12 15:32:17 -04:00
Anton Georgiev
711487c2c9
Merge pull request #20009 from prlanzarin/u27/fix/onconnectionstatechange-crash-rc
[2.7] fix(bbb-html5): crash when stopping WebRTC peers
2024-04-12 15:15:03 -04:00
Anton Georgiev
e511535adc
Merge pull request #20006 from prlanzarin/u27/fix/audio-answerer-gum-failure
[2.7] fix(audio): acquire streams before negotiation when peer is answerer
2024-04-12 15:14:17 -04:00
Anton Georgiev
fda4a5a2ff
Merge pull request #20005 from prlanzarin/u27/fix/crash-getBoundingClientRect-emojirain
[2.7] fix(reactions): crash when interactionsButton coords are absent
2024-04-12 15:13:33 -04:00
Arthurk12
72032f2397 fix: add safeguards when returning user roles 2024-04-12 15:14:49 -03:00
Arthurk12
6cb0e914ab fix(screen-reader): add safeguards for adding alerts
Adds checks for the alert's text and DOM element before adding screen
reader alerts.
2024-04-12 15:09:23 -03:00
prlanzarin
68f66a1fbb fix(audio): handle NotAllowedError in skipCheck:true scenarios
In scenarios where the join audio flow skips echo test, NotAllowedError
(and any other errors) are all being mashed together under a generic
MEDIA_ERROR object.

Properly handle specific errors in audio-manager so they're correctly
render in the audio modal help screen.
2024-04-12 14:40:51 -03:00
prlanzarin
501d627392 fix(audio): review audio modal help screen
- Adds a new Help view for unknown error codes
- Correctly detect NotAllowedError (permissions) - they are currently
  being treated like unknown errors in the Help modal
- Rephrase NotAllowedError help text; make it more succint and direct
- Rephrase the unknown error help text; make it more succint and direct
  - Add error code and message to that view
- Add public.media.audioTroubleshootingLinks to allow referencing KB
  links on the Help modal
  - See inline docs
2024-04-12 14:40:44 -03:00
prlanzarin
610f3b165b fix(bbb-html5): crash when stopping WebRTC peers
There's a race condition that may cause a client crash whenever a
connectionstatechange callback is cleaned up in a peer without a
valid peer connection present in our custom RTCPeerConnection wrapper.

Check for peerConnection availability in the WebRtcPeer wrapper before
trying to clean up its connectionstatechange callback.
2024-04-12 14:38:34 -03:00
prlanzarin
10a6a840b5 fix(bbb-html5): crash on video-provider unmount
There's a race condition that may cause a client crash whenever a
video-provider's unmount procedure is run, but its signalling websocket
is undefined. The WS's callback handlers are re-assigned without
checking for the socket's availability, causing an unhandled TypeError.

The WS may be undefined in a couple of scenarios, e.g.: unmouting before
the socket was successfully set up, unmounting while a reconnect is in
place etc.

Check whether the socket exists before accessing it in video-provider's
componentWillUnmount routine.
2024-04-12 14:33:35 -03:00
prlanzarin
71f958ca47 fix(bbb-html5): crash due to undefined metadataProp access
A client crash may happen if either the Meeting collection or the
document's metadataProp attribute are undefined whenever the
getFromMeetingSettings util is called to fetch metadata.
It's debatable whether anything is working in the client if the
documents being accessed here are unavailable, but it'll still be logged
and might bork an ongoing reconnect.

Use optional chaining + nullish coalescing to avoid causing TypeErrors
in those situations while also returning default metadata values
properly.
2024-04-12 14:31:38 -03:00
prlanzarin
555a8f6522 fix(audio): acquire streams before negotiation when peer is answerer
When a sendrecv peer acts as the answerer, gUM is only called _after_
the remote offer is received. This is fine, but the error handling runs
different in that scenario in a way that eventual gUM errors are treated
as negotiation errors, leading to inconsistencies when surfacing the
error to end users.

If a peer is acting as answerer and is a transceiver, acquire the local
streams _before_ actual negotiation so that gUM errors are surfaced
correctly (and we spare uneeded negotiation steps).
2024-04-12 14:29:38 -03:00
prlanzarin
66788e9697 fix(reactions): crash when interactionsButton coords are absent
The client may crash whenever a emoji rain animation is triggered, but
the interactions button element cannot be located. This happens because
the button coordinates are fetched without checking whether the element
exists.

Get the coordinate fetching method to return null if the
interactionsButton element cannot be located, and ignore the emoji rain
action if that is the case. Whenever no valid coordinates are found, log
an warning so we can track this and figure out what's happening with the
button.

Fix a few typos in the getInteractionsButtonCoordinates method.
2024-04-12 14:27:20 -03:00
prlanzarin
4e93a4de72 fix(audio): minimize redundant audio exit toasts
Audio exit toasts are fired in some redundant situations, e.g.: when the
error help screen is toast.

Change the logic a bit so that it's only fired when the audio help modal
won't be shown, i.e.: when audio had succesfully connected.
2024-04-12 14:23:25 -03:00
prlanzarin
3e845076cb fix: crash due to invalid UA version number in WKWebView
There are some scenarios (e.g. WKWebView) where Bowser can't detect the
Safari version number correctly, which leads to a client crash due to an
invalid string.split call in UnsupportedComponent.

In such cases, use the WebKit version to determine it. If that's not the
case and the version number is still unavailable, log an warning and
return Infinity so that we do not deny access to the user (even if
we're uncertain about whether it's a supported browser);
2024-04-12 14:06:44 -03:00
Ramón Souza
e4cced4b92 fix breakout styles 2024-04-12 13:35:01 -03:00
Lucas Fialho Zawacki
f1bad0257d feat(transcription): Add translation strings for ca-ES and documentation links 2024-04-10 16:32:11 -03:00
Lucas Fialho Zawacki
33a704981e feat(captions): Remove speechVoices check before transcription 2024-04-10 11:33:10 -03:00
João Victor
64c4567d06 fix(poll): avoid rendering polling component twice 2024-03-14 11:20:08 -03:00
Anton Georgiev
c69b79872b
fix(client): undefined currentUserAway 2024-03-11 09:50:23 -04:00
Anton Georgiev
4e8a708c95
Merge pull request #19608 from lfzawacki/gladia-2.7
fix: Several Gladia transcription fixes
2024-03-07 15:32:54 -05:00
Anton Georgiev
b26e32d519 fix(bbb-html5): Use CDN for resource of layouts 2024-03-07 11:11:03 -05:00
Ramón Souza
f6b2d276a7 fix download presentation popup 2024-03-04 10:26:50 -03:00
Ramón Souza
abea38e718
Merge pull request #18762 from Scroody/I-18444
refactor: Changes to layout toast's workflow
2024-02-28 16:16:35 -03:00
André
6cf3cd47fb Change of approach for the debounce 2024-02-28 15:41:51 -03:00
Ramón Souza
4879d3e688
Merge pull request #19616 from JoVictorNunes/issue-19571
fix(layout): `defaultLayout` join parameter
2024-02-27 13:17:20 -03:00
André
f255f4b69e Later alterations 2024-02-26 15:52:24 -03:00
André Castro
fbf5cfa7d2
Update bigbluebutton-html5/imports/ui/components/notifications/container.jsx
Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-02-19 10:56:21 -03:00
Jan Kessler
2f091ffd3d
refactor: End meeting button tweaks (#19261)
* use label endMeetingForAll also for end button in settings dropdown

* change end button icon in settings dropdown from icon-bbb-application to icon-bbb-close
2024-02-16 15:50:52 -05:00
Anton Georgiev
1f97a6f253
fix: Drop heavy log from sendBulkAnnotations.js (#19633) 2024-02-16 15:46:18 -05:00
Anton Georgiev
95c945f4b3
fix: Aviod presentation conversion causing a crash (#19600) 2024-02-14 14:48:30 -05:00
João Victor
fa872e2b55 fix(layout): defaultLayout join parameter 2024-02-09 18:02:13 -03:00
André
22be736c88 Fix: Modal of the inactivity inspection does not show up 2024-02-08 14:59:14 -03:00
Lucas Fialho Zawacki
aca3730d9f fix(captions): Use default transcription value with external providers 2024-02-08 14:50:31 -03:00
Lucas Fialho Zawacki
388858000c feat(gladia): Print Gladia errors in the console 2024-02-08 14:50:24 -03:00
Lucas Fialho Zawacki
a744193536 fix(): Use captions.dication flag to show/hide dication button 2024-02-08 14:50:17 -03:00
Lucas Fialho Zawacki
8d741fa016 fix(captions): Fix caption display 2024-02-08 14:48:44 -03:00
Ramón Souza
5cf2b78d22
Merge pull request #19538 from ramonlsouza/19536-27
fix: Incorrect hover style on the upload presentation button in the polling menu (2.7)
2024-02-05 10:51:08 -03:00
Ramón Souza
e13fc75f6d fix presentation uploader crash 2024-02-01 15:49:13 -03:00
Ramón Souza
4ede1a1218 remove no presentation button styles in poll panel 2024-01-30 10:40:12 -03:00
Paulo Lanzarin
e1dc4b55e4
fix(bbb-html5): customHeartbeat would not close stale sessions, + (#19017)
* fix(bbb-html5): customHeartbeat would not close stale sessions, +

The [disabled by default] custom heartbeat included in Meteor's server
does not end connections when they are considered unhealthy/stale, which
deviates a bit from the default implementation. See:
https://github.com/bigbluebutton/bigbluebutton/pull/11486.

This commit includes a call to the default heartbeat termination timeout
so sockets are correctly cleaned up when the custom heartbeat is
activated. It also adds a customHeartbeatUseDataFrames config to allow
controlling whether the custom heartbeat should use WS data frames as
valid heartbeats as well - this should only be useful for
testing/debugging purposes and the default behavior (true) is
maintained.

As a side note: this change spun off from an investigation where some
problematic networks were triggering periodic client re-connects due to
the default heartbeat failing. Investigation points to the control
frames being put alongside fragmented WS data frames and the server side
failing to recognize the former - which means pong frames would be missed and
the health check would fail. Since the default heartbeat _does not_
account for data frame traffic (eg DDP payloads), it would shut down the
client's WS even though it was healthy.
The custom heartbeat _does_ account for data frames, which mitigates
that scenario and prevents unecessary reconnections.

* fix(bbb-html5): frontend crash due to undefined vars in customHeartbeat 

Meteor frontends may crash when customHeartbeat is enabled
due to an undefined access in the heartbeat`s logger.

Add optional chaining to the session props access so it won`t crash and tune down some log levels around that area.
2024-01-22 11:10:41 -05:00
Anton Georgiev
792add0a3d
Merge pull request #19266 from Ithanil/fix_raise-hand_away_reactions
Fix: away and raiseHands 'reactions' being hidden by avatar image
2024-01-15 12:29:08 -05:00
Ramón Souza
8495777d5b feat: join param for default animations setting value 2024-01-15 11:59:40 -03:00
Anton Georgiev
59cdb136ad
Merge pull request from GHSA-r3vv-c788-9fph
fix(sec): filter tags in presentation name
2024-01-11 16:07:18 -05:00
Anton Georgiev
f50e10b5ea fix(sec): filter tags in presentation name 2024-01-10 14:15:56 -05:00
Ramón Souza
35bf9b537c
Merge pull request #19281 from Arthurk12/bbb/2.7/19278
fix(chat): exported presentation notification
2024-01-10 15:57:13 -03:00
KDSBrowne
fe6993d699 fix wheel zoom jitter 2024-01-03 17:58:25 +00:00
Arthurk12
333b6727b9 fix(chat): exported presentation notification
Adds a specific function to handle the creation of the exported presentatio's
toast notification that were missing.
2023-12-04 17:39:32 -03:00
Gustavo Trott
4f8fa07702
Merge pull request #19232 from Ithanil/labelless_leave_meeting_button 2023-12-01 07:24:17 -03:00
Jan Kessler
62c7f5a35a fix away and raiseHands 'reactions' being hidden by avatar image 2023-11-30 19:24:14 +01:00
Lucas
125d70699b
feat: Initial implementation of Gladia transcriptions to BBB 2.7 (#19091)
* Demo changes

* Revert "feat(captions): no longer writes in the pad"

This reverts commit a76de8c458.

* feat(transcriptoin): Add config options for the transcription backend

* feat(transcription): Add autodetect option to cc chevron

* feat(transcription): Move transcription options into settings modal

* feat(transcription): Set transcription options via userdata

* fix(transcription): Correct userdata for settings transcription params

* feat(transcriptions): options to auto enable caption button

* feat(transcriptions): Option to hide old CC pad funcionality

* fix(transcription): Fix PR comments

* fix(transcription): Refactor updateTranscript to prevent null user and make it more readable

* feat(transcription): bbb_transcription_provider can be set via userdata

* fix(transcription): Use base10 for parseInt

* fix(transcriptions): Fix CC language divider when using webspeech

* fix(transcriptions): Use a default pad in the settings instead of hardcoding 'en'

We still need to use a language pad such as 'en', but in the future we can better
separate these systems.

* fix(transcription): Add a special permission for automatic transcription updates to the pad and restore old per user updates permission

* feature(transcriptions): Include transcriptions submenu and locales

* chore: bump bbb-transcription-controller to v0.2.0

* fix(transcription): Add missing menu files

* fix(transcription): Fix transcription provider options in settings.yml

* fix: setting password for bbb-transcription-controller

* build: add gladia-proxy.log for transcription-controller

* fix(transcriptions): Remove transcript splitting and floor logic from akka apps

* fix(captions): Show long utterances as split captions, show multiple speaker captions

* chore: bump bbb-transcription-controller to 0.2.1

---------

Co-authored-by: Anton Georgiev <anto.georgiev@gmail.com>
2023-11-30 10:10:36 -05:00
Jan Kessler
c88c23302e add and use label endMeetingForAll in dropdown of leave meeting button 2023-11-30 15:40:36 +01:00
Jan Kessler
283a029e6c change end meeting icon in leave-button dropdown from icon-bbb-application to icon-bbb-close 2023-11-29 14:28:11 +01:00
Jan Kessler
08115a93a6 remove divider in settings dropdown, if leave button is enabled 2023-11-29 10:53:22 +01:00
Jan Kessler
630c79e5c7 add aria-label to leave meeting button
add description to leave meeting button
2023-11-29 10:38:37 +01:00
Jan Kessler
742733f7a8 fine-tuning of left/right margin for leave-meeting button 2023-11-29 09:33:48 +01:00
Jan Kessler
2ac1e7cb97 also remove end meeting from settings dropdown if direct leave button is enabled 2023-11-28 17:58:07 +01:00
Jan Kessler
f19aac1895 add dropdown selection for leave/end on leave meeting button 2023-11-28 17:55:34 +01:00
Jan Kessler
409cf1decb add margin and tooltip instead of label to new leave meeting button 2023-11-27 16:46:19 +01:00
Gustavo Trott
cd21fffaaa fix: Button 'Open Tablet app' breaks when the meeting name contains white space 2023-11-24 10:19:40 -03:00
Ramón Souza
70cccbe9b7
Merge pull request #19127 from KDSBrowne/bb27-smooth-cursor
fix: Add Transitions To Improve Cursor Movement Fluidity
2023-11-23 13:02:41 -03:00
Ramón Souza
9dd0bb56e2 upgrade tooltip dependency 2023-11-13 10:51:03 -03:00
KDSBrowne
c7149c931b add transitions to cursors for smoothing 2023-11-08 00:20:59 +00:00
Anton Georgiev
c594be415a
Merge pull request #19072 from ramonlsouza/issue-18937
fix: The shortcut for raising hand is not functioning as expected @ 2.7.1
2023-11-07 13:17:14 -05:00
Anton Georgiev
1b61900548
Merge pull request #19080 from ramonlsouza/issue-12614
feat: leave meeting button
2023-11-07 09:18:01 -05:00
Ramón Souza
fd8f0bddab add danger button hover styles 2023-11-07 10:07:30 -03:00
Ramón Souza
3de1cfed29 leave meeting button 2023-11-07 09:54:17 -03:00
Ramón Souza
37870bb1d2 move manage layouts to three-dots menu 2023-11-06 15:37:52 -03:00
Ramón Souza
bedef5bf89 restore raise hand shortcut 2023-11-06 09:48:38 -03:00
Ramón Souza
49864dc6e6
Merge pull request #19062 from antobinary/toast-on-self-view
refactor: Add a toast warning you that your webcam is still streaming…
2023-11-06 08:06:58 -03:00
Anton Georgiev
221327e4c5
Update bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/user-actions/component.jsx
Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2023-11-02 16:06:41 -04:00
Anton Georgiev
17427fbd9b refactor: Add a toast warning you that your webcam is still streaming (self view disabled) 2023-11-02 14:07:30 -04:00
Anton Georgiev
42b7905065 refactor: rename Songs to Music in BBB Timer 2023-11-02 12:20:25 -04:00
Ramón Souza
1b65c36743 improve throttle function 2023-11-01 17:36:46 -03:00
Ramón Souza
0688cba0b4 fix leading:true, trailing:false throttle 2023-11-01 17:36:26 -03:00
Ramón Souza
a1dd1371e8
Merge pull request #18977 from Scroody/patch-2
Fix: Moderator lowering hand from toast broken
2023-10-23 11:40:55 -03:00
Ramón Souza
ed44b33b15
Merge pull request #18958 from Arthurk12/bbb/2.7/18763-1
fix(user-list): center icons on apple devices
2023-10-23 11:39:37 -03:00
André Castro
281308ba4a
Update component.jsx 2023-10-23 11:12:50 -03:00
André Castro
371378cca8
Update bigbluebutton-html5/imports/ui/components/raisehand-notifier/component.jsx
Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2023-10-23 11:11:11 -03:00
André Castro
94347949d9
Update component.jsx 2023-10-19 13:18:10 -03:00
Ramón Souza
01c3f6fb45
Merge pull request #18959 from lfzawacki/bbb-2.7
feat(reactions): port new reactions and fix emojiRain
2023-10-18 09:44:08 -03:00
Ramón Souza
577ed647d9
Update bigbluebutton-html5/imports/ui/components/emoji-rain/component.jsx 2023-10-18 09:28:30 -03:00
Lucas Fialho Zawacki
20b4ffe7dd fix(reactions): Remove unused file 2023-10-17 19:06:37 -03:00