-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarify pan/tilt/zoom capabilities (#245) #250
Clarify pan/tilt/zoom capabilities (#245) #250
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR reflects the current state of the explainer
If the PTZ permission is not granted, the pan, tilt, and zoom are not available as capabilities, settings, and constraints, even if the camera supports PTZ.
It is also reiterated in the fingerprinting section of the explainer.
- Pan, tilt, and zoom hardware capabilities (e.g.
min
,max
,step
) and
current settings are not exposed to websites unless the user explicitly
grants PTZ permission....
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@eehakkin IIRC, it looks like getUserMedia({video: true})
for a site that was already been granted PTZ access won't expose PTZ capabilities. Is this intended?
I thought we would use the PTZ permission regardless of the originated PTZ permission request result.
@youennf Exposing PTZ camera capabilities regardless of the PTZ permission status would increase fingerprinting. If that's something you want to allow a step by step permission flow, we could make it optional in the spec. - In that case the UA MUST NOT expose the <a>tilt</a> value range.
+ In that case the UA MAY NOT expose the <a>tilt</a> value range. |
We should look at whether it is an issue with regards to passive and active fingerprinting. We do not want to increase passive fingerprinting. Since PTZ setups are not widespread, it would be terrible to expose this capability without some kind of permission. MediaStreamTrack.getCapabilities is not possible since there is no capture track in that case. InputDeviceInfo.getCapabilities() should return an empty dictionary as per spec, so PTZ will not leak whatever the PTZ permission. As of active fingerprinting (i.e. page is using the PTZ camera as a regular camera), we have some precedents to expose PTZ capabilities:
|
If that looks okay to other parties, I'll update explainer fingerprinting section and the example that currently relies on @jan-ivar @reillyeon @riju What do you think? |
Chrome privacy team got back to me and told me Chrome would expose nothing about the users camera having PTZ until the user has accepted a permission prompt that mentions PTZ. @youennf How does that sound? |
Let's go with MUST for now. It is better to start strict and loosen things if there is enough benefit/interest. This PR looks fine to me for MediaStreamTrack.getCapabilities. As of InputDeviceInfo.getCapabilities, it would never expose PTZ even if PTZ permission is granted. |
That is not intended. Do you have a better wording suggestions? |
459844e
to
c8a2fa2
Compare
Looking at it, I've misread it. We may want to add a note to clarify it for people like me ;) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a note for better clarification.
c8a2fa2
to
6e7b852
Compare
Done. |
That is not my understanding of how things are specified. |
The current MUST wording seems most web compatible to me. Apps that rely on previously granted and persisted permission might work in Chrome, but not other browsers. |
Agreed MUST will forbid compat issues. |
Disclosing PTZ if the website only has camera permission would seem to undermine the permission model developed here and in the ptz-explainer, where "Users can block and revoke the PTZ permission in UA settings". These constraints may reveal the user to be in another web conference. Mitigations we've added for It seems simpler to demand sites specify e.g. |
Are you referring to disclosing PTZ capabilities (i.e. the page knows a camera has PTZ support) or PTZ settings (i.e. the page can read/write actual device PTZ values)? |
You're right I was thinking about settings, but I think it would be weird to expose one and not the other. And since this spec doesn't appear to standardize the allowable ranges for |
It could be implemented so that the only device info leak would be whether this is a PTZ camera or a regular camera: |
I think we'd want to specify anything like that. E.g. I might have interpreted Is the use case a site that already has the camera and wants to know if it should show an "Enable ptz controls" button? |
Yes, that is what I am thinking of. |
As discussed in #229 (comment), maybe we should have a panTiltZoom boolean constraint for getUserMedia. This could allow detection of PTZ cameras. |
Split from #248 per @youennf's request.