Branch: refs/heads/webkitglib/2.46
Home: https://github.com/WebKit/WebKit
Commit: aeb6e8e5d2c4d6838b414d90b737bd13036b999e
https://github.com/WebKit/WebKit/commit/aeb6e8e5d2c4d6838b414d90b737bd13036b999e
Author: Philippe Normand <[email protected]>
Date: 2024-11-26 (Tue, 26 Nov 2024)
Changed paths:
M LayoutTests/platform/glib/TestExpectations
M Source/WTF/wtf/Logger.cpp
M Source/WTF/wtf/Logger.h
M Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp
M Source/WebCore/Modules/mediastream/PeerConnectionBackend.h
M Source/WebCore/Modules/mediastream/RTCController.cpp
M Source/WebCore/Modules/mediastream/RTCController.h
M Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
M Source/WebCore/Modules/mediastream/RTCPeerConnection.h
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h
M
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp
M
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h
M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp
M Source/WebCore/platform/SourcesGStreamer.txt
A Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCLogSink.cpp
A Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCLogSink.h
Log Message:
-----------
Cherry-pick 287090@main (b36717dc42b1).
https://bugs.webkit.org/show_bug.cgi?id=279433
[WebRTC] Support for events and stats aggregation
https://bugs.webkit.org/show_bug.cgi?id=279433
<rdar://problem/136139817>
Reviewed by Eric Carlson.
This patch instruments the LibWebRTC and GstWebRTC backends with additional
logging that can be
gathered and processed by the PeerConnectionBackend. In this first version,
for WPE and GTK ports,
the collected logs are written to a JSON file, if the
WEBKIT_WEBRTC_JSON_EVENTS_FILE environment
variable is set.
gatherLogs is also now supported by the GStreamer backend, by using a
custom GST_DEBUG log handler.
Future versions could send the JSON stream to the WebInspector or a custom
URI protocol handler in
the UIProcess, for live graphing purposes.
* LayoutTests/platform/glib/TestExpectations:
* Source/WTF/wtf/Logger.h:
(WTF::Logger::Observer::handleLogMessage):
(WTF::Logger::logAlways const):
(WTF::Logger::error const):
(WTF::Logger::warning const):
(WTF::Logger::info const):
(WTF::Logger::debug const):
(WTF::Logger::logAlwaysVerbose const):
(WTF::Logger::errorVerbose const):
(WTF::Logger::warningVerbose const):
(WTF::Logger::infoVerbose const):
(WTF::Logger::debugVerbose const):
(WTF::Logger::willLog const):
* Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::PeerConnectionBackend):
(WebCore::PeerConnectionBackend::~PeerConnectionBackend):
(WebCore::PeerConnectionBackend::handleLogMessage):
(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::newDataChannel):
(WebCore::PeerConnectionBackend::generateJSONLogEvent):
(WebCore::PeerConnectionBackend::emitJSONLogEvent):
* Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:
(WebCore::PeerConnectionBackend::isJSONLogStreamingEnabled const):
(WebCore::PeerConnectionBackend::setJSONLogStreamingEnabled):
* Source/WebCore/Modules/mediastream/RTCController.cpp:
(WebCore::RTCController::startGatheringLogs):
(WebCore::RTCController::stopGatheringLogs):
(WebCore::RTCController::stopLoggingWebRTCLogs):
(WebCore::RTCController::stopLoggingLibWebRTCLogs): Deleted.
* Source/WebCore/Modules/mediastream/RTCController.h:
* Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::dispatchEvent):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::GStreamerMediaEndpoint):
(WebCore::RTCStatsLogger::toJSONString const):
(WebCore::GStreamerMediaEndpoint::processStatsItem):
(WebCore::GStreamerMediaEndpoint::statsLogInterval const):
(WebCore::GStreamerMediaEndpoint::startRTCLogs):
(WebCore::GStreamerMediaEndpoint::stopRTCLogs):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
*
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:
(WebCore::GStreamerPeerConnectionBackend::startGatheringStatLogs):
(WebCore::GStreamerPeerConnectionBackend::stopGatheringStatLogs):
(WebCore::GStreamerPeerConnectionBackend::provideStatLogs):
*
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h:
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* Source/WebCore/platform/SourcesGStreamer.txt:
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::setLogger):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCLogSink.cpp:
Added.
(WebCore::GStreamerWebRTCLogSink::GStreamerWebRTCLogSink):
(WebCore::toWebRTCLogLevel):
(WebCore::GStreamerWebRTCLogSink::start):
(WebCore::GStreamerWebRTCLogSink::stop):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCLogSink.h:
Added.
Canonical link: https://commits.webkit.org/287090@main
Canonical link: https://commits.webkit.org/282416.328@webkitglib/2.46
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes