Commit Graph

39320 Commits

Author SHA1 Message Date
Paul Trudel
de83c75716 Allow each request to define its own supported content types 2024-04-22 16:11:10 -04:00
Paul Trudel
1b481a9500 Changed content type validation error key and message 2024-04-18 15:29:34 -04:00
Paul Trudel
e24e358ddd Reject requests with a body but no Content-Type header 2024-04-18 10:58:22 -04:00
Paul
8e40d91877 Removed support for application/json content 2024-04-15 11:29:03 -04:00
Paul
183983be7f Added request content type validation 2024-04-15 11:29:03 -04:00
Paul
1e9e461f50 Check for pressence of query and body 2024-04-15 11:29:03 -04: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
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
Anton Georgiev
29ea5c3e07
Merge pull request #20001 from ramonlsouza/fix-breakout-styles
fix: breakout styles
2024-04-12 13:12:48 -04: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
transifex-integration[bot]
fcbfcb1bbc
Translate en.json in zh_TW (#19979)
100% translated source file: 'en.json'
on 'zh_TW'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-04-10 10:19:47 -04:00
Anton Georgiev
8374e8b21a
Merge pull request #19797 from JoVictorNunes/issue-19181
fix(poll): avoid rendering polling component twice
2024-04-05 11:06:46 -04:00
Anton Georgiev
8502b50d1b
Merge pull request #19779 from danielpetri1/PR-19707
fix(bbb-export-annotations): Flag to force CairoSVG to embed images
2024-03-27 22:45:52 -04:00
transifex-integration[bot]
7bf1cdd028
Translate en.json in eu (#19920)
100% translated source file: 'en.json'
on 'eu'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-27 17:50:15 -04:00
Anton Georgiev
c7006d8d3f
Merge pull request #19875 from bigbluebutton/translations_60cd9b750d2d41cd929b29887b4db1e8_fa_IR
Updates for project BigBlueButton v2.7 HTML5 client and language fa_IR
2024-03-21 14:41:58 -04:00
transifex-integration[bot]
efa3ca0245
Translate en.json in fa_IR
100% translated source file: 'en.json'
on 'fa_IR'.
2024-03-21 16:47:27 +00:00
transifex-integration[bot]
6f4cb742d8
Updates for project BigBlueButton v2.7 HTML5 client and language tr (#19863)
* Translate en.json in tr

100% translated source file: 'en.json'
on 'tr'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-20 20:16:32 -04:00
Anton Georgiev
3359289e1a
docs: added link to 2.7.6 2024-03-19 14:33:54 -04:00
Anton Georgiev
fdae7b48f4
chore: Bump release to 2.7.6 2024-03-19 10:10:11 -04:00
Paulo Lanzarin
07db720f3e
Merge pull request #19848 from prlanzarin/u27/build/sfu2133
[2.7] build(bbb-webrtc-sfu): v2.13.3
2024-03-19 11:09:33 -03:00
prlanzarin
2c2d2186ea build(bbb-webrtc-sfu): v2.13.3
* 2.13.3
  * fix(audio): user is deafened when transferring to breakout rooms
  * build(mediasoup): 3.13.24
2024-03-19 10:06:57 -03:00
Marc Kohaupt
990daeeb07
docs: bash script reads /etc/turnserver.conf to get realm and secret. (#18184)
* bash script reads /etc/turnserver.conf to get realm and secret.
2024-03-18 16:27:27 -04:00
Anton Georgiev
ae9a601660
Merge pull request #19810 from bigbluebutton/translations_60cd9b750d2d41cd929b29887b4db1e8_fr
Updates for project BigBlueButton v2.7 HTML5 client and language fr
2024-03-18 10:09:43 -04:00
Anton Georgiev
daf03638ae
Update faq.md 2024-03-17 21:59:46 -04:00
transifex-integration[bot]
2fc3119c14
Translate en.json in el_GR (#19821)
100% translated source file: 'en.json'
on 'el_GR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-15 14:56:52 -04:00
transifex-integration[bot]
2466bb289e
Translate en.json in fr
100% translated source file: 'en.json'
on 'fr'.
2024-03-15 14:42:31 +00:00
transifex-integration[bot]
a0733d2c5b
Translate en.json in fr
100% translated source file: 'en.json'
on 'fr'.
2024-03-15 14:42:07 +00:00
Anton Georgiev
882ce76d75
Merge pull request #19803 from bigbluebutton/bbb27bwr070
[2.7] build(bbb-webrtc-recorder): v0.7.0
2024-03-14 18:09:01 -04:00
Anton Georgiev
9ada7458d3
Merge pull request #19801 from bigbluebutton/bbb27sfu2132
[2.7] build(bbb-webrtc-sfu): v2.13.2
2024-03-14 18:08:18 -04:00
Paulo Lanzarin
766f5e3af7
build(bbb-webrtc-recorder): v0.7.0
### v0.7.0

* fix: panic due to invalid OPUS samples pushed to builder
* build(docker): go 1.21
* build: bump pion/webrtc/v3 to v3.2.24
2024-03-14 14:09:29 -03:00
Paulo Lanzarin
f41aec10d4
build(bbb-webrtc-sfu): v2.13.2
### v2.13.2

* feat: add incrementBy util to prometheus-agent
* feat(core): add event callback and dispatch metrics
* fix: another edge case where subprocesses fail to recover

### v2.13.1

* fix: subprocesses fail to recover from multiple crashes

### v2.13.0

* feat: add inbound queue size and job failure metrics
* feat: add dry-run recording mode
* feat: add time_to_mute/unmute metrics
* feat: add warn logs for when hold/mute actions exceed max bucket time
* feat(mediasoup): add mediasoup_ice_transport_protocol metric
* feat(mediasoup): per-worker resource metrics
* feat(mediasoup): add worker label to transport/router/prod/cons metrics
* fix(audio): log and track metrics for hold/unhold timeouts
* fix(bbb-webrtc-recorder): exception when removing nullish recording callbacks
* fix(mediasoup): check for null producers
* fix(screenshare): resolve subscriberAnswer job
* fix(audio): prevent false positives in TLO toggle metrics
* fix(test): wait for recorder to boot in stress test script
* fix: set appropriate initial bitrates
* fix(mediasoup): max bitrate for consumer-only transports not effective
* fix(mediasoup): missing rtcp-fb and header exts in consumer-only offers
* fix(audio): stricter adherence to router.mediaCodecs settings
* fix(video): exception when destructuring null camera source
* fix(mediasoup): only call consumer.changeProducer when appropriate
* fix(mediasoup): capture icestatechange == disconnected
* fix(mediasoup): invalid RTP header exts in default config
* refactor: replace logger lib, Winston -> Pino
* chore(mediasoup): expose webRtcTransport's iceConsentTimeout config
* build: mediasoup-client@3.7.4
* build: mediasoup@3.13.23
* build: bump Docker and nvmrc to Node.js 20 (LTS)
2024-03-14 14:07:43 -03:00
danielpetri1
1b84bb318a Set default flag value to false 2024-03-14 15:39:55 +00:00
transifex-integration[bot]
ac8acfe507
Updates for project BigBlueButton v2.7 HTML5 client and language ja (#19780)
* Translate en.json in ja

100% translated source file: 'en.json'
on 'ja'.
---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-14 10:42:24 -04:00
João Victor
64c4567d06 fix(poll): avoid rendering polling component twice 2024-03-14 11:20:08 -03:00