Open Bug 1799822 Opened 2 years ago Updated 1 year ago

Inconsistencies in WebRTC permissions in identity panel with Page Info or multiple same-origin tabs

Categories

(Firefox :: Site Permissions, defect, P3)

defect

Tracking

()

Tracking Status
firefox-esr102 --- wontfix
firefox106 --- wontfix
firefox107 --- wontfix
firefox108 --- wontfix
firefox109 --- wontfix

People

(Reporter: karlt, Unassigned)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Attached file testcase
  1. Load testcase.
  2. Click "getUserMedia".
  3. "Allow" microphone use.
  4. Tools -> Page Info -> Permissions -> deselect "Use Default" under "Use the microphone", and select "Block".
  5. Click "getUserMedia". Microphone is blocked.
  6. Check the "You have granted this website additional permissions." identity permission panel.

Expect: Microphone "Blocked".
Actual: Microphone "Allowed Temporarily".

  1. Permissions -> select "Always Ask" under "Use the microphone".
  2. Reload page.

Expect: no "You have granted this website additional permissions." identity permission panel.
Actual: panel exists and says "Allowed Temporarily".

  1. Click getUserMedia

Expect: prompt/ask for microphone permission.
Actual: microphone allowed.

I suspect behaviors after 8 and 9, which are at least consistent with each other, regressed with changes for bug 1693677.
Firefox 87 behavior was to prompt for the microphone with no additional permissions at this point.

Firefox 87 already had the inconsistency in steps 5 and 6.

Regressed by: 1693677

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

:jib, since you are the author of the regressor, bug 1693677, could you take a look? Also, could you set the severity field?

For more information, please visit auto_nag documentation.

Severity: -- → S3
Priority: -- → P3

There are various permissions which states don't work well in the pageInfo window. Especially double-keyed once like external protocol and the here mentioned webrtc permissions. Perhaps we can deprecate the window at some point. Ideally we could integrate all the features into other existing surfaces, e.g. the permissions panel and the identity panel.

Flags: needinfo?(jib)
Attachment #9302646 - Attachment description: getUserMedia.html → testcase

Yes, the Page Info window is quite hidden without a default menubar and the identity/permissions panels and popups provide similar features, for WebRTC at least, with the difference that adding explicit block and allow features is only possible when the feature is requested by content. (In some ways that has similarities with Page Info being available for a domain only while a page is loaded from that domain.) Good to understand that Page Info is not so important now, thanks.

This is reproducible without the Page Info window, however, by replacing step 4 with

4.1 Open testcase in a second tab.
4.2 Click "getUserMedia".
4.3 Select "Remember this decision".
4.4. Select Block.

and replacing step 7 with

  1. Remove "Blocked" "Use the microphone" permission from the identity permission panel in the second tab.

The same inconsistency in steps 5 and 6 demonstrates in the first tab.
Perhaps arguably the same actual behavior after steps 8 and 9 feels more expected with the UI being associated with different tabs.

Summary: Inconsistencies in WebRTC permissions in identity panel and Page Info → Inconsistencies in WebRTC permissions in identity panel with Page Info or multiple same-origin tabs

TIL about Tools/Page Info!

The inconsistency makes sense to me. It's easier to illustrate with self-view in a media element opened in TWO tabs.

  1. In each tab, click Start Cam! + allow to watch yourself live in the video element
  2. Tools -> Page Info -> Permissions -> deselect "Use Default" under "Use the camera", and select "Block".

Notice both video elements keep playing.

  1. In each tab, click Start Cam! again

You'll get NotAllowedError, but the video element is still playing from before.

  1. In ONE tab, open the URL bar's Identity dropdown, and click to clear Allowed Temporarily ✖

The ONE video freezes. The other video keeps playing.

IOW, Page Info appears to be strictly about origin permissions in a vaccuum, caring only about (new) requests from origins, whereas Identity, while also setting permissions affecting origin, is also tied to a specific page where it terminates current page usage for consistency.

Both models seem sound and defensible, depending on what users' expectations are, but the Identity one seems simpler for users to understand and superior for privacy.... — except it would arguably have been even better for privacy had it terminated usage in BOTH tabs. FWIW, Chrome blacks out both video elements when I open the fiddles in two tabs and set "blocked" permission from either's url bar (camera icon on the right), so maybe we should too?

Side-note: I seem to recall Chrome used to work more like Page Info years ago, but it appears they've fixed it to work more like Firefox's identity panel.

I also wonder how much functionality would be lost if we removed Tools/Page Info.

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

See Also: → 1821225
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: