Here is another series of tests / analysis to show that the Zoom Web SDK is not compatible with a 3 digits major version of browsers (Chrome in this case since it’s the first reaching 3 digits in a few days)
You’ll find the same analysis as a document on the ticket mentioned earlier in this thread. I add the details here for those who cannot access out ticket to share the details.
The issue
As a reminder, the issue is that if one participant joins a meeting with a major version of 3 digits on Chrome browser, voices going in and out for that participant will be helium-like voices.
If 2 or more participants join the same meeting with a 3 digit major version, the same issue happen except that the voices are high tone-like and not helium-like.
How to simulate a major or minor version of chrome browser with 3 digits
As you may know, the Chrome team released two features in early December to be able to test applications with a chrome version to 100 in the user-agent string.
You can activate the simulation of a Major version of 100 for your Chrome browser, or (from Chrome 98) the simulation of a Minor version of 100 for your Chrome browser, from your Chrome flags as shown below
With that in mind, here are 3 simple tests you can perform yourself to reproduce & find the condition of the issue.
Case 1 (base case) : Simulating a major version of 100 on one participant in a Zoom meeting, joining via Web SDK and with SAB (Shared Array Buffer) active
Context
- 3 participants join a Zoom meeting from a web application using the Zoom Web SDK (any version of the SDK is affected so this parameter does not matter)
You can use your own application, or the official Zoom Demo web application.
- Only one of the participants joins with a simulated major version of 100 of its Chrome browser. The two other participants join with a stable release of Chrome, no matter the version.
- Participants must activate their audio (join by computer) and talk to each other.
- To have SAB active on the application you use for the tests, either setup the SAB Origin Trial, or setup the web isolation.
Results
- Any audio coming out from User 1 and at the destination of User 2 or User 3 has a helium- like voice on the User 2 and 3 sides.
- Any audio coming out from User 2 and at the destination of User 1 has a helium-like voice on the User 1 side.
- Any audio coming out from User 2 and at the destination of User 3, and vice versa is normal.
As a result, User 1 voice is helium-like for any other participant, and any other participant voice is helium-like for User 1. Other participants can hear each other with a normal voice.
Case 2 : Same as Case 1 but with SAB non active
Context
The context is the same as case 1, but with Shared array buffer non active (no SAB Origin Trial, no web isolation on the tested application)
Results
No audio issue, except that the quality is not perfect since SAB is not active.
Case 3 : Simulating a minor version of 100 on one participant in a Zoom meeting, joining via Web SDK and with SAB (Shared Array Buffer) active
Context
The context is the same as case 1, with the difference that User 1 activates the second Chrome flags to simulate a minor version of Chrome 100. Deactivate the Major version flag if it’s still active, and activate the Minor version flag.
Results
No audio issue.
Conclusion
As illustrated in case 1, the issue happens only when both the Share Array Buffer is active and the Chrome major version is 3 digits in the user agent string. for at least one of the participants.
Another point illustrated in case 1 is that only the users having these conditions are affected (but it affects how the other participants hear them). A special note here, when multiple participants join the same meeting with these conditions, instead of being helium-like, their voice (and what they hear) is high tone-like (slightly more difficult to hear the difference but easy when you are used to the voice of someone)
All of this shows that the issue is within User 1 Zoom Web SDK components, and seems to be at the SAB feature level, altering the audio out & in processing.
Since the only difference between a base Chrome browser and the one with the Major version 100 flag activated is the user-agent string sent by the browser, this indicates that something on the Zoom Web SDK is done based on the user-agent string and bugged when the major version of Chrome has 3 digits.
My guess here is that the audio processing is based on the browser type & version, and because of these 3 digits not being handled correctly, the component fails to correctly compute audio output data and interpret audio input data coming from other participants.
Again, we are not Zoom’s developers, and only Zoom’s developers can say whether this is at Zoom level (implementation / usage of SAB), or deeper on the Chrome side in the SAB feature itself. And this is why we ask you to investigate this matter more seriously, because only you can know where this user-agent string analysis is done if it’s the real cause, or if there is something else.
Hope this is crystal clear and that someone on Zoom will seriously consider to spend a bit of time on that.