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

Unified Diff: content/renderer/media/rtc_peer_connection_handler.cc

Issue 2706563003: Create the API that returns the RTCConfiguration of the PeerConnection.
Patch Set: rebaselining Created 3 years, 9 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: content/renderer/media/rtc_peer_connection_handler.cc
diff --git a/content/renderer/media/rtc_peer_connection_handler.cc b/content/renderer/media/rtc_peer_connection_handler.cc
index 3240a7a2fbe2e9e97bb3f0bade3ce22d159fb618..df62f31660c3288bc5338af396a7d3bc050354c9 100644
--- a/content/renderer/media/rtc_peer_connection_handler.cc
+++ b/content/renderer/media/rtc_peer_connection_handler.cc
@@ -243,7 +243,9 @@ void GetNativeRtcConfiguration(
webrtc::PeerConnectionInterface::IceServer server;
server.username = blink_server.username.utf8();
server.password = blink_server.credential.utf8();
- server.uri = blink_server.url.string().utf8();
+ for (const blink::WebURL& url : blink_server.urls) {
+ server.urls.push_back(url.string().utf8());
+ }
webrtc_config->servers.push_back(server);
}
@@ -257,8 +259,6 @@ void GetNativeRtcConfiguration(
case blink::WebRTCIceTransportPolicy::kAll:
webrtc_config->type = webrtc::PeerConnectionInterface::kAll;
break;
- default:
- NOTREACHED();
}
switch (blink_config.bundlePolicy) {
@@ -274,8 +274,6 @@ void GetNativeRtcConfiguration(
webrtc_config->bundle_policy =
webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat;
break;
- default:
- NOTREACHED();
}
switch (blink_config.rtcpMuxPolicy) {
@@ -287,8 +285,6 @@ void GetNativeRtcConfiguration(
webrtc_config->rtcp_mux_policy =
webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire;
break;
- default:
- NOTREACHED();
}
webrtc_config->certificates.clear();
@@ -302,6 +298,70 @@ void GetNativeRtcConfiguration(
webrtc_config->ice_candidate_pool_size = blink_config.iceCandidatePoolSize;
}
+blink::WebRTCConfiguration ToBlinkRtcConfiguration(
+ const webrtc::PeerConnectionInterface::RTCConfiguration& webrtc_config) {
+ blink::WebRTCConfiguration blink_config;
+ blink::WebVector<blink::WebRTCIceServer> iceServers(
+ webrtc_config.servers.size());
+ for (size_t i = 0; i < webrtc_config.servers.size(); ++i) {
+ const webrtc::PeerConnectionInterface::IceServer& ice_server =
+ webrtc_config.servers[i];
+ blink::WebRTCIceServer blink_server;
+ blink::WebVector<blink::WebURL> blink_urls(ice_server.urls.size());
+ for (size_t j = 0; j < ice_server.urls.size(); ++j)
+ blink_urls[j] = GURL(ice_server.urls[j]);
+ blink_server.urls = std::move(blink_urls);
+ blink_server.username = blink::WebString::fromUTF8(ice_server.username);
+ blink_server.credential = blink::WebString::fromUTF8(ice_server.password);
+ iceServers[i] = blink_server;
+ }
+ blink_config.iceServers = std::move(iceServers);
+
+ switch (webrtc_config.type) {
+ case webrtc::PeerConnectionInterface::kNone:
+ blink_config.iceTransportPolicy = blink::WebRTCIceTransportPolicy::kNone;
+ break;
+ case webrtc::PeerConnectionInterface::kRelay:
+ blink_config.iceTransportPolicy = blink::WebRTCIceTransportPolicy::kRelay;
+ break;
+ case webrtc::PeerConnectionInterface::kAll:
+ blink_config.iceTransportPolicy = blink::WebRTCIceTransportPolicy::kAll;
+ break;
+ case webrtc::PeerConnectionInterface::kNoHost:
+ NOTREACHED();
+ }
+
+ switch (webrtc_config.bundle_policy) {
+ case webrtc::PeerConnectionInterface::kBundlePolicyBalanced:
+ blink_config.bundlePolicy = blink::WebRTCBundlePolicy::kBalanced;
+ break;
+ case webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle:
+ blink_config.bundlePolicy = blink::WebRTCBundlePolicy::kMaxBundle;
+ break;
+ case webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat:
+ blink_config.bundlePolicy = blink::WebRTCBundlePolicy::kMaxCompat;
+ break;
+ }
+
+ switch (webrtc_config.rtcp_mux_policy) {
+ case webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate:
+ blink_config.rtcpMuxPolicy = blink::WebRTCRtcpMuxPolicy::kNegotiate;
+ break;
+ case webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire:
+ blink_config.rtcpMuxPolicy = blink::WebRTCRtcpMuxPolicy::kRequire;
+ break;
+ }
+
+ blink::WebVector<std::unique_ptr<blink::WebRTCCertificate>> certificates(
+ webrtc_config.certificates.size());
+ for (size_t i = 0; i < webrtc_config.certificates.size(); ++i) {
+ certificates[i] =
+ base::MakeUnique<RTCCertificate>(webrtc_config.certificates[i]);
+ }
+ blink_config.certificates = std::move(certificates);
+ return blink_config;
+}
+
void CopyConstraintsIntoRtcConfiguration(
const blink::WebMediaConstraints constraints,
webrtc::PeerConnectionInterface::RTCConfiguration* configuration) {
@@ -1457,6 +1517,13 @@ blink::WebRTCErrorType RTCPeerConnectionHandler::setConfiguration(
return blink_error.type();
}
+blink::WebRTCConfiguration RTCPeerConnectionHandler::getConfiguration() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ webrtc::PeerConnectionInterface::RTCConfiguration webrtc_config =
+ native_peer_connection_->GetConfiguration();
+ return ToBlinkRtcConfiguration(webrtc_config);
+}
+
bool RTCPeerConnectionHandler::addICECandidate(
const blink::WebRTCVoidRequest& request,
const blink::WebRTCICECandidate& candidate) {

Powered by Google App Engine
This is Rietveld 408576698