| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 211 |
| 212 void onSuccess(std::unique_ptr<WebRTCCertificate> certificate) override { | 212 void onSuccess(std::unique_ptr<WebRTCCertificate> certificate) override { |
| 213 m_resolver->resolve(new RTCCertificate(std::move(certificate))); | 213 m_resolver->resolve(new RTCCertificate(std::move(certificate))); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void onError() override { m_resolver->reject(); } | 216 void onError() override { m_resolver->reject(); } |
| 217 | 217 |
| 218 Persistent<ScriptPromiseResolver> m_resolver; | 218 Persistent<ScriptPromiseResolver> m_resolver; |
| 219 }; | 219 }; |
| 220 | 220 |
| 221 WebRTCIceTransportPolicy iceTransportPolicyFromString(const String& policy) { |
| 222 if (policy == "none") |
| 223 return WebRTCIceTransportPolicy::kNone; |
| 224 if (policy == "relay") |
| 225 return WebRTCIceTransportPolicy::kRelay; |
| 226 DCHECK_EQ(policy, "all"); |
| 227 return WebRTCIceTransportPolicy::kAll; |
| 228 } |
| 229 |
| 221 WebRTCConfiguration parseConfiguration(ExecutionContext* context, | 230 WebRTCConfiguration parseConfiguration(ExecutionContext* context, |
| 222 const RTCConfiguration& configuration, | 231 const RTCConfiguration& configuration, |
| 223 ExceptionState& exceptionState, | 232 ExceptionState& exceptionState, |
| 224 RtcpMuxPolicy* selectedRtcpMuxPolicy) { | 233 RtcpMuxPolicy* selectedRtcpMuxPolicy) { |
| 225 DCHECK(context); | 234 DCHECK(context); |
| 226 DCHECK(selectedRtcpMuxPolicy); | 235 DCHECK(selectedRtcpMuxPolicy); |
| 227 | 236 |
| 228 WebRTCIceTransports iceTransports = WebRTCIceTransports::kAll; | 237 WebRTCIceTransportPolicy iceTransportPolicy = WebRTCIceTransportPolicy::kAll; |
| 229 String iceTransportsString = configuration.iceTransports(); | 238 if (configuration.hasIceTransportPolicy()) { |
| 230 if (iceTransportsString == "none") { | 239 UseCounter::count(context, UseCounter::RTCConfigurationIceTransportPolicy); |
| 231 UseCounter::count(context, UseCounter::RTCConfigurationIceTransportsNone); | 240 iceTransportPolicy = |
| 232 iceTransports = WebRTCIceTransports::kNone; | 241 iceTransportPolicyFromString(configuration.iceTransportPolicy()); |
| 233 } else if (iceTransportsString == "relay") { | 242 if (iceTransportPolicy == WebRTCIceTransportPolicy::kNone) { |
| 234 iceTransports = WebRTCIceTransports::kRelay; | 243 UseCounter::count(context, |
| 235 } else { | 244 UseCounter::RTCConfigurationIceTransportPolicyNone); |
| 236 DCHECK_EQ(iceTransportsString, "all"); | 245 } |
| 246 } else if (configuration.hasIceTransports()) { |
| 247 UseCounter::count(context, UseCounter::RTCConfigurationIceTransports); |
| 248 iceTransportPolicy = |
| 249 iceTransportPolicyFromString(configuration.iceTransports()); |
| 250 if (iceTransportPolicy == WebRTCIceTransportPolicy::kNone) |
| 251 UseCounter::count(context, UseCounter::RTCConfigurationIceTransportsNone); |
| 237 } | 252 } |
| 238 | 253 |
| 239 WebRTCBundlePolicy bundlePolicy = WebRTCBundlePolicy::kBalanced; | 254 WebRTCBundlePolicy bundlePolicy = WebRTCBundlePolicy::kBalanced; |
| 240 String bundlePolicyString = configuration.bundlePolicy(); | 255 String bundlePolicyString = configuration.bundlePolicy(); |
| 241 if (bundlePolicyString == "max-compat") { | 256 if (bundlePolicyString == "max-compat") { |
| 242 bundlePolicy = WebRTCBundlePolicy::kMaxCompat; | 257 bundlePolicy = WebRTCBundlePolicy::kMaxCompat; |
| 243 } else if (bundlePolicyString == "max-bundle") { | 258 } else if (bundlePolicyString == "max-bundle") { |
| 244 bundlePolicy = WebRTCBundlePolicy::kMaxBundle; | 259 bundlePolicy = WebRTCBundlePolicy::kMaxBundle; |
| 245 } else { | 260 } else { |
| 246 DCHECK_EQ(bundlePolicyString, "balanced"); | 261 DCHECK_EQ(bundlePolicyString, "balanced"); |
| 247 } | 262 } |
| 248 | 263 |
| 249 // For the histogram value of "WebRTC.PeerConnection.SelectedRtcpMuxPolicy". | 264 // For the histogram value of "WebRTC.PeerConnection.SelectedRtcpMuxPolicy". |
| 250 *selectedRtcpMuxPolicy = RtcpMuxPolicyDefault; | 265 *selectedRtcpMuxPolicy = RtcpMuxPolicyDefault; |
| 251 WebRTCRtcpMuxPolicy rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kNegotiate; | 266 WebRTCRtcpMuxPolicy rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kNegotiate; |
| 252 if (configuration.hasRtcpMuxPolicy()) { | 267 if (configuration.hasRtcpMuxPolicy()) { |
| 253 String rtcpMuxPolicyString = configuration.rtcpMuxPolicy(); | 268 String rtcpMuxPolicyString = configuration.rtcpMuxPolicy(); |
| 254 if (rtcpMuxPolicyString == "require") { | 269 if (rtcpMuxPolicyString == "require") { |
| 255 *selectedRtcpMuxPolicy = RtcpMuxPolicyRequire; | 270 *selectedRtcpMuxPolicy = RtcpMuxPolicyRequire; |
| 256 rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kRequire; | 271 rtcpMuxPolicy = WebRTCRtcpMuxPolicy::kRequire; |
| 257 } else { | 272 } else { |
| 258 DCHECK_EQ(rtcpMuxPolicyString, "negotiate"); | 273 DCHECK_EQ(rtcpMuxPolicyString, "negotiate"); |
| 259 *selectedRtcpMuxPolicy = RtcpMuxPolicyNegotiate; | 274 *selectedRtcpMuxPolicy = RtcpMuxPolicyNegotiate; |
| 260 } | 275 } |
| 261 } | 276 } |
| 262 | 277 |
| 263 WebRTCConfiguration webConfiguration; | 278 WebRTCConfiguration webConfiguration; |
| 264 webConfiguration.iceTransports = iceTransports; | 279 webConfiguration.iceTransportPolicy = iceTransportPolicy; |
| 265 webConfiguration.bundlePolicy = bundlePolicy; | 280 webConfiguration.bundlePolicy = bundlePolicy; |
| 266 webConfiguration.rtcpMuxPolicy = rtcpMuxPolicy; | 281 webConfiguration.rtcpMuxPolicy = rtcpMuxPolicy; |
| 267 | 282 |
| 268 if (configuration.hasIceServers()) { | 283 if (configuration.hasIceServers()) { |
| 269 Vector<WebRTCIceServer> iceServers; | 284 Vector<WebRTCIceServer> iceServers; |
| 270 for (const RTCIceServer& iceServer : configuration.iceServers()) { | 285 for (const RTCIceServer& iceServer : configuration.iceServers()) { |
| 271 Vector<String> urlStrings; | 286 Vector<String> urlStrings; |
| 272 if (iceServer.hasURLs()) { | 287 if (iceServer.hasURLs()) { |
| 273 UseCounter::count(context, UseCounter::RTCIceServerURLs); | 288 UseCounter::count(context, UseCounter::RTCIceServerURLs); |
| 274 const StringOrStringSequence& urls = iceServer.urls(); | 289 const StringOrStringSequence& urls = iceServer.urls(); |
| (...skipping 1177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1452 DEFINE_TRACE(RTCPeerConnection) { | 1467 DEFINE_TRACE(RTCPeerConnection) { |
| 1453 visitor->trace(m_localStreams); | 1468 visitor->trace(m_localStreams); |
| 1454 visitor->trace(m_remoteStreams); | 1469 visitor->trace(m_remoteStreams); |
| 1455 visitor->trace(m_dispatchScheduledEventRunner); | 1470 visitor->trace(m_dispatchScheduledEventRunner); |
| 1456 visitor->trace(m_scheduledEvents); | 1471 visitor->trace(m_scheduledEvents); |
| 1457 EventTargetWithInlineData::trace(visitor); | 1472 EventTargetWithInlineData::trace(visitor); |
| 1458 ActiveDOMObject::trace(visitor); | 1473 ActiveDOMObject::trace(visitor); |
| 1459 } | 1474 } |
| 1460 | 1475 |
| 1461 } // namespace blink | 1476 } // namespace blink |
| OLD | NEW |