- From: Martin Thomson <martin.thomson@gmail.com>
- Date: Thu, 6 Dec 2012 09:57:04 -0800
- To: "public-media-capture@w3.org" <public-media-capture@w3.org>
As discussed on the call, and as no doubt Travis is already typing up, here is what I think we need for device enumeration: VideoStreamSource and AudioStreamSource each have a static method (invoked on the constructor, not an instance) that produces a sequence of device identifiers. typedef DOMString DeviceId; partial interface VideoStreamSource { static sequence<DeviceId> getDeviceIds(); } partial interface AudioStreamSource { static sequence<DeviceId> getDeviceIds(); } MediaTrackConstraints has a new constraint called... "deviceId", which takes a DeviceId as its value. This allows an application to select a specific device. We should *strongly* recommend that device identifiers are persistent for a given origin. However, it MUST NOT be possible to correlate between different origins otherwise we may as well sign our own death warrants lest the anti-fingerprinting mafia wring our necks for wrecking all their efforts. This last requirement assumes that the identifier has a non-trivial amount of entropy, such as a GUID, which I believe to be the most practical method of implementation. A potential method would be to take the stable OS-level identifier; a persistent, browser-generated secret; and the origin. These would be combined and maybe run through one of them hashish algorithms [1]. --Martin [1] I hear that's what the kids are all doing nowadays. Travis lives in Washington, so he would have more information on that.
Received on Thursday, 6 December 2012 17:57:34 UTC