Log WebRTC stats in inspector console only when setting is verbose
authoryouenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Nov 2018 04:48:30 +0000 (04:48 +0000)
committeryouenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Nov 2018 04:48:30 +0000 (04:48 +0000)
https://bugs.webkit.org/show_bug.cgi?id=192014

Reviewed by Eric Carlson.

Add a WebRTCStats channel that is used by default to output WebRTC stats in console.
When WebRTC Debug logging is enabled, log WebRTC stats in WebRTC channel,
so that they appear as debug information in Web Inspector.

No change of JS behavior.
Covered by manually testing what is logged in inspector and console.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
* platform/Logging.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238601 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp
Source/WebCore/platform/Logging.h

index d28bf54..7612751 100644 (file)
@@ -1,3 +1,21 @@
+2018-11-27  Youenn Fablet  <youenn@apple.com>
+
+        Log WebRTC stats in inspector console only when setting is verbose
+        https://bugs.webkit.org/show_bug.cgi?id=192014
+
+        Reviewed by Eric Carlson.
+
+        Add a WebRTCStats channel that is used by default to output WebRTC stats in console.
+        When WebRTC Debug logging is enabled, log WebRTC stats in WebRTC channel,
+        so that they appear as debug information in Web Inspector.
+
+        No change of JS behavior.
+        Covered by manually testing what is logged in inspector and console.
+
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+        (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
+        * platform/Logging.h:
+
 2018-11-27  Simon Fraser  <simon.fraser@apple.com>
 
         Fix the mis-spelled "m_clienstWaitingForAsyncDecoding"
index 7c85d97..a9ee827 100644 (file)
@@ -854,8 +854,18 @@ void LibWebRTCMediaEndpoint::OnStatsDelivered(const rtc::scoped_refptr<const web
             m_statsLogTimer.startRepeating(statsLogInterval(timestamp));
         }
 
-        for (auto iterator = report->begin(); iterator != report->end(); ++iterator)
-            ALWAYS_LOG(Logger::LogSiteIdentifier("LibWebRTCMediaEndpoint", "OnStatsDelivered", logIdentifier()), RTCStatsLogger { *iterator });
+        for (auto iterator = report->begin(); iterator != report->end(); ++iterator) {
+            if (logger().willLog(logChannel(), WTFLogLevelDebug)) {
+                // Stats are very verbose, let's only display them in inspector console in verbose mode.
+                logger().debug(LogWebRTC,
+                    Logger::LogSiteIdentifier("LibWebRTCMediaEndpoint", "OnStatsDelivered", logIdentifier()),
+                    RTCStatsLogger { *iterator });
+            } else {
+                logger().logAlways(LogWebRTCStats,
+                    Logger::LogSiteIdentifier("LibWebRTCMediaEndpoint", "OnStatsDelivered", logIdentifier()),
+                    RTCStatsLogger { *iterator });
+            }
+        }
     });
 #else
     UNUSED_PARAM(report);
index 1a23008..17450da 100644 (file)
@@ -103,6 +103,7 @@ namespace WebCore {
     M(WebGPU) \
     M(WebMetal) \
     M(WebRTC) \
+    M(WebRTCStats) \
     M(WheelEventTestTriggers) \
 
 #undef DECLARE_LOG_CHANNEL