[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