Closed Bug 1758254 Opened 3 years ago Closed 3 years ago

Camera not listed on Google Meet

Categories

(Core :: WebRTC: Audio/Video, defect, P3)

Firefox 97
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: hugo, Unassigned, NeedInfo)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0

Steps to reproduce:

Join a Google Meet videocall.

Actual results:

The prompt to pick a camera lists my laptop's built-in camera, but not my external USB camera.

Expected results:

Both cameras should be listed.

The camera DOES work on other websites, like https://mozilla.github.io/webrtc-landing/gum_test.html

It seems the camera is listed when websites ask for only CAMERA access, but not when websites ask for CAMERA+Microphone access.

The Bugbug bot thinks this bug should belong to the 'Core::WebRTC: Audio/Video' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → WebRTC: Audio/Video
Product: Firefox → Core
Severity: -- → S4
Priority: -- → P3

This is a common problem with google meet. Firefox is the only browser that allows picking from an internal permissions prompt. If you use the Meet picker you should see the camera.

No longer blocks: webrtc-triage
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME

Hi Hugo, to clarify: go to the ⚙️ settings page in Meet and you should see your cameras listed there. If not, please comment and we can reopen.

To Google Meet

The bug here is in Meet, who is using deviceId: {exact: id} to only ask for the one specific camera you used last time. In this case, Firefox is not allowed to offer other choices. That's why you're not seeing your other camera(s) in Firefox's supplementary picker in its permission prompt.

Instead, the spec recommends that Meet use:

  1. deviceId: id when users come to their site (and update the stored id to the camera that's ultimately returned), and
  2. deviceId: {exact: id} only from Meet's ⚙️ settings page in response to users clicking on specific camera in Meet's list.

See spec Example 6 (use ideal on revisit) and Example 7 (use exact in device picker) respectively. This gives the best user experience in all browsers.

Thanks both for the detailed explanations here.

This is a common problem with google meet. Firefox is the only browser that allows picking from an internal permissions prompt. If you use the Meet picker you should see the camera.

So when I pick a camera and grant a website permission for it, the website actually gains access to ALL cameras?

This could easily be seen as a security hole; when someone grants permission to one camera there's no reason to assume that permission for ALL cameras was being granted. I really think this UI should be revisited, unknowingly granting camera access is pretty risky.

The bug here is in Meet, who is using deviceId: {exact: id} to only ask for the one specific camera you used last time. In this case, Firefox is not allowed to offer other choices. That's why you're not seeing your other camera(s) in Firefox's supplementary picker in its permission prompt.

There's three camera devices on my computer (two built-in, on external), and Firefox lists both built-in permissions prompt for meet, but not the third.

Why do two show up if Meet in the list if meet is passing an exact id?

So when I pick a camera and grant a website permission for it, the website actually gains access to ALL cameras?

No. Firefox is the only browser that grants per-device permission by default, unless you check ☑ Remember this decision which grants permission to all cameras, like most other browsers do by default.

There's three camera devices on my computer (two built-in, on external), and Firefox lists both built-in permissions prompt for meet, but not the third. Why do two show up if Meet in the list if meet is passing an exact id?

I'm not sure I understand what you're asking. Can you rephrase? Do all three show up in prompt here and in JS here?

Flags: needinfo?(hugo)
You need to log in before you can comment on or make changes to this bug.