Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b36717dc42b180575f2a695f04703b2765c1d28e
https://github.com/WebKit/WebKit/commit/b36717dc42b180575f2a695f04703b2765c1d28e
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:
-----------
[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
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