Chromium Code Reviews| Index: Source/modules/mediastream/RTCPeerConnection.cpp |
| diff --git a/Source/modules/mediastream/RTCPeerConnection.cpp b/Source/modules/mediastream/RTCPeerConnection.cpp |
| index 51a5d99241a3b761e296aeab803183121f94da90..bf4c52ca6f26eab85fddd3eb3c150b62a94b4c18 100644 |
| --- a/Source/modules/mediastream/RTCPeerConnection.cpp |
| +++ b/Source/modules/mediastream/RTCPeerConnection.cpp |
| @@ -275,6 +275,8 @@ RTCPeerConnection::RTCPeerConnection(ExecutionContext* context, RTCConfiguration |
| exceptionState.throwDOMException(NotSupportedError, "Failed to initialize native PeerConnection."); |
| return; |
| } |
| + m_localDescription = RTCSessionDescription::create(context, m_peerHandler->localDescription()); |
| + m_remoteDescription = RTCSessionDescription::create(context, m_peerHandler->remoteDescription()); |
| } |
| RTCPeerConnection::~RTCPeerConnection() |
| @@ -342,8 +344,8 @@ RTCSessionDescription* RTCPeerConnection::localDescription(ExceptionState& excep |
| WebRTCSessionDescription webSessionDescription = m_peerHandler->localDescription(); |
| if (webSessionDescription.isNull()) |
| return nullptr; |
| - |
| - return RTCSessionDescription::create(webSessionDescription); |
| + m_localDescription->setWebSessionDescription(webSessionDescription); |
|
Jens Widell
2015/04/28 10:59:22
I think the semantics might be somewhat incorrect
|
| + return m_localDescription; |
| } |
| void RTCPeerConnection::setRemoteDescription(RTCSessionDescription* sessionDescription, VoidCallback* successCallback, RTCErrorCallback* errorCallback, ExceptionState& exceptionState) |
| @@ -365,8 +367,9 @@ RTCSessionDescription* RTCPeerConnection::remoteDescription(ExceptionState& exce |
| WebRTCSessionDescription webSessionDescription = m_peerHandler->remoteDescription(); |
| if (webSessionDescription.isNull()) |
| return nullptr; |
| + m_remoteDescription->setWebSessionDescription(webSessionDescription); |
| - return RTCSessionDescription::create(webSessionDescription); |
| + return m_remoteDescription; |
| } |
| void RTCPeerConnection::updateIce(const Dictionary& rtcConfiguration, const Dictionary& mediaConstraints, ExceptionState& exceptionState) |
| @@ -762,6 +765,9 @@ void RTCPeerConnection::stop() |
| m_dispatchScheduledEventRunner.stop(); |
| + m_localDescription->stop(); |
| + m_remoteDescription->stop(); |
| + |
| m_peerHandler.clear(); |
| } |
| @@ -824,6 +830,8 @@ DEFINE_TRACE(RTCPeerConnection) |
| visitor->trace(m_localStreams); |
| visitor->trace(m_remoteStreams); |
| visitor->trace(m_dataChannels); |
| + visitor->trace(m_localDescription); |
| + visitor->trace(m_remoteDescription); |
| #if ENABLE(OILPAN) |
| visitor->trace(m_scheduledEvents); |
| #endif |