Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(515)

Unified Diff: third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp

Issue 1494543002: Add counters for nonstandard uses of RTCPeerConnection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update histograms.xml Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp
diff --git a/third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp b/third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp
index d762b2f78306109828be9d315d068569c5a4ce57..38891a8d0269205ad1d942039f1cb7937d656331 100644
--- a/third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp
+++ b/third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp
@@ -41,6 +41,7 @@
#include "core/dom/ExceptionCode.h"
#include "core/dom/ExecutionContext.h"
#include "core/frame/LocalFrame.h"
+#include "core/frame/UseCounter.h"
#include "core/html/VoidCallback.h"
#include "core/loader/FrameLoader.h"
#include "core/loader/FrameLoaderClient.h"
@@ -300,6 +301,11 @@ RTCOfferOptions* RTCPeerConnection::parseOfferOptions(const Dictionary& options,
RTCPeerConnection* RTCPeerConnection::create(ExecutionContext* context, const Dictionary& rtcConfiguration, const Dictionary& mediaConstraints, ExceptionState& exceptionState)
{
+ if (mediaConstraints.isObject())
+ UseCounter::count(context, UseCounter::RTCPeerConnectionConstructorConstraints);
+ else
+ UseCounter::count(context, UseCounter::RTCPeerConnectionConstructorCompliant);
+
RTCConfiguration* configuration = parseConfiguration(rtcConfiguration, exceptionState);
if (exceptionState.hadException())
return 0;
@@ -361,8 +367,13 @@ RTCPeerConnection::~RTCPeerConnection()
ASSERT(m_closed || m_stopped);
}
-void RTCPeerConnection::createOffer(RTCSessionDescriptionCallback* successCallback, RTCErrorCallback* errorCallback, const Dictionary& rtcOfferOptions, ExceptionState& exceptionState)
+void RTCPeerConnection::createOffer(ExecutionContext* context, RTCSessionDescriptionCallback* successCallback, RTCErrorCallback* errorCallback, const Dictionary& rtcOfferOptions, ExceptionState& exceptionState)
{
+ if (errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateOfferLegacyFailureCallback);
+ else
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateOfferLegacyNoFailureCallback);
+
if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
return;
@@ -375,18 +386,38 @@ void RTCPeerConnection::createOffer(RTCSessionDescriptionCallback* successCallba
RTCSessionDescriptionRequest* request = RTCSessionDescriptionRequestImpl::create(executionContext(), this, successCallback, errorCallback);
if (offerOptions) {
+ if (offerOptions->offerToReceiveAudio() != -1 || offerOptions->offerToReceiveVideo() != -1)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateOfferLegacyOfferOptions);
+ else if (errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateOfferLegacyCompliant);
+
m_peerHandler->createOffer(request, offerOptions);
} else {
WebMediaConstraints constraints = MediaConstraintsImpl::create(rtcOfferOptions, exceptionState);
if (exceptionState.hadException())
return;
+ if (!constraints.isEmpty())
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateOfferLegacyConstraints);
+ else if (errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateOfferLegacyCompliant);
+
m_peerHandler->createOffer(request, constraints);
}
}
-void RTCPeerConnection::createAnswer(RTCSessionDescriptionCallback* successCallback, RTCErrorCallback* errorCallback, const Dictionary& mediaConstraints, ExceptionState& exceptionState)
+void RTCPeerConnection::createAnswer(ExecutionContext* context, RTCSessionDescriptionCallback* successCallback, RTCErrorCallback* errorCallback, const Dictionary& mediaConstraints, ExceptionState& exceptionState)
{
+ if (errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateAnswerLegacyFailureCallback);
+ else
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateAnswerLegacyNoFailureCallback);
+
+ if (mediaConstraints.isObject())
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateAnswerLegacyConstraints);
+ else if (errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionCreateAnswerLegacyCompliant);
+
if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
return;
@@ -400,8 +431,17 @@ void RTCPeerConnection::createAnswer(RTCSessionDescriptionCallback* successCallb
m_peerHandler->createAnswer(request, constraints);
}
-void RTCPeerConnection::setLocalDescription(RTCSessionDescription* sessionDescription, VoidCallback* successCallback, RTCErrorCallback* errorCallback, ExceptionState& exceptionState)
+void RTCPeerConnection::setLocalDescription(ExecutionContext* context, RTCSessionDescription* sessionDescription, VoidCallback* successCallback, RTCErrorCallback* errorCallback, ExceptionState& exceptionState)
{
+ if (successCallback && errorCallback) {
+ UseCounter::count(context, UseCounter::RTCPeerConnectionSetLocalDescriptionLegacyCompliant);
+ } else {
+ if (!successCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionSetLocalDescriptionLegacyNoSuccessCallback);
+ if (!errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionSetLocalDescriptionLegacyNoFailureCallback);
+ }
+
if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
return;
@@ -420,8 +460,17 @@ RTCSessionDescription* RTCPeerConnection::localDescription()
return RTCSessionDescription::create(webSessionDescription);
}
-void RTCPeerConnection::setRemoteDescription(RTCSessionDescription* sessionDescription, VoidCallback* successCallback, RTCErrorCallback* errorCallback, ExceptionState& exceptionState)
+void RTCPeerConnection::setRemoteDescription(ExecutionContext* context, RTCSessionDescription* sessionDescription, VoidCallback* successCallback, RTCErrorCallback* errorCallback, ExceptionState& exceptionState)
{
+ if (successCallback && errorCallback) {
+ UseCounter::count(context, UseCounter::RTCPeerConnectionSetRemoteDescriptionLegacyCompliant);
+ } else {
+ if (!successCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionSetRemoteDescriptionLegacyNoSuccessCallback);
+ if (!errorCallback)
+ UseCounter::count(context, UseCounter::RTCPeerConnectionSetRemoteDescriptionLegacyNoFailureCallback);
+ }
+
if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
return;
@@ -683,8 +732,9 @@ MediaStream* RTCPeerConnection::getStreamById(const String& streamId)
return 0;
}
-void RTCPeerConnection::getStats(RTCStatsCallback* successCallback, MediaStreamTrack* selector)
+void RTCPeerConnection::getStats(ExecutionContext* context, RTCStatsCallback* successCallback, MediaStreamTrack* selector)
{
+ UseCounter::count(context, UseCounter::RTCPeerConnectionGetStatsLegacyNonCompliant);
RTCStatsRequest* statsRequest = RTCStatsRequestImpl::create(executionContext(), this, successCallback, selector);
// FIXME: Add passing selector as part of the statsRequest.
m_peerHandler->getStats(statsRequest);

Powered by Google App Engine
This is Rietveld 408576698