W3C home > Mailing lists > Public > public-media-capture@w3.org > December 2012

Proposal for device "enumeration"

From: Martin Thomson <martin.thomson@gmail.com>
Date: Thu, 6 Dec 2012 09:57:04 -0800
Message-ID: <CABkgnnVtbOgcb2-DxFcfBKRpRoQiL9OGXLrDNzU5nbEKSfkFMw@mail.gmail.com>
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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:03 GMT