-
Notifications
You must be signed in to change notification settings - Fork 62
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
getUserMedia can be used to detect capabilities without permissions #697
Comments
Step 6.3.4 of the getUserMedia algorithm is already marked with a fingerprint marker; this has been discussed before, and the decision at the time was to warn the implementors, not change the processing. The uncomfortable interaction if you swap the two is to get a permissions prompt, grant permission, and then get a "ha ha, you can't do this anyway" error message because you have no device that can satisfy the constraint. My suggestion: This can be revisited in @jan-ivar's proposed extension spec for a getUserMedia variant that mandates an in-chrome picker. In the meantime, I wouldn't want to change present behavior. |
In addition to what Harald said, the fingerprinting script would take the risk to show a prompt to the user, which is probably too risky for the script. To ensure this is annoying enough for such scripts, we make sure that:
AFAIUI, OverconstrainedError is what should be returned according the spec. |
Another possibility is to progressively move out of mandatory constraints but treat them as ideal, except for some specific constraints like deviceId. |
We've discussed this in the past, and we decided trackers would not risk a prompt. In the spec, we neutered the |
You're right @jan-ivar . That was the reason. After giving system permission on Mac I get OverconstrainedError. |
As discussed in w3c/mediacapture-image#229 (comment), it might be good to restrict the potential constraints that can be used as required in getUserMedia. |
Initial PR at #707. |
I don't see a sufficiently clear case that the (admittedly minor) privacy leak is important enough that we should remove or limit the ability to not get devices you can't use for your purposes. We need a WG consensus to set a direction here. |
Closed as a result of merging #707. |
The current getUserMedia() spec indicates that prompting for permission (step 5.2) goes after constraints processing (step 3.4).
A consequence of this is that it is possible to determine if the system is capable of, for example full HD capture (or any other capability), by making the appropriate gUM calls and looking at the resulting error.
In these cases, Chromium and Safari return OverconstrainedError and Firefox returns NotFoundError.
Possible ways to address this:
Should we update the spec to address this?
The text was updated successfully, but these errors were encountered: