Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: use StartUpdating method for PipeWire capturer #39051

Conversation

trop[bot]
Copy link
Contributor

@trop trop bot commented Jul 11, 2023

Backport of #38833

See that PR for details.

Notes: Fixed a crash when listing desktop capture sources on Wayland with PipeWire.

trop bot and others added 2 commits July 11, 2023 08:22
Fixed a crash related to PipeWire capturer by adapting to Chromium's
interface changes. Chromium expects a call to
`NativeDesktopMediaList::StartUpdating` with an implementation of
`DesktopMediaListObserver` for delegated capturers like PipeWire. This
interface allows listening to user permission events and listing
sources only after the user has made a choice on the permission dialog.

The interface has been implemented by an inner class to allow listening
to screen and window capture permissions concurrently using two
instances of the class. A patch that was resetting the capturer on the
first refresh has been changed to exclude PipeWire. PipeWire capturer
object will follow the lifecycle of `NativeDesktopMediaList`, as is the
case in Chromium.

Fixes #37463

Co-authored-by: Athul Iddya <athul@iddya.com>
The PipeWire stream starts after the dialog is dismissed. If the sources
are listed immediately afterwards, the thumbnail may not have been
generated by that time. Explicitly wait for both thumbnail generation
and a selection on the source dialog before listing sources.

Co-authored-by: Athul Iddya <athul@iddya.com>
@trop trop bot requested a review from a team as a code owner July 11, 2023 08:22
@trop trop bot added 25-x-y backport This is a backport PR semver/patch backwards-compatible bug fixes labels Jul 11, 2023
@VerteDinde VerteDinde merged commit dadb872 into 25-x-y Jul 11, 2023
13 checks passed
@VerteDinde VerteDinde deleted the trop/25-x-y-bp-fix-use-startupdating-method-for-pipewire-capturer-1689063721881 branch July 11, 2023 16:28
@release-clerk
Copy link

release-clerk bot commented Jul 11, 2023

Release Notes Persisted

Fixed a crash when listing desktop capture sources on Wayland with PipeWire.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
25-x-y backport This is a backport PR semver/patch backwards-compatible bug fixes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants