[Spreed video calls] HTTP/2 support

Related to this topic I make a separate topic here for one error I face with Opera desktop browsers, tested on all branches, current stable, beta and development:

  • Audio and video switch buttons on own cam view do not show up in one state each:

  • Video button is invisible, if video is up

  • Audio button is invisible, if audio is turned off

  • Browser console shows the following error, obviously related to the issue:
    _

    Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help, check https://xhr.spec.whatwg.org/.
    send @ jquery.min.js?v=ca4f717…:4
    app.js?v=ca4f717…:439
    Uncaught TypeError: avatarContainer.find(…).avatar is not a function
    at child.hideVideo (app.js?v=ca4f717…:439)
    at child.onStart (app.js?v=ca4f717…:384)
    at child.r [as triggerMethod] (backbone.marionette.min.js?v=ca4f717…:9)
    at child.start (backbone.marionette.min.js?v=ca4f717…:10)
    at HTMLDocument. (init.js?v=ca4f717…:25)
    at j (jquery.min.js?v=ca4f717…:2)
    at Object.fireWith [as resolveWith] (jquery.min.js?v=ca4f717…:2)
    at Function.ready (jquery.min.js?v=ca4f717…:2)
    at HTMLDocument.I (jquery.min.js?v=ca4f717…:2)
    simplewebrtc.js?v=ca4f717…:13898
    CONNECTED
    (anonymous) @ simplewebrtc.js?v=ca4f717…:13898
    app.js?v=ca4f717…:439
    Uncaught TypeError: avatarContainer.find(…).avatar is not a function
    at child.hideVideo (app.js?v=ca4f717…:439)
    at child.disableVideo (app.js?v=ca4f717…:446)
    at HTMLButtonElement. (app.js?v=ca4f717…:172)
    at HTMLButtonElement.dispatch (jquery.min.js?v=ca4f717…:3)
    at HTMLButtonElement.r.handle (jquery.min.js?v=ca4f717…:3)

  • When I switch the video to off, the following similar error appears:

When I switch the video off, the following similar error shows up:

Uncaught TypeError: avatarContainer.find(...).avatar is not a function
    at child.hideVideo (app.js?v=ca4f717…:439)
    at child.disableVideo (app.js?v=ca4f717…:446)
    at HTMLButtonElement.<anonymous> (app.js?v=ca4f717…:172)
    at HTMLButtonElement.dispatch (jquery.min.js?v=ca4f717…:3)
    at HTMLButtonElement.r.handle (jquery.min.js?v=ca4f717…:3)
hideVideo @ app.js?v=ca4f717…:439
disableVideo @ app.js?v=ca4f717…:446
(anonymous) @ app.js?v=ca4f717…:172
dispatch @ jquery.min.js?v=ca4f717…:3
r.handle @ jquery.min.js?v=ca4f717…:3

Could someone verify that this issue appears on every Opera, at least for Windows desktop systems?

Ahh I looked little into the code. I first thought that “avatar” in the error message is related to the button pictures, but it is actually related to the user avatar picture which should show up, especially when video is disabled. But I actually disabled avatars at all by config.php, which should be the reason why avatarContainer.find(...).avatar fails. I don’t know if/how it is connected to the buttons not showing up, but I guess it’s because of the function fail, the whole object code fails at that point, leading to the other errors.

I did not find any issue on github related to disabled avatars but indeed there are issues related to guest user avatars, which might have the same error. So should I wait for the next App release or issue this directly on github?

I enabled user avatars now. The errors in browser console are gone, but micro/camera/full screen icons do now completely hide, no matter if (e.g. camera) is enabled or disabled. Looking forward to the next release, hopefully it’s connected with some other issues solved there.

Okay found the problem connected to this github issue. So deactivating http2 resolves the missing video/audio/fullscreen buttons as well as the endless website and user search loading, mentioned in the linked related problem at OT.

Now it just would be great to remove the user avatar dependency, find another icon/picture to show in user list as well as for own user (if camera is off), if nextcloud avatars are inactive through config.php.

Okay, I unresolve this topic again, because there was not yet some process in http2 support for spreed app, it did also stop on github. As more and more people move to http2 and also some images/guides are there that have it activated/give the advice to do so, it should be rising priority the resolve the problems with it in spreed app.

€: Talk now fully supports http/2 :champagne: ! Solved