Skip to content

Add a debugging mode to capture RTC event logs to investigate WebRTC quality and performance issues#30550

Merged
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
youennf:eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues
Jul 18, 2024
Merged

Add a debugging mode to capture RTC event logs to investigate WebRTC quality and performance issues#30550
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
youennf:eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues

Conversation

@youennf
Copy link
Copy Markdown
Contributor

@youennf youennf commented Jul 7, 2024

240da91

Add a debugging mode to capture RTC event logs to investigate WebRTC quality and performance issues
https://bugs.webkit.org/show_bug.cgi?id=267697
rdar://121188500

Reviewed by Eric Carlson.

Upload protobuf to use the headers and compile routines in libwebrtc.
Make use of event logging libwebrtc support and expose it via gatherRTCLogs web inspector function.

* LayoutTests/http/tests/inspector/gatherWebInspectorRTCLogs.html:
* Source/ThirdParty/libwebrtc/Configurations/Base-libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Source/third_party/protobuf: Added.
* Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj:
* Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:
(WebCore::PeerConnectionBackend::startGatheringEventLogs):
(WebCore::PeerConnectionBackend::stopGatheringEventLogs):
* Source/WebCore/Modules/mediastream/RTCController.cpp:
(WebCore::RTCController::add):
(WebCore::RTCController::startGatheringLogs):
(WebCore::RTCController::stopGatheringLogs):
(WebCore::RTCController::startGatheringConnectionLogs):
(WebCore::RTCController::stopGatheringConnectionLogs):
(WebCore::RTCController::startGatheringStatLogs): Deleted.
* Source/WebCore/Modules/mediastream/RTCController.h:
* Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::startGatheringEventLogs):
(WebCore::RTCPeerConnection::stopGatheringEventLogs):
* Source/WebCore/Modules/mediastream/RTCPeerConnection.h:
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::stop):
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
(WebCore::LibWebRTCMediaEndpoint::statsLogInterval const):
(WebCore::LibWebRTCMediaEndpoint::startStatLogs):
(WebCore::LibWebRTCMediaEndpoint::stopStatLogs):
(WebCore::LibWebRTCMediaEndpoint::startEventLogs):
(WebCore::LibWebRTCMediaEndpoint::stopEventLogs):
(WebCore::LibWebRTCMediaEndpoint::provideEventLogs):
(WebCore::LibWebRTCMediaEndpoint::startRTCLogs): Deleted.
(WebCore::LibWebRTCMediaEndpoint::stopRTCLogs): Deleted.
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
(WebCore::LibWebRTCMediaEndpoint::Release const):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::startGatheringStatLogs):
(WebCore::LibWebRTCPeerConnectionBackend::stopGatheringStatLogs):
(WebCore::LibWebRTCPeerConnectionBackend::startGatheringEventLogs):
(WebCore::LibWebRTCPeerConnectionBackend::stopGatheringEventLogs):
(WebCore::LibWebRTCPeerConnectionBackend::provideEventLogs):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Source/WebCore/dom/Document.h:
* Source/WebCore/inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::gatherRTCLogs):
* Source/WebCore/inspector/RTCLogsCallback.h:
* Source/WebCore/inspector/RTCLogsCallback.idl:

Canonical link: https://commits.webkit.org/281087@main

27bb373

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ✅ 🛠 wincairo
✅ 🧪 bindings ✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ✅ 🧪 wpe-wk2 ✅ 🧪 wincairo-tests
✅ 🧪 webkitperl ❌ 🧪 ios-wk2 ✅ 🧪 api-mac ✅ 🧪 api-wpe
✅ 🧪 ios-wk2-wpt ✅ 🧪 mac-wk1 ✅ 🛠 wpe-cairo
✅ 🛠 🧪 jsc ✅ 🧪 api-ios ✅ 🧪 mac-wk2 ✅ 🛠 gtk
✅ 🛠 🧪 jsc-arm64 ✅ 🛠 vision ✅ 🧪 mac-AS-debug-wk2 ✅ 🧪 gtk-wk2
✅ 🛠 vision-sim ✅ 🧪 mac-wk2-stress ✅ 🧪 api-gtk
✅ 🛠 🧪 merge ✅ 🧪 vision-wk2 ✅ 🛠 jsc-armv7
🛠 tv ✅ 🧪 jsc-armv7-tests
✅ 🛠 tv-sim
✅ 🛠 watch
✅ 🛠 watch-sim

@youennf youennf self-assigned this Jul 7, 2024
@youennf youennf added the WebRTC For bugs in WebRTC label Jul 7, 2024
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jul 7, 2024
@youennf youennf force-pushed the eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues branch from 71d6f1d to 060bb87 Compare July 8, 2024 08:57
@youennf youennf removed the merging-blocked Applied to prevent a change from being merged label Jul 8, 2024
@youennf youennf force-pushed the eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues branch from 060bb87 to 8e05970 Compare July 8, 2024 09:21
@youennf youennf marked this pull request as ready for review July 8, 2024 11:52
@youennf
Copy link
Copy Markdown
Contributor Author

