With privacy.resistFingerprinting track.label & track.getSettings().deviceId differ from enumerateDevices()
Categories
(Core :: WebRTC: Audio/Video, defect, P2)
Tracking
()
People
(Reporter: jib, Assigned: jib)
References
(Blocks 2 open bugs)
Details
Attachments
(1 file)
With bug 1372073, Firefox reveals a single virtual camera and a single virtual microphone to the webpage, regardless of the device(s) chosen by the end-user in Firefox's permission prompt. But the illusion breaks spec, since track.label and track.deviceId differ from enumerateDevices.
STR:
- In about:config set
privacy.resistFingerprinting
totrue
- Open https://jsfiddle.net/jib1/LbtxeLvw/ and revoke any persistent permission (from the URL bar)
- Click
Start!
and Allow - Click
Enumerate!
Expected result:
Microphone (live): Default Audio Device (yQKd8pvj9H4jWx7oVQ6lNZdlXWc6r4vpyn7UpUPksEA=)
Camera (live): Default Video Device (NYJ3Sh2xbwtBkMTZiWAWv7sRLwI5vsWdlvjhG8hWFOY/4=)
Enumerate 2 devices.
audioinput: Default Audio Device (yQKd8pvj9H4jWx7oVQ6lNZdlXWc6r4vpyn7UpUPksEA=)
videoinput: Default Video Device (NYJ3Sh2xbwtBkMTZiWAWv7sRLwI5vsWdlvjhG8hWFOY/4=)
Actual result:
Microphone (live): Internal Microphone (XG9Xdx7rc7Y9mA15fdd4BQNNBiYnGbPSDsMIw4xrWMs=)
Camera (live): Internal Camera (RloHNZKXE41tSKzAy9a4B1nBFVCZYY0IwZ9IKuFGV/4=)
Enumerate 2 devices.
audioinput: Default Audio Device (yQKd8pvj9H4jWx7oVQ6lNZdlXWc6r4vpyn7UpUPksEA=)
videoinput: Default Video Device (NYJ3Sh2xbwtBkMTZiWAWv7sRLwI5vsWdlvjhG8hWFOY=)
The suggested fix would be to align the track output with that of enumerateDevices (not the other way around).
Updated•8 months ago
|
Updated•7 months ago
|
Comment 1•1 month ago
|
||
can we close this issue since bug 1899736 seemingly fixed this issue?
Comment 2•1 month ago
|
||
I didn't mean to close it, sorry.
Comment 3•14 days ago
|
||
When you have an opportunity, we just wanted to confirm this with you.
Assignee | ||
Comment 4•3 days ago
|
||
I see no tests in bug 1899736. Where is resistFingerprinting tested?
I've verified the fix by setting privacy.resistFingerprinting
to true in about:config locally and looking at this test in https://wpt.live/mediacapture-streams/MediaStreamTrack-getSettings.https.html which failed in release and now succeeds in nightly:
groupId is correctly reported by getSettings() for all input devices
Despite its name it relies on both deviceId and groupId. I'll update the test to be clearer and more thorough (but it still won't test resistFingerprinting).
Assignee | ||
Comment 5•3 days ago
|
||
Updated•3 days ago
|
Description
•