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 28 matching lines...) Expand all Loading... |
39 #include "bindings/core/v8/ScriptState.h" | 39 #include "bindings/core/v8/ScriptState.h" |
40 #include "bindings/core/v8/ScriptValue.h" | 40 #include "bindings/core/v8/ScriptValue.h" |
41 #include "bindings/core/v8/V8ThrowException.h" | 41 #include "bindings/core/v8/V8ThrowException.h" |
42 #include "bindings/modules/v8/RTCIceCandidateInitOrRTCIceCandidate.h" | 42 #include "bindings/modules/v8/RTCIceCandidateInitOrRTCIceCandidate.h" |
43 #include "bindings/modules/v8/V8RTCCertificate.h" | 43 #include "bindings/modules/v8/V8RTCCertificate.h" |
44 #include "core/dom/DOMException.h" | 44 #include "core/dom/DOMException.h" |
45 #include "core/dom/DOMTimeStamp.h" | 45 #include "core/dom/DOMTimeStamp.h" |
46 #include "core/dom/Document.h" | 46 #include "core/dom/Document.h" |
47 #include "core/dom/ExceptionCode.h" | 47 #include "core/dom/ExceptionCode.h" |
48 #include "core/dom/ExecutionContext.h" | 48 #include "core/dom/ExecutionContext.h" |
| 49 #include "core/frame/HostsUsingFeatures.h" |
49 #include "core/frame/LocalFrame.h" | 50 #include "core/frame/LocalFrame.h" |
50 #include "core/frame/UseCounter.h" | 51 #include "core/frame/UseCounter.h" |
51 #include "core/html/VoidCallback.h" | 52 #include "core/html/VoidCallback.h" |
52 #include "core/loader/FrameLoader.h" | 53 #include "core/loader/FrameLoader.h" |
53 #include "core/loader/FrameLoaderClient.h" | 54 #include "core/loader/FrameLoaderClient.h" |
54 #include "modules/crypto/CryptoResultImpl.h" | 55 #include "modules/crypto/CryptoResultImpl.h" |
55 #include "modules/mediastream/MediaConstraintsImpl.h" | 56 #include "modules/mediastream/MediaConstraintsImpl.h" |
56 #include "modules/mediastream/MediaStreamEvent.h" | 57 #include "modules/mediastream/MediaStreamEvent.h" |
57 #include "modules/mediastream/RTCAnswerOptions.h" | 58 #include "modules/mediastream/RTCAnswerOptions.h" |
58 #include "modules/mediastream/RTCDTMFSender.h" | 59 #include "modules/mediastream/RTCDTMFSender.h" |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 return true; | 389 return true; |
389 } | 390 } |
390 | 391 |
391 DEFINE_TRACE(RTCPeerConnection::EventWrapper) | 392 DEFINE_TRACE(RTCPeerConnection::EventWrapper) |
392 { | 393 { |
393 visitor->trace(m_event); | 394 visitor->trace(m_event); |
394 } | 395 } |
395 | 396 |
396 RTCPeerConnection* RTCPeerConnection::create(ExecutionContext* context, const Di
ctionary& rtcConfiguration, const Dictionary& mediaConstraints, ExceptionState&
exceptionState) | 397 RTCPeerConnection* RTCPeerConnection::create(ExecutionContext* context, const Di
ctionary& rtcConfiguration, const Dictionary& mediaConstraints, ExceptionState&
exceptionState) |
397 { | 398 { |
| 399 Document* document = toDocument(context); |
| 400 HostsUsingFeatures::countAnyWorld(*document, HostsUsingFeatures::Feature::RT
CPeerConnectionCreated); |
| 401 |
398 if (mediaConstraints.isObject()) | 402 if (mediaConstraints.isObject()) |
399 UseCounter::count(context, UseCounter::RTCPeerConnectionConstructorConst
raints); | 403 UseCounter::count(context, UseCounter::RTCPeerConnectionConstructorConst
raints); |
400 else | 404 else |
401 UseCounter::count(context, UseCounter::RTCPeerConnectionConstructorCompl
iant); | 405 UseCounter::count(context, UseCounter::RTCPeerConnectionConstructorCompl
iant); |
402 | 406 |
403 // Record the RtcpMuxPolicy for histogram "WebRTC.PeerConnection.SelectedRtc
pMuxPolicy". | 407 // Record the RtcpMuxPolicy for histogram "WebRTC.PeerConnection.SelectedRtc
pMuxPolicy". |
404 RtcpMuxPolicy selectedRtcpMuxPolicy = RtcpMuxPolicyDefault; | 408 RtcpMuxPolicy selectedRtcpMuxPolicy = RtcpMuxPolicyDefault; |
405 RTCConfiguration* configuration = parseConfiguration(rtcConfiguration, excep
tionState, &selectedRtcpMuxPolicy); | 409 RTCConfiguration* configuration = parseConfiguration(rtcConfiguration, excep
tionState, &selectedRtcpMuxPolicy); |
406 if (exceptionState.hadException()) | 410 if (exceptionState.hadException()) |
407 return 0; | 411 return 0; |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1150 | 1154 |
1151 m_dispatchScheduledEventRunner->stop(); | 1155 m_dispatchScheduledEventRunner->stop(); |
1152 | 1156 |
1153 m_peerHandler.reset(); | 1157 m_peerHandler.reset(); |
1154 } | 1158 } |
1155 | 1159 |
1156 void RTCPeerConnection::changeSignalingState(SignalingState signalingState) | 1160 void RTCPeerConnection::changeSignalingState(SignalingState signalingState) |
1157 { | 1161 { |
1158 if (m_signalingState != SignalingStateClosed && m_signalingState != signalin
gState) { | 1162 if (m_signalingState != SignalingStateClosed && m_signalingState != signalin
gState) { |
1159 m_signalingState = signalingState; | 1163 m_signalingState = signalingState; |
| 1164 if (m_signalingState == SignalingStateStable) { |
| 1165 Document* document = toDocument(getExecutionContext()); |
| 1166 HostsUsingFeatures::countAnyWorld(*document, HostsUsingFeatures::Fea
ture::RTCPeerConnectionStable); |
| 1167 } |
1160 scheduleDispatchEvent(Event::create(EventTypeNames::signalingstatechange
)); | 1168 scheduleDispatchEvent(Event::create(EventTypeNames::signalingstatechange
)); |
1161 } | 1169 } |
1162 } | 1170 } |
1163 | 1171 |
1164 void RTCPeerConnection::changeIceGatheringState(ICEGatheringState iceGatheringSt
ate) | 1172 void RTCPeerConnection::changeIceGatheringState(ICEGatheringState iceGatheringSt
ate) |
1165 { | 1173 { |
1166 m_iceGatheringState = iceGatheringState; | 1174 m_iceGatheringState = iceGatheringState; |
1167 } | 1175 } |
1168 | 1176 |
1169 bool RTCPeerConnection::setIceConnectionState(ICEConnectionState iceConnectionSt
ate) | 1177 bool RTCPeerConnection::setIceConnectionState(ICEConnectionState iceConnectionSt
ate) |
1170 { | 1178 { |
1171 if (m_iceConnectionState != ICEConnectionStateClosed && m_iceConnectionState
!= iceConnectionState) { | 1179 if (m_iceConnectionState != ICEConnectionStateClosed && m_iceConnectionState
!= iceConnectionState) { |
1172 m_iceConnectionState = iceConnectionState; | 1180 m_iceConnectionState = iceConnectionState; |
| 1181 if (m_iceConnectionState == ICEConnectionStateConnected) { |
| 1182 Document* document = toDocument(getExecutionContext()); |
| 1183 HostsUsingFeatures::countAnyWorld(*document, HostsUsingFeatures::Fea
ture::RTCPeerConnectionConnected); |
| 1184 } |
1173 return true; | 1185 return true; |
1174 } | 1186 } |
1175 return false; | 1187 return false; |
1176 } | 1188 } |
1177 | 1189 |
1178 void RTCPeerConnection::changeIceConnectionState(ICEConnectionState iceConnectio
nState) | 1190 void RTCPeerConnection::changeIceConnectionState(ICEConnectionState iceConnectio
nState) |
1179 { | 1191 { |
1180 if (m_iceConnectionState != ICEConnectionStateClosed) { | 1192 if (m_iceConnectionState != ICEConnectionStateClosed) { |
1181 scheduleDispatchEvent(Event::create(EventTypeNames::iceconnectionstatech
ange), | 1193 scheduleDispatchEvent(Event::create(EventTypeNames::iceconnectionstatech
ange), |
1182 WTF::bind(&RTCPeerConnection::setIceConnectionState, wrapPersistent(
this), iceConnectionState)); | 1194 WTF::bind(&RTCPeerConnection::setIceConnectionState, wrapPersistent(
this), iceConnectionState)); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1229 { | 1241 { |
1230 visitor->trace(m_localStreams); | 1242 visitor->trace(m_localStreams); |
1231 visitor->trace(m_remoteStreams); | 1243 visitor->trace(m_remoteStreams); |
1232 visitor->trace(m_dispatchScheduledEventRunner); | 1244 visitor->trace(m_dispatchScheduledEventRunner); |
1233 visitor->trace(m_scheduledEvents); | 1245 visitor->trace(m_scheduledEvents); |
1234 EventTargetWithInlineData::trace(visitor); | 1246 EventTargetWithInlineData::trace(visitor); |
1235 ActiveDOMObject::trace(visitor); | 1247 ActiveDOMObject::trace(visitor); |
1236 } | 1248 } |
1237 | 1249 |
1238 } // namespace blink | 1250 } // namespace blink |
OLD | NEW |