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 #39116

Merged
merged 2 commits into from Jul 24, 2023

Conversation

aiddya
Copy link
Contributor

@aiddya aiddya commented Jul 16, 2023

Backport of #38833

See that PR for details.

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

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 electron#37463
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.
@aiddya aiddya requested a review from a team as a code owner July 16, 2023 04:36
@electron-cation electron-cation bot added the new-pr 🌱 PR opened in the last 24 hours label Jul 16, 2023
@trop trop bot added 23-x-y backport This is a backport PR semver/patch backwards-compatible bug fixes labels Jul 16, 2023
@electron-cation electron-cation bot removed the new-pr 🌱 PR opened in the last 24 hours label Jul 16, 2023
@codebytere codebytere merged commit 595e25a into electron:23-x-y Jul 24, 2023
9 checks passed
@release-clerk
Copy link

release-clerk bot commented Jul 24, 2023

Release Notes Persisted

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

@aiddya aiddya deleted the 23-x-y-pipewire-crash-fix branch August 2, 2023 02:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
23-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

3 participants