Open Bug 1876636 Opened 8 months ago Updated 3 days ago

With privacy.resistFingerprinting track.label & track.getSettings().deviceId differ from enumerateDevices()

Categories

(Core :: WebRTC: Audio/Video, defect, P2)

defect

Tracking

()

REOPENED

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:

  1. In about:config set privacy.resistFingerprinting to true
  2. Open https://jsfiddle.net/jib1/LbtxeLvw/ and revoke any persistent permission (from the URL bar)
  3. Click Start! and Allow
  4. 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).

Blocks: 1876810
Severity: -- → S3
Priority: -- → P2
See Also: → 1899736

can we close this issue since bug 1899736 seemingly fixed this issue?

Status: NEW → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED

I didn't mean to close it, sorry.

Status: RESOLVED → REOPENED
Resolution: FIXED → ---

When you have an opportunity, we just wanted to confirm this with you.

Flags: needinfo?(jib)

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).

Flags: needinfo?(jib)
Assignee: nobody → jib
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: