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

Reply via email to