Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 32aac5dacfa53cb1d89423f91f2e49e1210a3952
https://github.com/WebKit/WebKit/commit/32aac5dacfa53cb1d89423f91f2e49e1210a3952
Author: Patrick Griffis <[email protected]>
Date: 2026-08-21 (Fri, 21 Aug 2026)
Changed paths:
M Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.cpp
M Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.h
M
Source/WebCore/platform/mediastream/gstreamer/PipeWireCaptureDeviceManager.cpp
M
Source/WebCore/platform/mediastream/gstreamer/PipeWireCaptureDeviceManager.h
Log Message:
-----------
[GStreamer] Fix issues with pipewire device capture
https://bugs.webkit.org/show_bug.cgi?id=321834
Reviewed by Philippe Normand.
- Every call to getUserMedia() or enumerateDevices() made a new connection
and sent a request to the portal. So it was very easy for 5 dialogs to
pop up opening one site. This keeps a single connection and reuses it.
- accessCamera() used to wait for responses by using a nested mainloop,
this causes reentrancy issues that are impossible to reason about,
just remove the mainloop as everything is async anyway.
This re-enables this feature on WPE which incorrectly asserted nobody
uses WPE with portals.
* Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.cpp:
(WebCore::DesktopPortal::~DesktopPortal):
(WebCore::DesktopPortal::notifyResponse):
(WebCore::DesktopPortalCamera::accessCamera):
* Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.h:
(WebCore::DesktopPortal::notifyResponse): Deleted.
*
Source/WebCore/platform/mediastream/gstreamer/PipeWireCaptureDeviceManager.cpp:
(WebCore::PipeWireCaptureDeviceManager::~PipeWireCaptureDeviceManager):
(WebCore::PipeWireCaptureDeviceManager::notifyDevicesComputed):
(WebCore::PipeWireCaptureDeviceManager::provisionDevices):
(WebCore::PipeWireCaptureDeviceManager::computeCaptureDevices):
* Source/WebCore/platform/mediastream/gstreamer/PipeWireCaptureDeviceManager.h:
Canonical link: https://commits.webkit.org/319608@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications