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