Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ac56c26f923ddb22d407c58f04e62ca32d41e9ce
      
https://github.com/WebKit/WebKit/commit/ac56c26f923ddb22d407c58f04e62ca32d41e9ce
  Author: Youenn Fablet <you...@apple.com>
  Date:   2025-08-26 (Tue, 26 Aug 2025)

  Changed paths:
    M Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm
    M 
Source/WebCore/platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm

  Log Message:
  -----------
  [macOS] camera OS indicator does not go away when stopping camera and 
screenshare
rdar://152962650
https://bugs.webkit.org/show_bug.cgi?id=297718

Reviewed by Eric Carlson.

We need to do two things:
- When capture starts, make sure the picker is active.
- When capture is muted, make sure the picker stays active as long as the muted 
source may be unmuted. This is to ensure that capturing applications that can 
fullscreen (like KeyNotes) is working appropriately
- When capture is ended, make sure the picker is inactive if there is no other 
source (started or muted).

To do so, we do the following:
- We move the setActive logic to WebDisplayMediaPromptHelper 
startObservingPicker/stopObservingPicker.
- We make sure that ScreenCaptureKitCaptureSource keeps its m_sessionSource 
alive when stopped. This prevents the picker to be set back to inactive too 
early.
- We continue to recreate m_sessionSource whenever starting to capture (initial 
start or unmute) to keep the existing code as is.
- We make sure that ScreenCaptureKitCaptureSource clears its m_sessionSource 
when ended.

Manually tested by muting/unmuting capture and capturing KeyNotes 
app/fullscreening it.

* Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
* 
Source/WebCore/platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:
(-[WebDisplayMediaPromptHelper startObservingPicker:]):
(-[WebDisplayMediaPromptHelper stopObservingPicker:]):
(WebCore::ScreenCaptureKitSharingSessionManager::cancelPicking):
(WebCore::ScreenCaptureKitSharingSessionManager::promptWithSCContentSharingPicker):
(-[WebDisplayMediaPromptHelper hasObservingSession]): Deleted.

Canonical link: https://commits.webkit.org/299161@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to