| Index: Source/modules/mediastream/RTCPeerConnection.cpp
|
| diff --git a/Source/modules/mediastream/RTCPeerConnection.cpp b/Source/modules/mediastream/RTCPeerConnection.cpp
|
| index 5199f337a837dbf41e2c002c1f821da7c5f7d400..51a5d99241a3b761e296aeab803183121f94da90 100644
|
| --- a/Source/modules/mediastream/RTCPeerConnection.cpp
|
| +++ b/Source/modules/mediastream/RTCPeerConnection.cpp
|
| @@ -241,8 +241,6 @@
|
|
|
| RTCPeerConnection::RTCPeerConnection(ExecutionContext* context, RTCConfiguration* configuration, WebMediaConstraints constraints, ExceptionState& exceptionState)
|
| : ActiveDOMObject(context)
|
| - , m_pendingLocalDescription(nullptr)
|
| - , m_pendingRemoteDescription(nullptr)
|
| , m_signalingState(SignalingStateStable)
|
| , m_iceGatheringState(ICEGatheringStateNew)
|
| , m_iceConnectionState(ICEConnectionStateNew)
|
| @@ -277,8 +275,6 @@
|
| exceptionState.throwDOMException(NotSupportedError, "Failed to initialize native PeerConnection.");
|
| return;
|
| }
|
| - m_localDescription = RTCSessionDescription::create(m_peerHandler->localDescription());
|
| - m_remoteDescription = RTCSessionDescription::create(m_peerHandler->remoteDescription());
|
| }
|
|
|
| RTCPeerConnection::~RTCPeerConnection()
|
| @@ -337,25 +333,17 @@
|
| return;
|
| }
|
|
|
| - RTCVoidRequest* request = RTCVoidRequestImpl::create(executionContext(), this, successCallback, errorCallback, RTCVoidRequestImpl::RequestTypeLocal);
|
| + RTCVoidRequest* request = RTCVoidRequestImpl::create(executionContext(), this, successCallback, errorCallback);
|
| m_peerHandler->setLocalDescription(request, sessionDescription->webSessionDescription());
|
| - m_pendingLocalDescription = sessionDescription;
|
| -}
|
| -
|
| -RTCSessionDescription* RTCPeerConnection::localDescription()
|
| -{
|
| - if (!m_peerHandler)
|
| - return nullptr;
|
| +}
|
| +
|
| +RTCSessionDescription* RTCPeerConnection::localDescription(ExceptionState& exceptionState)
|
| +{
|
| WebRTCSessionDescription webSessionDescription = m_peerHandler->localDescription();
|
| if (webSessionDescription.isNull())
|
| return nullptr;
|
|
|
| - if (!m_localDescription || m_localDescription->webSessionDescription().isNull()
|
| - || m_localDescription->webSessionDescription() != webSessionDescription) {
|
| - m_localDescription = RTCSessionDescription::create(webSessionDescription);
|
| - }
|
| -
|
| - return m_localDescription;
|
| + return RTCSessionDescription::create(webSessionDescription);
|
| }
|
|
|
| void RTCPeerConnection::setRemoteDescription(RTCSessionDescription* sessionDescription, VoidCallback* successCallback, RTCErrorCallback* errorCallback, ExceptionState& exceptionState)
|
| @@ -368,25 +356,17 @@
|
| return;
|
| }
|
|
|
| - RTCVoidRequest* request = RTCVoidRequestImpl::create(executionContext(), this, successCallback, errorCallback, RTCVoidRequestImpl::RequestTypeRemote);
|
| + RTCVoidRequest* request = RTCVoidRequestImpl::create(executionContext(), this, successCallback, errorCallback);
|
| m_peerHandler->setRemoteDescription(request, sessionDescription->webSessionDescription());
|
| - m_pendingRemoteDescription = sessionDescription;
|
| -}
|
| -
|
| -RTCSessionDescription* RTCPeerConnection::remoteDescription()
|
| -{
|
| - if (!m_peerHandler)
|
| - return nullptr;
|
| +}
|
| +
|
| +RTCSessionDescription* RTCPeerConnection::remoteDescription(ExceptionState& exceptionState)
|
| +{
|
| WebRTCSessionDescription webSessionDescription = m_peerHandler->remoteDescription();
|
| if (webSessionDescription.isNull())
|
| return nullptr;
|
|
|
| - if (!m_remoteDescription || m_remoteDescription->webSessionDescription().isNull()
|
| - || m_remoteDescription->webSessionDescription() != webSessionDescription) {
|
| - m_remoteDescription = RTCSessionDescription::create(webSessionDescription);
|
| - }
|
| -
|
| - return m_remoteDescription;
|
| + return RTCSessionDescription::create(webSessionDescription);
|
| }
|
|
|
| void RTCPeerConnection::updateIce(const Dictionary& rtcConfiguration, const Dictionary& mediaConstraints, ExceptionState& exceptionState)
|
| @@ -434,7 +414,7 @@
|
| ASSERT(successCallback);
|
| ASSERT(errorCallback);
|
|
|
| - RTCVoidRequest* request = RTCVoidRequestImpl::create(executionContext(), this, successCallback, errorCallback, RTCVoidRequestImpl::RequestTypeNone);
|
| + RTCVoidRequest* request = RTCVoidRequestImpl::create(executionContext(), this, successCallback, errorCallback);
|
|
|
| bool implemented = m_peerHandler->addICECandidate(request, iceCandidate->webCandidate());
|
| if (!implemented) {
|
| @@ -647,15 +627,6 @@
|
| closeInternal();
|
| }
|
|
|
| -void RTCPeerConnection::requestSucceeded(RTCVoidRequestImpl::RequestType requestType)
|
| -{
|
| - if (requestType == RTCVoidRequestImpl::RequestTypeLocal) {
|
| - commitPendingLocalSessionDescription();
|
| - } else if (requestType == RTCVoidRequestImpl::RequestTypeRemote) {
|
| - commitPendingRemoteSessionDescription();
|
| - }
|
| -}
|
| -
|
| void RTCPeerConnection::negotiationNeeded()
|
| {
|
| ASSERT(!m_closed);
|
| @@ -826,16 +797,6 @@
|
| changeSignalingState(SignalingStateClosed);
|
| }
|
|
|
| -void RTCPeerConnection::commitPendingLocalSessionDescription()
|
| -{
|
| - m_localDescription = m_pendingLocalDescription;
|
| -}
|
| -
|
| -void RTCPeerConnection::commitPendingRemoteSessionDescription()
|
| -{
|
| - m_remoteDescription = m_pendingRemoteDescription;
|
| -}
|
| -
|
| void RTCPeerConnection::scheduleDispatchEvent(PassRefPtrWillBeRawPtr<Event> event)
|
| {
|
| m_scheduledEvents.append(event);
|
| @@ -863,10 +824,6 @@
|
| visitor->trace(m_localStreams);
|
| visitor->trace(m_remoteStreams);
|
| visitor->trace(m_dataChannels);
|
| - visitor->trace(m_localDescription);
|
| - visitor->trace(m_remoteDescription);
|
| - visitor->trace(m_pendingLocalDescription);
|
| - visitor->trace(m_pendingRemoteDescription);
|
| #if ENABLE(OILPAN)
|
| visitor->trace(m_scheduledEvents);
|
| #endif
|
|
|