Closed Bug 1836377 Opened 2 years ago Closed 2 years ago

Whereby.com asks users to "Request permissions" on every visit, even though they've persisted cam/mic permission.

Categories

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

defect

Tracking

()

VERIFIED FIXED
115 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox113 --- unaffected
firefox114 --- unaffected
firefox115 --- fixed

People

(Reporter: jib, Assigned: jib)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(2 files)

Symptom: Whereby.com shows all users a button to "Request permissions" on every visit, even if the user has given permission and chosen to ☑ Remember this decision.

This is a recent regression, where permission-based exposure of camera/microphone device labels stopped working even though media.devices.enumerate.legacy.enabled is true.

STRs:

  1. (Pre-condition: ensure media.devices.enumerate.legacy.enabled is true in about:config)
  2. Join a whereby.com room
  3. Grant permission with ☑ Remember this decision checked.
  4. Close tab
  5. Revisit room

Expected results: "Join Room" button
Actual results: "Request permissions" button. Clicking it changes it to "Join Room".

STRs 2:

  1. (Pre-condition: ensure media.devices.enumerate.legacy.enabled is true in about:config)
  2. Open https://jan-ivar.github.io/dummy/enumerate.html
  3. Click Start Both! button.
  4. Grant permission with ☑ Remember this decision checked.
  5. Close tab
  6. Open https://jan-ivar.github.io/dummy/enumerate.html
  7. Click Enumerate Devices! button

Expected results: camera and microphone labels
Actual results: no labels

Regression range

16:59.97 INFO: Narrowed integration regression window from [ab6bfbe3, a809892f] (3 builds) to [2c62fbc6, a809892f] (2 builds) (~1 steps left)
16:59.97 INFO: No more integration revisions, bisection finished.
16:59.97 INFO: Last good revision: 2c62fbc6a4c9ecdcb0d999c762ace1d85c0d9c59
16:59.97 INFO: First bad revision: a809892ffbc5b4ce7416686bfb14350e1ee5eedf
16:59.97 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=2c62fbc6a4c9ecdcb0d999c762ace1d85c0d9c59&tochange=a809892ffbc5b4ce7416686bfb14350e1ee5eedf

Assignee: nobody → jib
Severity: -- → S3
Priority: -- → P1

Set release status flags based on info from the regressing bug 1528042

Pushed by jbruaroey@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cbef096ccab3 Restore permission-based exposure of camera/microphone device labels when media.devices.enumerate.legacy.enabled is true. r=karlt

Other web conferencing sites may similarly be affected, since sniffing for labels unfortunately is a common tactic for sites to infer permission.

Backed out for causing mochitest-media failures on test_enumerateDevices.html.

[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | Track label is a string
[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  Buffered messages finished
[task 2023-06-02T17:06:36.674Z] 17:06:36  WARNING -  TEST-UNEXPECTED-FAIL | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | Track label is the device label - got "Default Audio Device", expected ""
[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  SimpleTest.is@https://example.com/tests/SimpleTest/SimpleTest.js:507:14
[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  @https://example.com/tests/dom/media/webrtc/tests/mochitests/test_enumerateDevices.html:71:9
[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  async*runTest/<@https://example.com/tests/dom/media/webrtc/tests/mochitests/mediaStreamPlayback.js:199:11
[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  runTestWhenReady@https://example.com/tests/dom/media/webrtc/tests/mochitests/head.js:503:11
[task 2023-06-02T17:06:36.674Z] 17:06:36     INFO -  async*runTest@https://example.com/tests/dom/media/webrtc/tests/mochitests/mediaStreamPlayback.js:198:9
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  async*@https://example.com/tests/dom/media/webrtc/tests/mochitests/test_enumerateDevices.html:49:8
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | Known device kind
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | deviceId length id as expected for Firefox
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | Device label:
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | groupId must be present.
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | Track label is a string
[task 2023-06-02T17:06:36.675Z] 17:06:36  WARNING -  TEST-UNEXPECTED-FAIL | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | Track label is the device label - got "Default Video Device", expected ""
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  SimpleTest.is@https://example.com/tests/SimpleTest/SimpleTest.js:507:14
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  @https://example.com/tests/dom/media/webrtc/tests/mochitests/test_enumerateDevices.html:71:9
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  async*runTest/<@https://example.com/tests/dom/media/webrtc/tests/mochitests/mediaStreamPlayback.js:199:11
[task 2023-06-02T17:06:36.675Z] 17:06:36     INFO -  runTestWhenReady@https://example.com/tests/dom/media/webrtc/tests/mochitests/head.js:503:11
[task 2023-06-02T17:06:36.676Z] 17:06:36     INFO -  async*runTest@https://example.com/tests/dom/media/webrtc/tests/mochitests/mediaStreamPlayback.js:198:9
[task 2023-06-02T17:06:36.676Z] 17:06:36     INFO -  async*@https://example.com/tests/dom/media/webrtc/tests/mochitests/test_enumerateDevices.html:49:8
[task 2023-06-02T17:06:36.676Z] 17:06:36     INFO -  TEST-PASS | dom/media/webrtc/tests/mochitests/test_enumerateDevices.html | unknown plain deviceId on video must succeed
Flags: needinfo?(jib)
Pushed by jbruaroey@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1b5b955d3c13 Restore permission-based exposure of camera/microphone device labels when media.devices.enumerate.legacy.enabled is true. r=karlt https://hg.mozilla.org/integration/autoland/rev/e857fcea81f4 Turn off media.devices.enumerate.legacy.enabled in dom/media/webrtc mochitests by default. r=ng
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 115 Branch
Flags: needinfo?(jib)

Reproduced the issue with Firefox 115.0a1 (2023-06-01) on Windows 10 and macOS 12.
The issue is verified fixed with Firefox 116.0a1 (20230613092556) and Firefox 115.0b4 (20230611180300) on Windows 10, Ubuntu 22 and macOS 12.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: