Skip to content
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

Replace device-info permission by a browsing context boolean flag #641

Merged
merged 2 commits into from
Nov 28, 2019

Conversation

youennf
Copy link
Contributor

@youennf youennf commented Nov 13, 2019

No description provided.

@alvestrand
Copy link
Contributor

I disagree with this approach.
I think it has no advantages over the permission-based approach, and requires special-casing situations where we want to have device-enumeration permission separate from device-access permission, rather than just saying "and you can grant this permission in that case too".

Please file a bug describing the problem you want to solve.

@youennf
Copy link
Contributor Author

youennf commented Nov 14, 2019

The bug is #612.
It is not great that because I give access to a camera once to take a picture of me, the website will be able to get all my device information for my future visits.

Also, we agreed that the usual good approach is to do getUserMedia-then-enumerateDevices.
This PR is consistent with that approach.

Additionally, I am not sure the device info permission concept is good.
Other permissions are things like "can I use a camera", which is easy to describe to a user.
This specific permission is hard to explain to a user and AFAIK, is not exposed by any UI, contrary to camera/mic access.

@jan-ivar
Copy link
Member

jan-ivar commented Nov 20, 2019

This PR removes an arguably redundant permission, which I approve of.

But it still says user agents may revoke this ability (permission) whenever they want. This could be:

  1. Never
  2. During actual camera or mic capture, sabotaging post-gum in-content selection

I think we need to define this in more detail to protect web interop.

Original intent: when users revoke both camera and microphone permission, they revoke device-info as well (not before). I.e.

device_info = camera_permission || microphone_permission

This is true in all browsers I tested, so it must have been the original intent. Other parts like groupId support this notion. I vote we tighten the spec to conform with implementations here.

This was also meant to be extensible, which is where I share @alvestrand's concern. E.g.

device_info = camera_permission || microphone_permission || speaker_permission

If we end up not needing this because of w3c/mediacapture-output#86, great! But it would still be nice if this spec didn't forbid extension, I think—Forbidding user agents from doing whatever they want is not the same as forbidding other specs from extending things.

Is there a way to write it like this?

@jan-ivar
Copy link
Member

I understand permissions may be per-device, so if this needs to be per-device that would WFM.

getusermedia.html Outdated Show resolved Hide resolved
@alvestrand
Copy link
Contributor

Needs a PR to remove device-info from feature-policy. @youennf has promised to do this.

@alvestrand alvestrand merged commit ccd1653 into w3c:master Nov 28, 2019
@jan-ivar jan-ivar added the privacy-pr PRs from privacy review label Oct 9, 2020
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Feb 3, 2022
…apturing MediaStreamTrack r=jib

"fully active and has focus" is now a sufficient condition for dispatching "devicechange" events if the change in devices should be visible from enumerateDevices().
https://github.com/w3c/mediacapture-main/pull/574/files#diff-1217ca1c44ff30a33dd50c49d03b5cadc9633c789df8ff9370ed4a42859e1211R3146

Permissions checks are replaced with [[canExposeCameraInfo]] and [[canExposeMicrophoneInfo]] slots set by getUserMedia().
w3c/mediacapture-main#641
w3c/mediacapture-main#773

The "media.navigator.permission.disabled" pref is no longer involved in "devicechange" dispatch decisions.

Differential Revision: https://phabricator.services.mozilla.com/D132908
jamienicol pushed a commit to jamienicol/gecko that referenced this pull request Feb 3, 2022
…apturing MediaStreamTrack r=jib

"fully active and has focus" is now a sufficient condition for dispatching "devicechange" events if the change in devices should be visible from enumerateDevices().
https://github.com/w3c/mediacapture-main/pull/574/files#diff-1217ca1c44ff30a33dd50c49d03b5cadc9633c789df8ff9370ed4a42859e1211R3146

Permissions checks are replaced with [[canExposeCameraInfo]] and [[canExposeMicrophoneInfo]] slots set by getUserMedia().
w3c/mediacapture-main#641
w3c/mediacapture-main#773

The "media.navigator.permission.disabled" pref is no longer involved in "devicechange" dispatch decisions.