youennf commented Jul 8, 2024

@ddkilzer, to compile protobuf, I had to add a few -Wno-global-constructors and -Wno-exit-time-destructors.
The plan is to update protobuf in a following PR to remove those flags. Is that ok?

@youennf youennf force-pushed the eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues branch from 8e05970 to ac32c67 Compare July 8, 2024 12:03
@youennf youennf force-pushed the eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues branch from ac32c67 to ac2d24e Compare July 8, 2024 12:10
Copy link
Copy Markdown
Contributor

@eric-carlson eric-carlson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rs=me

@youennf
Copy link
Copy Markdown
Contributor Author

youennf commented Jul 18, 2024

The size of libwebrtc.dylib goes from 15.9 MB to 17.6 MB with the addition of protobuf.

@youennf youennf force-pushed the eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues branch from ac2d24e to 27bb373 Compare July 18, 2024 08:02
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jul 18, 2024
@youennf youennf removed the merging-blocked Applied to prevent a change from being merged label Jul 18, 2024
@youennf
Copy link
Copy Markdown
Contributor Author

youennf commented Jul 18, 2024

iOS failure unrelated, landing.

@youennf youennf added the merge-queue Applied to send a pull request to merge-queue label Jul 18, 2024
…quality and performance issues

https://bugs.webkit.org/show_bug.cgi?id=267697
rdar://121188500

Reviewed by Eric Carlson.

Upload protobuf to use the headers and compile routines in libwebrtc.
Make use of event logging libwebrtc support and expose it via gatherRTCLogs web inspector function.

* LayoutTests/http/tests/inspector/gatherWebInspectorRTCLogs.html:
* Source/ThirdParty/libwebrtc/Configurations/Base-libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Source/third_party/protobuf: Added.
* Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj:
* Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:
(WebCore::PeerConnectionBackend::startGatheringEventLogs):
(WebCore::PeerConnectionBackend::stopGatheringEventLogs):
* Source/WebCore/Modules/mediastream/RTCController.cpp:
(WebCore::RTCController::add):
(WebCore::RTCController::startGatheringLogs):
(WebCore::RTCController::stopGatheringLogs):
(WebCore::RTCController::startGatheringConnectionLogs):
(WebCore::RTCController::stopGatheringConnectionLogs):
(WebCore::RTCController::startGatheringStatLogs): Deleted.
* Source/WebCore/Modules/mediastream/RTCController.h:
* Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::startGatheringEventLogs):
(WebCore::RTCPeerConnection::stopGatheringEventLogs):
* Source/WebCore/Modules/mediastream/RTCPeerConnection.h:
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::stop):
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
(WebCore::LibWebRTCMediaEndpoint::statsLogInterval const):
(WebCore::LibWebRTCMediaEndpoint::startStatLogs):
(WebCore::LibWebRTCMediaEndpoint::stopStatLogs):
(WebCore::LibWebRTCMediaEndpoint::startEventLogs):
(WebCore::LibWebRTCMediaEndpoint::stopEventLogs):
(WebCore::LibWebRTCMediaEndpoint::provideEventLogs):
(WebCore::LibWebRTCMediaEndpoint::startRTCLogs): Deleted.
(WebCore::LibWebRTCMediaEndpoint::stopRTCLogs): Deleted.
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
(WebCore::LibWebRTCMediaEndpoint::Release const):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::startGatheringStatLogs):
(WebCore::LibWebRTCPeerConnectionBackend::stopGatheringStatLogs):
(WebCore::LibWebRTCPeerConnectionBackend::startGatheringEventLogs):
(WebCore::LibWebRTCPeerConnectionBackend::stopGatheringEventLogs):
(WebCore::LibWebRTCPeerConnectionBackend::provideEventLogs):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Source/WebCore/dom/Document.h:
* Source/WebCore/inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::gatherRTCLogs):
* Source/WebCore/inspector/RTCLogsCallback.h:
* Source/WebCore/inspector/RTCLogsCallback.idl:

Canonical link: https://commits.webkit.org/281087@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Add-a-debugging-mode-to-capture-RTC-event-logs-to-investigate-WebRTC-quality-and-performance-issues branch from 27bb373 to 240da91 Compare July 18, 2024 13:58
@webkit-commit-queue
Copy link
Copy Markdown
Collaborator

Committed 281087@main (240da91): https://commits.webkit.org/281087@main

Reviewed commits have been landed. Closing PR #30550 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 240da91 into WebKit:main Jul 18, 2024
@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Jul 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

WebRTC For bugs in WebRTC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants