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

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

Issue 2415673003: Merge RTCConfiguration into WebRTCConfiguration (Closed)
Patch Set: headers, kConstants Created 4 years, 2 months 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/peerconnection/RTCPeerConnection.cpp
diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
index 304db02e50bd7c07129bbbf9370a2512742f44c5..d060d53436bb7e377714a15fdcd3e813a277813f 100644
--- a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
+++ b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
@@ -75,7 +75,6 @@
#include "modules/peerconnection/RTCVoidRequestPromiseImpl.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/peerconnection/RTCAnswerOptionsPlatform.h"
-#include "platform/peerconnection/RTCConfiguration.h"
#include "platform/peerconnection/RTCOfferOptionsPlatform.h"
#include "public/platform/Platform.h"
#include "public/platform/WebCryptoAlgorithmParams.h"
@@ -218,23 +217,24 @@ class WebRTCCertificateObserver : public WebRTCCertificateCallback {
Persistent<ScriptPromiseResolver> m_resolver;
};
-RTCConfiguration* parseConfiguration(const Dictionary& configuration,
- ExceptionState& exceptionState,
- RtcpMuxPolicy* selectedRtcpMuxPolicy) {
+WebRTCConfiguration parseConfiguration(const Dictionary& configuration,
+ ExceptionState& exceptionState,
+ RtcpMuxPolicy* selectedRtcpMuxPolicy) {
+ WebRTCConfiguration rtcConfiguration;
if (configuration.isUndefinedOrNull())
- return 0;
+ return WebRTCConfiguration();
- RTCIceTransports iceTransports = RTCIceTransportsAll;
+ WebRTCIceTransports iceTransports = WebRTCIceTransports::kAll;
String iceTransportsString;
if (DictionaryHelper::get(configuration, "iceTransports",
iceTransportsString)) {
if (iceTransportsString == "none") {
- iceTransports = RTCIceTransportsNone;
+ iceTransports = WebRTCIceTransports::kNone;
} else if (iceTransportsString == "relay") {
- iceTransports = RTCIceTransportsRelay;
+ iceTransports = WebRTCIceTransports::kRelay;
} else if (iceTransportsString != "all") {
exceptionState.throwTypeError("Malformed RTCIceTransports");
- return 0;
+ return WebRTCConfiguration();
}
}
@@ -242,59 +242,58 @@ RTCConfiguration* parseConfiguration(const Dictionary& configuration,
bool ok = DictionaryHelper::get(configuration, "iceServers", iceServers);
if (!ok || iceServers.isUndefinedOrNull()) {
exceptionState.throwTypeError("Malformed RTCConfiguration");
- return 0;
+ return WebRTCConfiguration();
}
size_t numberOfServers;
ok = iceServers.length(numberOfServers);
if (!ok) {
exceptionState.throwTypeError("Malformed RTCConfiguration");
- return 0;
+ return WebRTCConfiguration();
}
- RTCBundlePolicy bundlePolicy = RTCBundlePolicyBalanced;
+ WebRTCBundlePolicy bundlePolicy = WebRTCBundlePolicy::kBalanced;
String bundlePolicyString;
if (DictionaryHelper::get(configuration, "bundlePolicy",
bundlePolicyString)) {
if (bundlePolicyString == "max-compat") {
- bundlePolicy = RTCBundlePolicyMaxCompat;
+ bundlePolicy = WebRTCBundlePolicy::kMaxCompat;
} else if (bundlePolicyString == "max-bundle") {
- bundlePolicy = RTCBundlePolicyMaxBundle;
+ bundlePolicy = WebRTCBundlePolicy::kMaxBundle;
} else if (bundlePolicyString != "balanced") {
exceptionState.throwTypeError("Malformed RTCBundlePolicy");
- return 0;
+ return WebRTCConfiguration();
}
}
// For the histogram value of "WebRTC.PeerConnection.SelectedRtcpMuxPolicy".
*selectedRtcpMuxPolicy = RtcpMuxPolicyDefault;
- RTCRtcpMuxPolicy rtcpMuxPolicy = RTCRtcpMuxPolicyNegotiate;
+ WebRTCRtcpMuxPolicy rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kNegotiate;
String rtcpMuxPolicyString;
if (DictionaryHelper::get(configuration, "rtcpMuxPolicy",
rtcpMuxPolicyString)) {
if (rtcpMuxPolicyString == "require") {
*selectedRtcpMuxPolicy = RtcpMuxPolicyRequire;
- rtcpMuxPolicy = RTCRtcpMuxPolicyRequire;
+ rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kRequire;
} else if (rtcpMuxPolicyString == "negotiate") {
*selectedRtcpMuxPolicy = RtcpMuxPolicyNegotiate;
- rtcpMuxPolicy = RTCRtcpMuxPolicyNegotiate;
+ rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kNegotiate;
} else {
exceptionState.throwTypeError("Malformed RTCRtcpMuxPolicy");
- return 0;
+ return WebRTCConfiguration();
}
}
- RTCConfiguration* rtcConfiguration = RTCConfiguration::create();
- rtcConfiguration->setIceTransports(iceTransports);
- rtcConfiguration->setBundlePolicy(bundlePolicy);
- rtcConfiguration->setRtcpMuxPolicy(rtcpMuxPolicy);
+ rtcConfiguration.iceTransports = iceTransports;
+ rtcConfiguration.bundlePolicy = bundlePolicy;
+ rtcConfiguration.rtcpMuxPolicy = rtcpMuxPolicy;
for (size_t i = 0; i < numberOfServers; ++i) {
Dictionary iceServer;
ok = iceServers.get(i, iceServer);
if (!ok) {
exceptionState.throwTypeError("Malformed RTCIceServer");
- return 0;
+ return WebRTCConfiguration();
}
Vector<String> names;
@@ -309,7 +308,7 @@ RTCConfiguration* parseConfiguration(const Dictionary& configuration,
urlStrings.append(urlString);
} else {
exceptionState.throwTypeError("Malformed RTCIceServer");
- return 0;
+ return WebRTCConfiguration();
}
}
} else if (names.contains("url")) {
@@ -318,17 +317,18 @@ RTCConfiguration* parseConfiguration(const Dictionary& configuration,
urlStrings.append(urlString);
} else {
exceptionState.throwTypeError("Malformed RTCIceServer");
- return 0;
+ return WebRTCConfiguration();
}
} else {
exceptionState.throwTypeError("Malformed RTCIceServer");
- return 0;
+ return WebRTCConfiguration();
}
String username, credential;
DictionaryHelper::get(iceServer, "username", username);
DictionaryHelper::get(iceServer, "credential", credential);
+ Vector<WebRTCIceServer> iceServers;
for (Vector<String>::iterator iter = urlStrings.begin();
iter != urlStrings.end(); ++iter) {
KURL url(KURL(), *iter);
@@ -336,12 +336,11 @@ RTCConfiguration* parseConfiguration(const Dictionary& configuration,
!(url.protocolIs("turn") || url.protocolIs("turns") ||
url.protocolIs("stun"))) {
exceptionState.throwTypeError("Malformed URL");
- return 0;
+ return WebRTCConfiguration();
}
-
- rtcConfiguration->appendServer(
- RTCIceServer::create(url, username, credential));
+ iceServers.append(WebRTCIceServer{url, username, credential});
}
+ rtcConfiguration.iceServers = iceServers;
}
ArrayValue certificates;
@@ -349,6 +348,8 @@ RTCConfiguration* parseConfiguration(const Dictionary& configuration,
!certificates.isUndefinedOrNull()) {
size_t numberOfCertificates;
certificates.length(numberOfCertificates);
+ WebVector<std::unique_ptr<WebRTCCertificate>> certificatesCopy(
+ numberOfCertificates);
for (size_t i = 0; i < numberOfCertificates; ++i) {
RTCCertificate* certificate = nullptr;
@@ -361,12 +362,12 @@ RTCConfiguration* parseConfiguration(const Dictionary& configuration,
}
if (!certificate) {
exceptionState.throwTypeError("Malformed sequence<RTCCertificate>");
- return 0;
+ return WebRTCConfiguration();
}
- rtcConfiguration->appendCertificate(
- certificate->certificateShallowCopy());
+ certificatesCopy[i] = certificate->certificateShallowCopy();
}
+ rtcConfiguration.certificates = std::move(certificatesCopy);
}
return rtcConfiguration;
}
@@ -465,17 +466,20 @@ RTCPeerConnection* RTCPeerConnection::create(ExecutionContext* context,
// Record the RtcpMuxPolicy for histogram
// "WebRTC.PeerConnection.SelectedRtcpMuxPolicy".
RtcpMuxPolicy selectedRtcpMuxPolicy = RtcpMuxPolicyDefault;
- RTCConfiguration* configuration = parseConfiguration(
+ WebRTCConfiguration configuration = parseConfiguration(
rtcConfiguration, exceptionState, &selectedRtcpMuxPolicy);
if (exceptionState.hadException())
return 0;
// Make sure no certificates have expired.
- if (configuration && configuration->numberOfCertificates() > 0) {
+ if (configuration.certificates.size() > 0) {
DOMTimeStamp now = convertSecondsToDOMTimeStamp(currentTime());
- for (size_t i = 0; i < configuration->numberOfCertificates(); ++i) {
- DOMTimeStamp expires = configuration->certificate(i)->expires();
+ for (const std::unique_ptr<WebRTCCertificate>& certificate :
+ configuration.certificates) {
+ DOMTimeStamp expires = certificate->expires();
if (expires <= now) {
+ // TODO(hbos): Per https://w3c.github.io/webrtc-pc/#operation this
+ // should throw InvalidAccessError, not InvalidStateError.
exceptionState.throwDOMException(InvalidStateError,
"Expired certificate(s).");
return 0;
@@ -504,7 +508,7 @@ RTCPeerConnection* RTCPeerConnection::create(ExecutionContext* context,
}
RTCPeerConnection::RTCPeerConnection(ExecutionContext* context,
- RTCConfiguration* configuration,
+ const WebRTCConfiguration& configuration,
WebMediaConstraints constraints,
ExceptionState& exceptionState)
: ActiveScriptWrappable(this),
@@ -828,7 +832,7 @@ void RTCPeerConnection::updateIce(const Dictionary& rtcConfiguration,
return;
RtcpMuxPolicy selectedRtcpMuxPolicy = RtcpMuxPolicyDefault;
- RTCConfiguration* configuration = parseConfiguration(
+ WebRTCConfiguration configuration = parseConfiguration(
rtcConfiguration, exceptionState, &selectedRtcpMuxPolicy);
if (exceptionState.hadException())
« no previous file with comments | « third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h ('k') | third_party/WebKit/Source/platform/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698