Re: [mediacapture-main] Should enumerateDevices by default return an empty list? (#646)

If "privacy" and "tracking" are the primary concern, then backwards compatibility for site that are expecting media devices names need to adapt, as those are secondary concerns, not the other way around.

Note, if the concept outlined above requires too much "new" work, then the existing implementations of fake media devices and fake media streams can be used, that is, set all devices to Fake and if `id`,`groupId` are an issue, those values can be set to an empty string. 

Why would a website need `id` and `groupId` for anything? The set  of media  devices can literally be a set where the only relevant key is index of the item in the set.


```
0: MediaStreamTrack
contentHint: ""
enabled: true
id: "4a1a5d41-9ba9-4a54-92cc-8212ff44c43d"
kind: "audio"
label: "Fake Default Audio Input"
muted: false
onended: null
onmute: null
onunmute: null
readyState: "live"

0: MediaStreamTrack
contentHint: ""
enabled: true
id: "36ab6b04-1a96-42ef-8ab2-794718da1203"
kind: "video"
label: "fake_device_0"
muted: false
onended: null
onmute: null
onunmute: null
readyState: "live"

navigator.mediaDevices.getUserMedia({video: true, audio: true})
.then(stream => {
  navigator.mediaDevices.enumerateDevices()
  .then(devices => console.log(JSON.stringify(devices, null, 2)));
  console.log(stream.getTracks())
})
Promise {<pending>}
VM624:5 (2) [MediaStreamTrack, MediaStreamTrack]0: MediaStreamTrackcontentHint: ""enabled: trueid: "4a1a5d41-9ba9-4a54-92cc-8212ff44c43d"kind: "audio"label: "Fake Default Audio Input"muted: falseonended: nullonmute: nullonunmute: nullreadyState: "live"__proto__: MediaStreamTrackapplyConstraints: ƒ applyConstraints()clone: ƒ clone()contentHint: (...)enabled: (...)getCapabilities: ƒ getCapabilities()getConstraints: ƒ getConstraints()getSettings: ƒ getSettings()id: (...)kind: (...)label: (...)muted: (...)onended: (...)onmute: (...)onunmute: (...)readyState: (...)stop: ƒ stop()constructor: ƒ MediaStreamTrack()Symbol(Symbol.toStringTag): "MediaStreamTrack"get contentHint: ƒ contentHint()set contentHint: ƒ contentHint()get enabled: ƒ enabled()set enabled: ƒ enabled()get id: ƒ id()get kind: ƒ kind()get label: ƒ label()get muted: ƒ muted()get onended: ƒ onended()set onended: ƒ onended()get onmute: ƒ onmute()set onmute: ƒ onmute()get onunmute: ƒ onunmute()set onunmute: ƒ onunmute()get readyState: ƒ readyState()__proto__: EventTarget1: MediaStreamTrackcontentHint: ""enabled: trueid: "36ab6b04-1a96-42ef-8ab2-794718da1203"kind: "video"label: "fake_device_0"muted: falseonended: nullonmute: nullonunmute: nullreadyState: "live"__proto__: MediaStreamTracklength: 2__proto__: Array(0)
VM624:4 [
  {
    "deviceId": "default",
    "kind": "audioinput",
    "label": "Fake Default Audio Input",
    "groupId": "6e9bbc2c2fa2cf19aa0499ecbbb37fded7a4c71b604e29a7754169f3990c641d"
  },
  {
    "deviceId": "fff840c638bff6368f79b4239218360eb85606ae8cbf8f10dfaf5c988984d3a3",
    "kind": "audioinput",
    "label": "Fake Audio Input 1",
    "groupId": "6def593db7c2b05d9f928357778cf7d95f1754318cf03af059d128ec4418944d"
  },
  {
    "deviceId": "4d0dd7f641eb908da16231f233cee068a136361d249141efa14aaea168387588",
    "kind": "audioinput",
    "label": "Fake Audio Input 2",
    "groupId": "70e48e9d72f7a813c2ec4afadaca47fffb8bb1792c3b81eaf3d894aaa1c5285a"
  },
  {
    "deviceId": "01f0bf7cf85b086c617e80d5e3311e058b10aa63216d441838352869533e4e1e",
    "kind": "videoinput",
    "label": "fake_device_0",
    "groupId": "9f48238c7b9b5513683ddab4ddf54b4ad238c59738e7486bbfe070f49c0041cb"
  },
  {
    "deviceId": "default",
    "kind": "audiooutput",
    "label": "Fake Default Audio Output",
    "groupId": "e17614d28190592ec62a661d89b851bd8746d782df1b7eafb5b76fae880b4094"
  },
  {
    "deviceId": "ea692280ba9c70eea8eccf2522c13282d3f8e3c8ba98e82c126715759f2d2e75",
    "kind": "audiooutput",
    "label": "Fake Audio Output 1",
    "groupId": "1af313e5b455f7749d38f48635b0eb88bf88b5bc5e90d836a42d885b1bce309e"
  },
  {
    "deviceId": "24306d3edf988cf4c0920bea5dcff1f769f0faf2e007424ff332392ec1485034",
    "kind": "audiooutput",
    "label": "Fake Audio Output 2",
    "groupId": "9999b328ff18855e6b016e53f2ccb264b133ae2cac0766d75aa257311c0e8881"
  }
]

```

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

Received on Tuesday, 5 May 2020 02:02:26 UTC