Re: [mediacapture-main] No way to reliably choose correct camera & microphone upfront (#656)

It's not a big ideal if we're fine with permission being granted to all devices upfront. But it's incompatible with a per-device permission model, because the user doesn't know which device + label they're revealing https://github.com/w3c/mediacapture-main/issues/640#issuecomment-549540203, which can be confusing even if it ends up right in the end. _"Hey, I got vanilla, that's what I wanted!"_

To flip what you're saying, consider this thought experiment: If browsers were to reveal this, e.g.: 
```
Allow site X to access your front camera and microphone?
```
..._some_ subset of users will say: _"No, that's wrong. I want to use my back camera"_, and want to change it. If the prompt doesn't allow them, they'll probably to hit Deny, not Allow, and ugh.

We could say that's not a big deal, because it only happens to a small subset of people. But I think it's a big deal to them, because it will likely happen over and over to them, and become a frustration as they learn to work around it. If we go out and buy a better camera, we join that group.

> It seems to me a picker based API is different from a permission request API as is somehow getUserMedia.

I don't think so. Look at `getDisplayMedia`. Let's separate API from UX for a moment: I've found nothing in the _API_ that needs to be different. It's a simple accessor API: JS requests track(s) given constraints, later returns track(s) or throws error if user said no.

The differences I've [highlighted](https://docs.google.com/presentation/d/1zhbRBbxVAlwVzqU7j5SIYKoLRc6Ec-brcDhNcfAI1sU/edit?ts=5e13b393#slide=id.g7c3d2d4d1e_9_39) are all on the UX side, and AFAICT stem from context, not how the call was made. The overly aggressive "Deny" button? Already a [bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1609578) in Firefox.



-- 
GitHub Notification of comment by jan-ivar
Please view or discuss this issue at https://github.com/w3c/mediacapture-main/issues/656#issuecomment-575185247 using your GitHub account

Received on Thursday, 16 January 2020 14:48:45 UTC