Differential Revision: https://phabricator.services.mozilla.com/D132908
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request May 16, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request May 16, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302
aosmond pushed a commit to aosmond/gecko that referenced this pull request May 18, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378
aosmond pushed a commit to aosmond/gecko that referenced this pull request May 18, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request May 18, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

UltraBlame original commit: cf689822deaf314fc6deeea180a921e172e80304
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request May 18, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

UltraBlame original commit: 59b9147c85f0fc893bab3ab9baa431d66bfb25cb
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request May 18, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

UltraBlame original commit: cf689822deaf314fc6deeea180a921e172e80304
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request May 18, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

UltraBlame original commit: 59b9147c85f0fc893bab3ab9baa431d66bfb25cb
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request May 18, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

UltraBlame original commit: cf689822deaf314fc6deeea180a921e172e80304
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request May 18, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

UltraBlame original commit: 59b9147c85f0fc893bab3ab9baa431d66bfb25cb
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request May 26, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request May 26, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302
moz-wptsync-bot pushed a commit to web-platform-tests/wpt that referenced this pull request May 26, 2023
…etUserMedia success, to spec.

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1528042
gecko-commit: 55c6b85b37c1fb8d6d0b6a273e237b4921672743
gecko-reviewers: karlt
moz-wptsync-bot pushed a commit to web-platform-tests/wpt that referenced this pull request May 26, 2023
…ontinue to test full device information exposure in enumerateDevices().

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1528042
gecko-commit: 173f133fb868ce50a9feec4e26496be7f7aeae11
gecko-reviewers: karlt
moz-wptsync-bot pushed a commit to web-platform-tests/wpt that referenced this pull request May 27, 2023
…etUserMedia success, to spec.

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1528042
gecko-commit: 55c6b85b37c1fb8d6d0b6a273e237b4921672743
gecko-reviewers: karlt
moz-wptsync-bot pushed a commit to web-platform-tests/wpt that referenced this pull request May 27, 2023
…ontinue to test full device information exposure in enumerateDevices().

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1528042
gecko-commit: 173f133fb868ce50a9feec4e26496be7f7aeae11
gecko-reviewers: karlt
ErichDonGubler pushed a commit to erichdongubler-mozilla/firefox that referenced this pull request May 27, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378
ErichDonGubler pushed a commit to erichdongubler-mozilla/firefox that referenced this pull request May 27, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request May 31, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

UltraBlame original commit: 55c6b85b37c1fb8d6d0b6a273e237b4921672743
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request May 31, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

UltraBlame original commit: 173f133fb868ce50a9feec4e26496be7f7aeae11
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request May 31, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

UltraBlame original commit: 55c6b85b37c1fb8d6d0b6a273e237b4921672743
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request May 31, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

UltraBlame original commit: 173f133fb868ce50a9feec4e26496be7f7aeae11
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request May 31, 2023
… (and after) getUserMedia success, to spec. r=karlt

Updates enumerateDevices() to limit exposure of privacy sensitive
information ahead of actual camera or microphone use.

It also implements the "creating a device info object" algorithm correctly
after getUserMedia success, which only exposes information on cameras or
microphones (but not both) if only one or the other kind has successfully
been used.

Includes the latest privacy improvements to the spec:
- w3c/mediacapture-main#632
- w3c/mediacapture-main#641
- w3c/mediacapture-main#773

This also fixes media.navigator.permission.disabled leaking labels.

Differential Revision: https://phabricator.services.mozilla.com/D100378

UltraBlame original commit: 55c6b85b37c1fb8d6d0b6a273e237b4921672743
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request May 31, 2023
… to let them continue to test full device information exposure in enumerateDevices(). r=karlt

This is required by spec. See
w3c/mediacapture-main#641 and
w3c/mediacapture-main#773 for details.

Also fixes test_enumerateDevices_getUserMediaFake.html to run on macOS outside automation.

Differential Revision: https://phabricator.services.mozilla.com/D154302

UltraBlame original commit: 173f133fb868ce50a9feec4e26496be7f7aeae11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
privacy-pr PRs from privacy review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants