With privacy.resistFingerprinting track.label & track.getSettings().deviceId differ from enumerateDevices()
Categories
(Core :: WebRTC: Audio/Video, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox132 | --- | fixed |
People
(Reporter: jib, Assigned: jib, NeedInfo)
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•10 months ago
|
Updated•10 months ago
|
Comment 1•4 months ago
|
||
can we close this issue since bug 1899736 seemingly fixed this issue?
Comment 2•4 months ago
|
||
I didn't mean to close it, sorry.
Comment 3•3 months ago
|
||
When you have an opportunity, we just wanted to confirm this with you.
Assignee | ||
Comment 4•3 months 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 months ago
|
||
Updated•3 months ago
|
Comment 7•2 months ago
|
||
bugherder |
Updated•2 months ago
|
Comment 10•1 month ago
|
||
I've attempted to reproduce the issue in Nightly 124.0a1 (2024-01-25) by following the STR from Comment 0.
The results were as follows:
Microphone (live): Internal Microphone (WhEksNbn918s9ByHQH2aXk/HtcVVSTwsZoVkqmy2J6I=)
Camera (live): Internal Camera (oL8MC48R7wwFrPXNTkVGb5hlc4vqIGI0x02+EtkpMbw=)
Enumerate 2 devices.
audioinput: Default Audio Device (d0eDY14zhz+oQD3LMMBeLC2f5nm8j7Co6JA9K9fNDXk=)
videoinput: Default Video Device (thw6aahrwtwhXKd825iz3MDvxUmUoUM7ygMZQSMWjyg=)
These results seem to align with the actual result mentioned in Comment 0.
Based on my understanding, the device names should be displayed as Default Audio/Video Device when privacy.resistFingerprinting is set to true.
However, in Firefox 132.0b7, I've noticed different results:
Microphone (live): Internal Microphone (BgvHNF71uegMmhKRIvmnD+gviWicuBvGBs2AAw9VxTM=)
Camera (live): Internal Camera (1sD2FIg2Bbwlr0g+LsELQeBFQkTXrmuz7CiKLLr14Uc=)
Enumerate 3 devices.
audioinput: Internal Microphone (BgvHNF71uegMmhKRIvmnD+gviWicuBvGBs2AAw9VxTM=)
videoinput: Internal Camera (1sD2FIg2Bbwlr0g+LsELQeBFQkTXrmuz7CiKLLr14Uc=)
audiooutput: Internal Speaker (17SHLFG8psLaLLr8QPjwcoO3w7q3j7PymrG3wr+4dK8=)
This indicates that the issue may not be fully resolved, as the device names are still displayed as Internal Camera/Microphone. Could you please have a look and let me know if I may have missed something in my testing? Thank you.
Description
•