Index: Source/modules/mediastream/RTCPeerConnection.cpp |
diff --git a/Source/modules/mediastream/RTCPeerConnection.cpp b/Source/modules/mediastream/RTCPeerConnection.cpp |
index 8a5689db7282f8608f3bae817cf070b23823db42..e9686fb1665cae6b23d27e9296917f6d5a5d8bff 100644 |
--- a/Source/modules/mediastream/RTCPeerConnection.cpp |
+++ b/Source/modules/mediastream/RTCPeerConnection.cpp |
@@ -606,12 +606,7 @@ void RTCPeerConnection::close(ExceptionState& exceptionState) |
if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) |
return; |
- m_peerHandler->stop(); |
- m_closed = true; |
- |
- changeIceConnectionState(ICEConnectionStateClosed); |
- changeIceGatheringState(ICEGatheringStateComplete); |
- changeSignalingState(SignalingStateClosed); |
+ closeInternal(); |
} |
void RTCPeerConnection::negotiationNeeded() |
@@ -707,6 +702,12 @@ void RTCPeerConnection::releasePeerConnectionHandler() |
stop(); |
} |
+void RTCPeerConnection::closePeerConnection() |
+{ |
+ ASSERT(m_signalingState != RTCPeerConnection::SignalingStateClosed); |
+ closeInternal(); |
+} |
+ |
const AtomicString& RTCPeerConnection::interfaceName() const |
{ |
return EventTargetNames::RTCPeerConnection; |
@@ -767,6 +768,17 @@ void RTCPeerConnection::changeIceConnectionState(ICEConnectionState iceConnectio |
} |
} |
+void RTCPeerConnection::closeInternal() |
+{ |
+ ASSERT(m_signalingState != RTCPeerConnection::SignalingStateClosed); |
+ m_peerHandler->stop(); |
+ m_closed = true; |
+ |
+ changeIceConnectionState(ICEConnectionStateClosed); |
+ changeIceGatheringState(ICEGatheringStateComplete); |
+ changeSignalingState(SignalingStateClosed); |
+} |
+ |
void RTCPeerConnection::scheduleDispatchEvent(PassRefPtrWillBeRawPtr<Event> event) |
{ |
m_scheduledEvents.append(event); |