Troubleshooting: mediaDevices labels are blank when iframe Jitsi is active

Hi, I need some help troubleshooting.

I use Jitsi via iframe API and use a docker version which is somewhat outdated (by maybe 4-5 months) and have run into what I thought was a Firefox bug:

navigator.mediaDevices.enumerateDevices()
        .then(mediaDevices => {console.log(mediaDevices)})

…produces empty labels when I am in a Jitsi session. But, once Jitsi is closed, the labels are populated. I searched on Mozilla Bugzilla and saw a FF bug like this was fixed 6 months ago.

Empty labels:
image

But, then I tried the same console command while in session on meet.jit.si and I do not get this behavior. I looked in Github for any bugs like this from the past, but didn’t see any.

Any thoughts if this is caused by Jitsi (or was, but got fixed)? Or, might it be an iframe issue?

Have you tried this: IFrame API · Jitsi Meet Handbook

Sorry, I should have explained my purpose better. Yes, I run getCurrentDevices() to get a list, and this works fine. The Ids don’t match the same list from the parent window, so I was going to use labels to compare in order to take the Jitsi-used devices and persist them to a subsequent element outside of Jitsi.

In my setup, the labels show in a Chrome, but not in Firefox. I was going to conclude it’s a Firefox bug but I didn’t have the problem on meet.jit.si. So maybe it’s a Docker or Jitsi iframe bug somehow. Or maybe it is a Firefox bug.

I will probably do a workaround by building a parent window device list list prior to Jitsi entry and then compare on the way out. But, you know, it seems like a bug for something, I’m just not sure what. I try to report bugs but in this case… hard to tell what it is.

You have tried the iframe API on meet.jit.si and you don’t reproduce it?

I was able to reproduce. These were the outcomes:

FF:

  • Using docker-served Jitsi in iframe using API, BLANK LABELS
  • When I navigated to meet.jit.si directly, LABELS OKAY
  • Using meet.jit.si via iframe API, and using public external_api source ref, BLANK LABELS

Chrome:

  • Using docker-served Jitsi in iframe using API, LABELS OKAY
  • When I navigated to meet.jit.si directly, LABELS OKAY
  • Using meet.jit.si via iframe API, LABELS OKAY

This make me think it is some limitation with iframe and FF … I have no idea is that solvable or not …

1 Like

Thank you for your thoughts on this. I will pursue with FF. Thanks again.

I just confirmed the behavior is the same even with no Jitsi and and no iframe present, and no active devices. It must be something about the browser.

EDIT:
Related: 1681772 - Audio input device labels gotten by navigator.mediaDevices.enumeratedDevices() are empty

It’s a security feature to require navigator.mediaDevices.getUserMedia before navigator.mediaDevices.enumerateDevices() to prevent fingerprinting by sites without user permission. In my case, Chrome had already been given permission and so returned labels.