Twilio-video.js: isSupported incorrectly false for certain Android devices

Created on 6 Jun 2020  路  12Comments  路  Source: twilio/twilio-video.js

  • [x] I have verified that the issue occurs with the latest twilio-video.js release and is not marked as a known issue in the CHANGELOG.md.
  • [x] I reviewed the Common Issues and open GitHub issues and verified that this report represents a potentially new issue.
  • [ ] I verified that the Quickstart application works in my environment.
  • [x] I am not sharing any Personally Identifiable Information (PII)
    or sensitive account information (API keys, credentials, etc.) when reporting this issue.

The isSupported property returns wrong results on certain Android devices, seems like at least Motorolas in particular.

Example: latest vanilla Chrome on a Motorola G7 has the following UA:

"Mozilla/5.0 (Linux; Android 9; moto g(7) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36"

The isSupported function is apparently thrown off by the extra parentheses here, and ends up detecting this as an unsupported relabeled version of Chrome. The issue looks to be in the regexes inside the rebrandedChromeBrowser function.

Confirmed that this device can use WebRTC and other TokBox based apps work fine.

  • [x] Browser(s): Chrome
  • [x] Operating System: Android
  • [x] twilio-video.js: 2.5.0
  • [ ] Third-party libraries (e.g., Angular, React, etc.):
bug

All 12 comments

Hi @edumansky ,

Thanks for reporting this issue. I will confirm on my end and do the needful. Please feel free to allow your app to run on this particular Chrome version in the meantime.

Thanks,

Manjesh Malavalli
JSDK Team

@edumansky ,

I have created an internal ticket for this. Please watch this space for updates.

Thanks,

Manjesh Malavalli
JSDK Team

@manjeshbhargav I am also facing this issue in Motorola G 5s plus with the latest Chrome.

Also I would add that isSupported flag is misleading in the latest version of Samsung Browser.
Everything is working but it says that it's not supported.
The Samsung browser version is: 11.2.2.3

I'm seeing Chrome Version 83.0.4103.106 and Safari 13.1.1 returning false when calling .isSupported. This is Twilio Video 2.5.1

@mdekhtiarenko ,

isSupported returns true only if the browser is part of Twilio's supported browsers, that are actively tested for during the QA process. You are still free to use the SDK on any WebRTC-capable browser, but at your own risk.

@rkiller ,

I was not able to reproduce what you described on the browsers you mentioned. Please file a separate issue with details.

Thanks,

Manjesh Malavalli
JSDK Team

Hi @manjeshbhargav - Thank you for the update. This is an issue for us as well. May I have two requests?

First: would it be possible to enhance the list of supported browsers so that it's more specific? It says "recent" versions of Chrome. It would be great to list minimum versions and any (known) exceptions for devices. More than anything I would like to provide a great user experience by communicating clear requirements around browser support (as much as we can know). We are seeing users on Android Chrome who are getting a "not supported" message and a suggestion to use Chrome.

Second: Could you please double check the UA strings that I provided in support ticket 4555743? I think there might be a problem with how the user agent is parsed. For example:

Mozilla/5.0 (Linux; Android 9; moto g(7) supra) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.27 Mobile Safari/537.36

For this, rebrandedChromeBrowser() is returning applewebkit and it's causing isSupported to result false. Not sure if there are other factors.

Thank you!

Carlos

@manjeshbhargav ,

Any chance Samsung Browser is on the roadmap to QA? We've seen it come up quite a few times in the wild and it seems to work perfectly if isSupported is bypassed. Seems to just be a branded version of Chrome.

@cmermingas item 2 is actually the main topic of this issue, it is already open as bug within Twilio

Hi @cmermingas , @edumansky ,

This pull request fixes the false negatives for isSupprted on Motorola phones. This is scheduled to be released in SDK version 2.7.1. Please watch this space for updates.

There are browsers which are WebRTC-capable, but not explicitly tested and supported by Twilio. You are still free to use the SDK on these browsers, but at your own risk. We won't be able to help out with support for these browsers. You can do something like this:

  1. If a browser is supported by Twilio (isSupported === true), then run your application.
  2. If a browser is not supported by Twilio (isSupported === false), but it nonetheless supports WebRTC, you can run your application with a warning to the customer that this is not a recommended browser and experience may vary.
  3. If a browser is not supported by Twilio AND it does not support WebRTC, then show an error saying that the browser is not capable of a video session.

We don't have any specific item to support Samsung browser (or other rebranded Chromium browsers) at this point. We will reach out to you once we have something in our roadmap.

Thanks,

Manjesh Malavalli
JSDK Team

Hi @cmermingas , @edumansky ,

I have published a release candidate which has a fix for this issue. You can check it out by installing it as follows:

npm install twilio/twilio-video.js#2.7.1-rc1

Please let me know if isSupported behaves properly for Android Chrome on Motorola phones.

Thanks,

Manjesh Malavalli
JSDK Team

@edumansky ,

Closing this since 2.7.1 has been released.

Was this page helpful?
0 / 5 - 0 ratings