[webkit-changes] [WebKit/WebKit] 6f897d: Slack is relying on garbage collection to stop cam...
youennf
noreply at github.com
Wed Feb 26 06:06:54 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6f897d3266250fcbab3b622a0c71f1fd1dcba398
https://github.com/WebKit/WebKit/commit/6f897d3266250fcbab3b622a0c71f1fd1dcba398
Author: Youenn Fablet <youenn at apple.com>
Date: 2025-02-26 (Wed, 26 Feb 2025)
Changed paths:
A LayoutTests/fast/mediastream/mediastream-gc-expected.txt
A LayoutTests/fast/mediastream/mediastream-gc.html
M Source/WebCore/Modules/mediastream/MediaStream.cpp
M Source/WebCore/Modules/mediastream/MediaStream.h
M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp
M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h
M Source/WebCore/platform/audio/PlatformMediaSessionManager.h
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
Log Message:
-----------
Slack is relying on garbage collection to stop camera capture
rdar://110627788
https://bugs.webkit.org/show_bug.cgi?id=288372
Reviewed by Jean-Yves Avenard.
We allow GC of MediaStream and MediaStreamTrack objects when they do not have event listeners.
We also allow GC of non RTCPeerConnection MediaStream since they cannot fire events.
Drive-by fix: Remove an unneeded map in LibWebRTCMediaEndpoint.
Covered by added test.
* LayoutTests/fast/mediastream/mediastream-gc-expected.txt: Added.
* LayoutTests/fast/mediastream/mediastream-gc.html: Added.
* Source/WebCore/Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::didAddTrack):
(WebCore::MediaStream::didRemoveTrack):
(WebCore::MediaStream::addTrackFromPlatform):
(WebCore::MediaStream::inactivate):
(WebCore::MediaStream::virtualHasPendingActivity const):
(WebCore::MediaStream::stop): Deleted.
* Source/WebCore/Modules/mediastream/MediaStream.h:
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::virtualHasPendingActivity const):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::mediaStreamFromRTCStream):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStreamId):
(WebCore::LibWebRTCMediaEndpoint::stop):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* Source/WebCore/platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::audioCaptureSourceCount const):
(WebCore::PlatformMediaSessionManager::hasAudioCaptureSource const): Deleted.
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::removeMediaStreamTrack):
(WebCore::Internals::audioCaptureSourceCount const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
Canonical link: https://commits.webkit.org/291110@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list