ungoogled-software / ungoogled-chromium

Google Chromium, sans integration with Google
BSD 3-Clause "New" or "Revised" License
20.74k stars 840 forks source link

Web Skype "Audio and Video calls not supported on your Browser" #1010

Closed mnd closed 4 years ago

mnd commented 4 years ago

I clearly installed ungoogled-chromium version 81.0.4044.92-0.b484ad4 from GNU GUIX repository, checked that voice/video calls works in several web meetings clients like Zoom and MS Teams, then open https://web.skype.com/ and got the message that "Audio and Video calls not supported on your Browser"

To Reproduce Steps to reproduce the behavior:

  1. Open https://web.skype.com/
  2. Login with skype credentials
  3. Try to call to the "Echo / Sound Test Service"
  4. Call button is not active and write "Audio and Video calls not supported on your Browser" when your mouse over this button.

Expected behavior Calls should work fine.

Environment (please complete the following information):

Additional context IceCat with same User Agent string as in ungoogled-chromium is able to make calls.

wchen342 commented 4 years ago

GUIX seems to have their own modification of WebRTC: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/chromium.scm#n524. Does this problem reproduce on the portablelinux version?

mnd commented 4 years ago

@wchen342 I checked with guix version, with version 80.0.3987.163-1.bionic1 from https://launchpad.net/~braewoods/+archive/ubuntu/ungoogled-chromium and with https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/linux_portable/64bit/80.0.3987.106-1.1 (last version linked against glibc 2.27)

If you have any ideas about any changes that can help I can try them

wchen342 commented 4 years ago

@mnd If it doesn't work on all the versions you mentioned then it sounds like a bug. It's probably not WebRTC though because I remember I can use Hangouts normally. Is there any errors in the console?

Eloston commented 4 years ago

It looks like Microsoft is doing more aggressive client detection:

I couldn't find anything on Brave compatibility, so it's possible it might work there. If it does work, then we should figure out how they did it.

mnd commented 4 years ago

@wchen342 There was no noticeable errors:

  1. Warning about cross-site cookie
  2. Several 404 errors on request to skype assets

There is a saved log from my run on GUIX build: web.skype.com-1587976686992.log

mnd commented 4 years ago

I made the investigation on this topic: According to "skype for web" code audio and video calls allowed only for "Edge" and "Chrome" browser, but forbidden for "Chromium". The "Chromium" browser distinguished from "Chrome" with something like the following check:

function _chromiumCheck() {
  for (var i in navigator.plugins)
    if (navigator.plugins[i].name && navigator.plugins[i].name.startsWith("Chromium"))
      return true;
  return false;
}

I tried to fake skype with the following plugin https://gist.github.com/mnd/cec409269fb0e50445aa914390195e57 but with this plugin web.skype.com failed to load at all. As a temporary solution I changed "PDF" plugin name in code of the browser itself https://github.com/mnd/guix-mnd-pkgs/blob/master/mnd/packages/chromium.scm#L33

Knowing all this this is not "ungoogled-chromium" issue and you can close it.

But do you have ideas how this check can be faked except the patching of the chromium itself?

Eloston commented 4 years ago

But do you have ideas how this check can be faked except the patching of the chromium itself?

It might be possible to improve upon the extension code you provided, but it's becoming increasingly difficult to do such hacking from within JavaScript. it's easier to just patch Chromium.

The patch in 583b3e4c4b62c6c53b4efba2377c0c1f9845ad7a still needs testing.