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

Reply via email to