- 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