Display capture under Wayland should use a unified picker for any type of capture
Categories
(Core :: WebRTC, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr102 | --- | unaffected |
firefox110 | --- | unaffected |
firefox111 | --- | verified |
firefox112 | --- | verified |
People
(Reporter: ng, Assigned: jgrulich)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(2 files)
48 bytes,
text/x-phabricator-request
|
dmeehan
:
approval-mozilla-beta+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
Details | Review |
(From original bug)
Bug 1811341 - fix OS picker behavior under Wayland
Recent WebRTC backports and changes that are about to be backported from
upstream to Firefox breaks and will break how we work with PipWire based
desktop capturer. Currently when constructing device list, a fallback to
ScreenCapturerX11 is used, as we don't call set_allow_pipewire(), which
wouldn't make a difference anyway. In such case the only thing we need
is a placeholder for a screen that will request OS level prompt. We also
need a way to request both screens and windows in one xdg-desktop-portal
call as recent WebRTC made each type be called separately, therefore the
introduction of GenericCapturer. Lastly we need to make sure when there
is a MediaDevice requesting the OS prompt, that it will be checked as
first.
Assignee | ||
Comment 1•2 years ago
|
||
Recent WebRTC backports and changes that are about to be backported from
upstream to Firefox breaks and will break how we work with PipWire based
desktop capturer. Currently when constructing device list, a fallback to
ScreenCapturerX11 is used, as we don't call set_allow_pipewire(), which
wouldn't make a difference anyway. In such case the only thing we need
is a placeholder for a screen that will request OS level prompt. We also
need a way to request both screens and windows in one xdg-desktop-portal
call as recent WebRTC made each type be called separately, therefore the
introduction of GenericCapturer. Lastly we need to make sure when there
is a MediaDevice requesting the OS prompt, that it will be checked as
first.
In order to use unmodified libwebrtc, Firefox would need to rework the
OS picker to request each type (screens and windows) separately so we
can just use regular ScreenCapturer and WindowCapturer. This should be
done ideally the way Chromium does it, where users can actually see
even the preview of what they picked over xdg-desktop-portal before it
is actually shared with requesting web page and they also have option
to make the request again in case they picked a wrong window or screen.
Updated•2 years ago
|
Comment 2•2 years ago
|
||
Set release status flags based on info from the regressing bug 1811341
Reporter | ||
Comment 3•2 years ago
|
||
Once landed, I would like to nominate this for Beta uplift.
Reporter | ||
Comment 4•2 years ago
|
||
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Comment 9•2 years ago
|
||
bugherder |
Updated•2 years ago
|
Comment 10•2 years ago
|
||
The patch landed in nightly and beta is affected.
:grulja, is this bug important enough to require an uplift?
- If yes, please nominate the patch for beta approval.
- If no, please set
status-firefox111
towontfix
.
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 11•2 years ago
|
||
Beta/Release Uplift Approval Request
- User impact if declined: Users will not be able to share application windows, or potentially anything when XWayland is not running. Also they were hit by two xdg-desktop-portal dialogs, which is quite annoying issue.
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: Yes
- If yes, steps to reproduce: Try to share a screen on Wayland. You should get presented with "Use operating system settings" option only in the picker and you should not see "Screen x" or anything else. Also upon confirmation you should get a dialog where you can share either a screen or a window, while previously only screens were possible and you shouldn't get the same dialog again once you pick something in the xdg-desktop-portal-dialog.
- List of other uplifts needed: n/a
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): This change introduces a slightly different behavior specifically for Wayland screen sharing when PipeWire is used and doesn't affect anything else.
- String changes made/needed: No
Comment 12•2 years ago
|
||
Comment on attachment 9318221 [details]
Bug 1817263 - fix OS picker behavior under Wayland
Adding approval request on the attachment so it appears in relman uplift queries
See Comment 11
Comment 13•2 years ago
|
||
Comment on attachment 9318221 [details]
Bug 1817263 - fix OS picker behavior under Wayland
Approved for 111.0b6
Comment 14•2 years ago
|
||
bugherder uplift |
Updated•2 years ago
|
Updated•2 years ago
|
Comment 15•2 years ago
•
|
||
I was able to reproduce the issue on Firefox 112.0a1 (2023-02-16) on Ubuntu 22.04 Wayland where multiple prompts were shown initially.
The issue is fixed on Firefox 111.0b6 and Firefox 112.0a1 (2023-02-26) and only one prompt is shown from Firefox then the xdg one and the screenshare starts. Tests were performed on the same Ubuntu 22.04 Wayland system.
Assignee | ||
Comment 17•1 year ago
|
||
This was a change we introduced for Firefox and we didn't backport it to
WebRTC, however, it has been now requested also by Electron so this API
additon is now also part of WebRTC with just minor changes. This change
makes it on par with the WebRTC version so the next time we do WebRTC
rebase, we don't need to cherry-pick it and resolve conflicts.
WebRTC change: 0e9556a90cec52c2375c9250269f3abc21e8ca0c
Comment 18•1 year ago
|
||
I just noticed the new patch here never landed. Does it need to be landed?
Assignee | ||
Comment 19•1 year ago
|
||
(In reply to Michael Froman [:mjf] from comment #18)
I just noticed the new patch here never landed. Does it need to be landed?
Yes, please.
Comment 20•1 year ago
|
||
Comment 21•1 year ago
|
||
bugherder |
Description
•