- From: Jim Barnett <Jim.Barnett@genesyslab.com>
- Date: Thu, 21 Mar 2013 19:23:56 +0000
- To: Martin Thomson <martin.thomson@gmail.com>, Harald Alvestrand <harald@alvestrand.no>
- CC: "public-media-capture@w3.org" <public-media-capture@w3.org>
It may just be that the format is odd on my system, but is 'facing' available if the app is not trusted?
- Jim
-----Original Message-----
From: Martin Thomson [mailto:martin.thomson@gmail.com]
Sent: Thursday, March 21, 2013 3:05 PM
To: Harald Alvestrand
Cc: public-media-capture@w3.org
Subject: Re: An alternate approach to enumerating devices
This is good.
The addition of label needs more work though. What do you do to distinguish an application/site as being "trusted" or not such that you can expose the label?
On 21 March 2013 11:46, Harald Alvestrand <harald@alvestrand.no> wrote:
> That was too weird - trying again, without formatting....
>
>
> The WebRTC GetUserMedia spec released on March 20 has this device
> enumeration API on the VideoStreamTrack and AudioStreamTrack:
>
> -------------------------------------
>
>
> interface VideoStreamTrack : MediaStreamTrack { static
> sequence<DOMString> getSourceIds (); ....
> };
>
> Explanation:
>
> getSourceIds, static
> Returns an array of application-unique source identifiers. This list
> will be populated only with local sources whose sourceType is "camera"
> or "photo-camera" [and if allowed by the user-agent, "readonly"
> variants of the former two types]. The video source ids returned in
> the list constitute those sources that the user agent can identify at
> the time the API is called (the list can grow/shrink over time as
> sources may be added or removed). As a static method, getSourceIds can
> be queried without instantiating any VideoStreamTrack objects or without calling getUserMedia().
>
> ISSUE 1
> Issue: This information deliberately adds to the fingerprinting
> surface of the UA. However, this information will not be identifiable
> outside the scope of this application and could also be obtained via
> other round-about techniques using getUserMedia().
> (end quote)
>
> --------------------------
>
>
>
> I suggest this is a bit limited, and we should instead offer:
>
> <proposal begins>
>
> interface MediaStreamTrack {
> static sequence<SourceInfo> getSourceInfos() }
>
> dictionary SourceInfo {
> DOMString id; // same as “sourceid” in previous proposal DOMString
> kind; // “video” or “audio”
> DOMString label; // only present if authorized VideoFacingModeEnum
> facing; // only for video sources }
>
> with the additional text:
>
> If the application is authorized to get info from one or more sources,
> the “label” attribute will be filled in for those sources, with
> exactly the same value as one would have had if the application had
> done getUserMedia with a constraint specifying that camera ID.
>
> <proposal ends>
>
> The interface is on MediaStreamTrack, which allows video and audio
> sources to be retrieved in a single call, and also allows additional
> types of source with no API change, if that ever becomes needed. It’s
> also easily extensible to allow other kinds of information to be returned, if desired.
>
> For reference, here’s the description of “label” from the
> MediaStreamTrack
> section:
>
> label of type DOMString, readonly
> User agents may label audio and video sources (e.g., "Internal microphone"
> or "External USB Webcam"). The MediaStreamTrack.label attribute must
> return the label of the object’s corresponding track, if any. If the
> corresponding track has or had no label, the attribute must instead
> return the empty string.
>
> )
>
> (Note - section 3 of this spec version has some discussion on when the
> source is released to the application. This proposal only says that
> this also releases the label to view.)
>
> This extension will allow:
> - Untrusted applications to quickly determine whether a camera is
> present or not (satisfies the “does it make sense to offer video
> calling” requirement)
> - Trusted applications to create in-app UI that presents a sensible
> list of devices for the user to choose between
> - A clear definition of going from “untrusted” to “trusted”
>
> Note: It may make sense to have the in-chrome user permission prompt
> give
> alternatives:
> - “give access to all my cameras”
> - “give access to one specific camera”
> - “deny access”
> It’s an UI design decision whether or not all these need to be
> offered; this shouldn’t be in the spec.
>
>
>
>
Received on Thursday, 21 March 2013 19:24:24 UTC