Changeset 127612 in webkit
- Timestamp:
- Sep 5, 2012 11:01:12 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 25 edited
- 7 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r127608 r127612 1 2012-09-05 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add the local and remote description functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=95839 5 6 Reviewed by Adam Barth. 7 8 * fast/mediastream/RTCPeerConnection-createOffer.html: 9 * fast/mediastream/RTCPeerConnection-localDescription-expected.txt: Added. 10 * fast/mediastream/RTCPeerConnection-localDescription.html: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html. 11 * fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt: Added. 12 * fast/mediastream/RTCPeerConnection-remoteDescription.html: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html. 13 1 14 2012-09-01 Dirk Schulze <krit@webkit.org> 2 15 -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html
r127501 r127612 20 20 } 21 21 22 function requestSucceeded2(sd , source)22 function requestSucceeded2(sd) 23 23 { 24 24 testFailed('requestSucceeded was called.'); … … 32 32 } 33 33 34 function requestSucceeded1(sd , source)34 function requestSucceeded1(sd) 35 35 { 36 36 testPassed('requestSucceeded was called.'); -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription.html
r127608 r127612 6 6 <body> 7 7 <script> 8 description("Tests RTCPeerConnection [add|remove]Stream.");8 description("Tests RTCPeerConnection localDescription."); 9 9 10 10 var pc = null; 11 11 12 function requestFailed2( reason)12 function requestFailed2() 13 13 { 14 14 testPassed('requestFailed was called.'); 15 15 16 errorReason = reason; 17 shouldBe('errorReason', '"TEST_ERROR"'); 18 16 shouldBe('pc.localDescription.sdp', '"sdp1"'); 19 17 finishJSTest(); 20 18 } 21 19 22 function requestSucceeded2( sd, source)20 function requestSucceeded2() 23 21 { 24 22 testFailed('requestSucceeded was called.'); … … 32 30 } 33 31 34 function requestSucceeded1( sd, source)32 function requestSucceeded1() 35 33 { 36 34 testPassed('requestSucceeded was called.'); 37 35 38 sessionDescription = sd; 39 shouldBe('sessionDescription.type', '"offer"'); 40 41 pc.createOffer(requestSucceeded2, requestFailed2, {mandatory:{"succeed":false}}); 36 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"sdp2"}); 37 shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded2, requestFailed2);'); 42 38 } 43 39 44 40 pc = new webkitRTCPeerConnection(null, null); 45 pc.createOffer(requestSucceeded1, requestFailed1, {mandatory:{"succeed":true}}); 41 var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"sdp1"}); 42 shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded1, requestFailed1);'); 43 46 44 47 45 window.jsTestIsAsync = true; -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription.html
r127608 r127612 6 6 <body> 7 7 <script> 8 description("Tests RTCPeerConnection [add|remove]Stream.");8 description("Tests RTCPeerConnection remoteDescription."); 9 9 10 10 var pc = null; 11 11 12 function requestFailed2( reason)12 function requestFailed2() 13 13 { 14 14 testPassed('requestFailed was called.'); 15 15 16 errorReason = reason; 17 shouldBe('errorReason', '"TEST_ERROR"'); 18 16 shouldBe('pc.remoteDescription.sdp', '"sdp1"'); 19 17 finishJSTest(); 20 18 } 21 19 22 function requestSucceeded2( sd, source)20 function requestSucceeded2() 23 21 { 24 22 testFailed('requestSucceeded was called.'); … … 32 30 } 33 31 34 function requestSucceeded1( sd, source)32 function requestSucceeded1() 35 33 { 36 34 testPassed('requestSucceeded was called.'); 37 35 38 sessionDescription = sd; 39 shouldBe('sessionDescription.type', '"offer"'); 40 41 pc.createOffer(requestSucceeded2, requestFailed2, {mandatory:{"succeed":false}}); 36 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"sdp2"}); 37 shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded2, requestFailed2);'); 42 38 } 43 39 44 40 pc = new webkitRTCPeerConnection(null, null); 45 pc.createOffer(requestSucceeded1, requestFailed1, {mandatory:{"succeed":true}}); 41 var sessionDescription = new RTCSessionDescription({type:"answer", sdp:"sdp1"}); 42 shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded1, requestFailed1);'); 43 46 44 47 45 window.jsTestIsAsync = true; -
trunk/Source/Platform/ChangeLog
r127605 r127612 1 2012-09-05 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add the local and remote description functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=95839 5 6 Reviewed by Adam Barth. 7 8 * Platform.gypi: 9 * chromium/public/WebRTCPeerConnectionHandler.h: 10 (WebKit): 11 (WebRTCPeerConnectionHandler): 12 * chromium/public/WebRTCVoidRequest.h: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h. 13 (WebCore): 14 (WebKit): 15 (WebRTCVoidRequest): 16 (ExtraData): 17 (WebKit::WebRTCVoidRequest::ExtraData::~ExtraData): 18 (WebKit::WebRTCVoidRequest::WebRTCVoidRequest): 19 (WebKit::WebRTCVoidRequest::~WebRTCVoidRequest): 20 (WebKit::WebRTCVoidRequest::operator=): 21 (WebKit::WebRTCVoidRequest::isNull): 22 1 23 2012-09-05 Sami Kyostila <skyostil@chromium.org> 2 24 -
trunk/Source/Platform/Platform.gypi
r127605 r127612 111 111 'chromium/public/WebRTCSessionDescriptionDescriptor.h', 112 112 'chromium/public/WebRTCSessionDescriptionRequest.h', 113 'chromium/public/WebRTCVoidRequest.h', 113 114 'chromium/public/WebRect.h', 114 115 'chromium/public/WebReferrerPolicy.h', -
trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h
r127501 r127612 40 40 class WebRTCSessionDescriptionDescriptor; 41 41 class WebRTCSessionDescriptionRequest; 42 class WebRTCVoidRequest; 42 43 43 44 class WebRTCPeerConnectionHandler { … … 48 49 49 50 virtual void createOffer(const WebRTCSessionDescriptionRequest&, const WebMediaConstraints&) = 0; 51 virtual void setLocalDescription(const WebRTCVoidRequest&, const WebRTCSessionDescriptionDescriptor&) = 0; 52 virtual void setRemoteDescription(const WebRTCVoidRequest&, const WebRTCSessionDescriptionDescriptor&) = 0; 53 virtual WebRTCSessionDescriptionDescriptor localDescription() = 0; 54 virtual WebRTCSessionDescriptionDescriptor remoteDescription() = 0; 50 55 virtual bool updateICE(const WebRTCConfiguration&, const WebMediaConstraints&) = 0; 51 56 virtual bool addICECandidate(const WebRTCICECandidateDescriptor&) = 0; -
trunk/Source/Platform/chromium/public/WebRTCVoidRequest.h
r127608 r127612 29 29 */ 30 30 31 #ifndef WebRTCPeerConnectionHandler_h 32 #define WebRTCPeerConnectionHandler_h 31 #ifndef WebRTCVoidRequest_h 32 #define WebRTCVoidRequest_h 33 34 #include "WebCommon.h" 35 #include "WebNonCopyable.h" 36 #include "WebPrivatePtr.h" 37 #include "WebString.h" 38 39 namespace WebCore { 40 class RTCVoidRequest; 41 } 33 42 34 43 namespace WebKit { 35 class WebMediaConstraints;36 class WebMediaStreamDescriptor;37 class WebRTCConfiguration;38 class WebRTCICECandidateDescriptor;39 class WebRTCPeerConnectionHandlerClient;40 class WebRTCSessionDescriptionDescriptor;41 class WebRTCSessionDescriptionRequest;42 44 43 class WebRTC PeerConnectionHandler{45 class WebRTCVoidRequest { 44 46 public: 45 virtual ~WebRTCPeerConnectionHandler() { } 47 class ExtraData { 48 public: 49 virtual ~ExtraData() { } 50 }; 46 51 47 virtual bool initialize(const WebRTCConfiguration&, const WebMediaConstraints&) = 0; 52 WebRTCVoidRequest() { } 53 WebRTCVoidRequest(const WebRTCVoidRequest& other) { assign(other); } 54 ~WebRTCVoidRequest() { reset(); } 48 55 49 virtual void createOffer(const WebRTCSessionDescriptionRequest&, const WebMediaConstraints&) = 0; 50 virtual bool updateICE(const WebRTCConfiguration&, const WebMediaConstraints&) = 0; 51 virtual bool addICECandidate(const WebRTCICECandidateDescriptor&) = 0; 52 virtual bool addStream(const WebMediaStreamDescriptor&, const WebMediaConstraints&) = 0; 53 virtual void removeStream(const WebMediaStreamDescriptor&) = 0; 54 virtual void stop() = 0; 56 WebRTCVoidRequest& operator=(const WebRTCVoidRequest& other) 57 { 58 assign(other); 59 return *this; 60 } 61 62 WEBKIT_EXPORT void assign(const WebRTCVoidRequest&); 63 64 WEBKIT_EXPORT void reset(); 65 bool isNull() const { return m_private.isNull(); } 66 67 WEBKIT_EXPORT void requestSucceeded() const; 68 WEBKIT_EXPORT void requestFailed(const WebString& error) const; 69 70 // Extra data associated with this object. 71 // If non-null, the extra data pointer will be deleted when the object is destroyed. 72 // Setting the extra data pointer will cause any existing non-null 73 // extra data pointer to be deleted. 74 WEBKIT_EXPORT ExtraData* extraData() const; 75 WEBKIT_EXPORT void setExtraData(ExtraData*); 76 77 #if WEBKIT_IMPLEMENTATION 78 WebRTCVoidRequest(const WTF::PassRefPtr<WebCore::RTCVoidRequest>&); 79 #endif 80 81 private: 82 WebPrivatePtr<WebCore::RTCVoidRequest> m_private; 55 83 }; 56 84 57 85 } // namespace WebKit 58 86 59 #endif // WebRTC PeerConnectionHandler_h87 #endif // WebRTCVoidRequest_h -
trunk/Source/WebCore/CMakeLists.txt
r127535 r127612 862 862 Modules/mediastream/RTCSessionDescription.cpp 863 863 Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp 864 Modules/mediastream/RTCVoidRequestImpl.cpp 864 865 Modules/mediastream/SessionDescription.cpp 865 866 Modules/mediastream/UserMediaController.cpp -
trunk/Source/WebCore/ChangeLog
r127608 r127612 1 2012-09-05 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add the local and remote description functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=95839 5 6 Reviewed by Adam Barth. 7 8 As well as adding the local/remote descriptions stuff, I removed the source attribute from 9 RTCSessionDescriptionCallback and RTCErrorCallback since it has been removed from the draft. 10 11 Tests: fast/mediastream/RTCPeerConnection-localDescription.html 12 fast/mediastream/RTCPeerConnection-remoteDescription.html 13 14 * CMakeLists.txt: 15 * GNUmakefile.list.am: 16 * Modules/mediastream/RTCErrorCallback.h: 17 (RTCErrorCallback): 18 * Modules/mediastream/RTCErrorCallback.idl: 19 * Modules/mediastream/RTCPeerConnection.cpp: 20 (WebCore::RTCPeerConnection::createOffer): 21 (WebCore::RTCPeerConnection::setLocalDescription): 22 (WebCore): 23 (WebCore::RTCPeerConnection::localDescription): 24 (WebCore::RTCPeerConnection::setRemoteDescription): 25 (WebCore::RTCPeerConnection::remoteDescription): 26 * Modules/mediastream/RTCPeerConnection.h: 27 (WebCore): 28 (RTCPeerConnection): 29 * Modules/mediastream/RTCPeerConnection.idl: 30 * Modules/mediastream/RTCSessionDescriptionCallback.h: 31 (RTCSessionDescriptionCallback): 32 * Modules/mediastream/RTCSessionDescriptionCallback.idl: 33 * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp: 34 (WebCore::RTCSessionDescriptionRequestImpl::create): 35 (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl): 36 (WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded): 37 (WebCore::RTCSessionDescriptionRequestImpl::requestFailed): 38 (WebCore::RTCSessionDescriptionRequestImpl::clear): 39 * Modules/mediastream/RTCSessionDescriptionRequestImpl.h: 40 (RTCSessionDescriptionRequestImpl): 41 * Modules/mediastream/RTCVoidRequestImpl.cpp: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp. 42 (WebCore): 43 (WebCore::RTCVoidRequestImpl::create): 44 (WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl): 45 (WebCore::RTCVoidRequestImpl::~RTCVoidRequestImpl): 46 (WebCore::RTCVoidRequestImpl::requestSucceeded): 47 (WebCore::RTCVoidRequestImpl::requestFailed): 48 (WebCore::RTCVoidRequestImpl::stop): 49 (WebCore::RTCVoidRequestImpl::clear): 50 * Modules/mediastream/RTCVoidRequestImpl.h: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.h. 51 (WebCore): 52 (RTCVoidRequestImpl): 53 * WebCore.gypi: 54 * platform/chromium/support/WebRTCVoidRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h. 55 (WebKit): 56 (WebKit::WebRTCVoidRequest::WebRTCVoidRequest): 57 (WebKit::WebRTCVoidRequest::assign): 58 (WebKit::WebRTCVoidRequest::reset): 59 (WebKit::WebRTCVoidRequest::requestSucceeded): 60 (WebKit::WebRTCVoidRequest::requestFailed): 61 (ExtraDataContainer): 62 (WebKit::ExtraDataContainer::ExtraDataContainer): 63 (WebKit::ExtraDataContainer::extraData): 64 (WebKit::WebRTCVoidRequest::extraData): 65 (WebKit::WebRTCVoidRequest::setExtraData): 66 * platform/mediastream/RTCPeerConnectionHandler.cpp: 67 (RTCPeerConnectionHandlerDummy): 68 (WebCore::RTCPeerConnectionHandlerDummy::setLocalDescription): 69 (WebCore): 70 (WebCore::RTCPeerConnectionHandlerDummy::setRemoteDescription): 71 (WebCore::RTCPeerConnectionHandlerDummy::localDescription): 72 (WebCore::RTCPeerConnectionHandlerDummy::remoteDescription): 73 * platform/mediastream/RTCPeerConnectionHandler.h: 74 (WebCore): 75 (RTCPeerConnectionHandler): 76 * platform/mediastream/RTCVoidRequest.h: Copied from Source/WebCore/Modules/mediastream/RTCErrorCallback.h. 77 (WebCore): 78 (RTCVoidRequest): 79 (ExtraData): 80 (WebCore::RTCVoidRequest::ExtraData::~ExtraData): 81 (WebCore::RTCVoidRequest::~RTCVoidRequest): 82 (WebCore::RTCVoidRequest::extraData): 83 (WebCore::RTCVoidRequest::setExtraData): 84 (WebCore::RTCVoidRequest::RTCVoidRequest): 85 * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: 86 (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription): 87 (WebCore): 88 (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription): 89 (WebCore::RTCPeerConnectionHandlerChromium::localDescription): 90 (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription): 91 * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: 92 (RTCPeerConnectionHandlerChromium): 93 1 94 2012-09-01 Dirk Schulze <krit@webkit.org> 2 95 -
trunk/Source/WebCore/GNUmakefile.list.am
r127535 r127612 1937 1937 Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp \ 1938 1938 Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h \ 1939 Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp \ 1940 Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h \ 1939 1941 Source/WebCore/Modules/mediastream/SessionDescription.cpp \ 1940 1942 Source/WebCore/Modules/mediastream/SessionDescription.h \ … … 4566 4568 Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.cpp \ 4567 4569 Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h \ 4570 Source/WebCore/platform/mediastream/RTCVoidRequest.h \ 4568 4571 Source/WebCore/platform/mediastream/SessionDescriptionDescriptor.cpp \ 4569 4572 Source/WebCore/platform/mediastream/SessionDescriptionDescriptor.h \ -
trunk/Source/WebCore/Modules/mediastream/RTCErrorCallback.h
r127501 r127612 39 39 namespace WebCore { 40 40 41 class RTCPeerConnection;42 43 41 class RTCErrorCallback : public RefCounted<RTCErrorCallback> { 44 42 public: 45 43 virtual ~RTCErrorCallback() { } 46 virtual bool handleEvent(const String& errorInformation , RTCPeerConnection*) = 0;44 virtual bool handleEvent(const String& errorInformation) = 0; 47 45 }; 48 46 -
trunk/Source/WebCore/Modules/mediastream/RTCErrorCallback.idl
r127501 r127612 35 35 Callback 36 36 ] RTCErrorCallback { 37 boolean handleEvent(in DOMString errorInformation , in RTCPeerConnection source);37 boolean handleEvent(in DOMString errorInformation); 38 38 }; 39 39 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
r127501 r127612 49 49 #include "RTCSessionDescriptionDescriptor.h" 50 50 #include "RTCSessionDescriptionRequestImpl.h" 51 #include "RTCVoidRequestImpl.h" 51 52 #include "ScriptExecutionContext.h" 53 #include "VoidCallback.h" 52 54 53 55 namespace WebCore { … … 152 154 return; 153 155 154 RefPtr<RTCSessionDescriptionRequestImpl> request = RTCSessionDescriptionRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback , this);156 RefPtr<RTCSessionDescriptionRequestImpl> request = RTCSessionDescriptionRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback); 155 157 m_peerHandler->createOffer(request.release(), constraints); 158 } 159 160 void RTCPeerConnection::setLocalDescription(PassRefPtr<RTCSessionDescription> prpSessionDescription, PassRefPtr<VoidCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback, ExceptionCode& ec) 161 { 162 if (m_readyState == ReadyStateClosing || m_readyState == ReadyStateClosed) { 163 ec = INVALID_STATE_ERR; 164 return; 165 } 166 167 RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription; 168 if (!sessionDescription) { 169 ec = TYPE_MISMATCH_ERR; 170 return; 171 } 172 173 RefPtr<RTCVoidRequestImpl> request = RTCVoidRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback); 174 m_peerHandler->setLocalDescription(request.release(), sessionDescription->descriptor()); 175 } 176 177 PassRefPtr<RTCSessionDescription> RTCPeerConnection::localDescription(ExceptionCode& ec) 178 { 179 if (m_readyState == ReadyStateClosing || m_readyState == ReadyStateClosed) { 180 ec = INVALID_STATE_ERR; 181 return 0; 182 } 183 184 RefPtr<RTCSessionDescriptionDescriptor> descriptor = m_peerHandler->localDescription(); 185 if (!descriptor) 186 return 0; 187 188 RefPtr<RTCSessionDescription> desc = RTCSessionDescription::create(descriptor.release()); 189 return desc.release(); 190 } 191 192 void RTCPeerConnection::setRemoteDescription(PassRefPtr<RTCSessionDescription> prpSessionDescription, PassRefPtr<VoidCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback, ExceptionCode& ec) 193 { 194 if (m_readyState == ReadyStateClosing || m_readyState == ReadyStateClosed) { 195 ec = INVALID_STATE_ERR; 196 return; 197 } 198 199 RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription; 200 if (!sessionDescription) { 201 ec = TYPE_MISMATCH_ERR; 202 return; 203 } 204 205 RefPtr<RTCVoidRequestImpl> request = RTCVoidRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback); 206 m_peerHandler->setRemoteDescription(request.release(), sessionDescription->descriptor()); 207 } 208 209 PassRefPtr<RTCSessionDescription> RTCPeerConnection::remoteDescription(ExceptionCode& ec) 210 { 211 if (m_readyState == ReadyStateClosing || m_readyState == ReadyStateClosed) { 212 ec = INVALID_STATE_ERR; 213 return 0; 214 } 215 216 RefPtr<RTCSessionDescriptionDescriptor> descriptor = m_peerHandler->remoteDescription(); 217 if (!descriptor) 218 return 0; 219 220 RefPtr<RTCSessionDescription> desc = RTCSessionDescription::create(descriptor.release()); 221 return desc.release(); 156 222 } 157 223 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h
r127501 r127612 50 50 class RTCConfiguration; 51 51 class RTCErrorCallback; 52 class RTCSessionDescription; 52 53 class RTCSessionDescriptionCallback; 54 class VoidCallback; 53 55 54 56 class RTCPeerConnection : public RefCounted<RTCPeerConnection>, public RTCPeerConnectionHandlerClient, public EventTarget, public ActiveDOMObject { … … 58 60 59 61 void createOffer(PassRefPtr<RTCSessionDescriptionCallback>, PassRefPtr<RTCErrorCallback>, const Dictionary& mediaConstraints, ExceptionCode&); 62 63 void setLocalDescription(PassRefPtr<RTCSessionDescription>, PassRefPtr<VoidCallback>, PassRefPtr<RTCErrorCallback>, ExceptionCode&); 64 PassRefPtr<RTCSessionDescription> localDescription(ExceptionCode&); 65 66 void setRemoteDescription(PassRefPtr<RTCSessionDescription>, PassRefPtr<VoidCallback>, PassRefPtr<RTCErrorCallback>, ExceptionCode&); 67 PassRefPtr<RTCSessionDescription> remoteDescription(ExceptionCode&); 60 68 61 69 String readyState() const; -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
r127501 r127612 42 42 raises(DOMException); 43 43 44 void setLocalDescription(in RTCSessionDescription description, in [Callback, Optional=DefaultIsUndefined] VoidCallback successCallback, in [Callback, Optional=DefaultIsUndefined] RTCErrorCallback failureCallback) 45 raises(DOMException); 46 readonly attribute RTCSessionDescription localDescription 47 getter raises(DOMException); 48 49 void setRemoteDescription(in RTCSessionDescription description, in [Callback, Optional=DefaultIsUndefined] VoidCallback successCallback, in [Callback, Optional=DefaultIsUndefined] RTCErrorCallback failureCallback) 50 raises(DOMException); 51 readonly attribute RTCSessionDescription remoteDescription 52 getter raises(DOMException); 53 44 54 readonly attribute DOMString readyState; 45 55 -
trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.h
r127501 r127612 38 38 namespace WebCore { 39 39 40 class RTCPeerConnection;41 40 class RTCSessionDescription; 42 41 … … 44 43 public: 45 44 virtual ~RTCSessionDescriptionCallback() { } 46 virtual bool handleEvent(RTCSessionDescription* , RTCPeerConnection*) = 0;45 virtual bool handleEvent(RTCSessionDescription*) = 0; 47 46 }; 48 47 -
trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.idl
r127501 r127612 35 35 Callback 36 36 ] RTCSessionDescriptionCallback { 37 boolean handleEvent(in RTCSessionDescription sdp , in RTCPeerConnection source);37 boolean handleEvent(in RTCSessionDescription sdp); 38 38 }; 39 39 -
trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp
r127501 r127612 43 43 namespace WebCore { 44 44 45 PassRefPtr<RTCSessionDescriptionRequestImpl> RTCSessionDescriptionRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback , PassRefPtr<RTCPeerConnection> owner)45 PassRefPtr<RTCSessionDescriptionRequestImpl> RTCSessionDescriptionRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback) 46 46 { 47 RefPtr<RTCSessionDescriptionRequestImpl> request = adoptRef(new RTCSessionDescriptionRequestImpl(context, successCallback, errorCallback , owner));47 RefPtr<RTCSessionDescriptionRequestImpl> request = adoptRef(new RTCSessionDescriptionRequestImpl(context, successCallback, errorCallback)); 48 48 request->suspendIfNeeded(); 49 49 return request.release(); 50 50 } 51 51 52 RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback , PassRefPtr<RTCPeerConnection> owner)52 RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback) 53 53 : ActiveDOMObject(context, this) 54 54 , m_successCallback(successCallback) 55 55 , m_errorCallback(errorCallback) 56 , m_owner(owner)57 56 { 58 57 } … … 66 65 if (m_successCallback) { 67 66 RefPtr<RTCSessionDescription> sessionDescription = RTCSessionDescription::create(descriptor); 68 m_successCallback->handleEvent(sessionDescription.get() , m_owner.get());67 m_successCallback->handleEvent(sessionDescription.get()); 69 68 } 70 69 … … 75 74 { 76 75 if (m_errorCallback) 77 m_errorCallback->handleEvent(error , m_owner.get());76 m_errorCallback->handleEvent(error); 78 77 79 78 clear(); … … 89 88 m_successCallback.clear(); 90 89 m_errorCallback.clear(); 91 m_owner.clear();92 90 } 93 91 -
trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h
r127501 r127612 45 45 class RTCSessionDescriptionRequestImpl : public RTCSessionDescriptionRequest, public ActiveDOMObject { 46 46 public: 47 static PassRefPtr<RTCSessionDescriptionRequestImpl> create(ScriptExecutionContext*, PassRefPtr<RTCSessionDescriptionCallback>, PassRefPtr<RTCErrorCallback> , PassRefPtr<RTCPeerConnection>);47 static PassRefPtr<RTCSessionDescriptionRequestImpl> create(ScriptExecutionContext*, PassRefPtr<RTCSessionDescriptionCallback>, PassRefPtr<RTCErrorCallback>); 48 48 virtual ~RTCSessionDescriptionRequestImpl(); 49 49 … … 55 55 56 56 private: 57 RTCSessionDescriptionRequestImpl(ScriptExecutionContext*, PassRefPtr<RTCSessionDescriptionCallback>, PassRefPtr<RTCErrorCallback> , PassRefPtr<RTCPeerConnection>);57 RTCSessionDescriptionRequestImpl(ScriptExecutionContext*, PassRefPtr<RTCSessionDescriptionCallback>, PassRefPtr<RTCErrorCallback>); 58 58 59 59 void clear(); … … 61 61 RefPtr<RTCSessionDescriptionCallback> m_successCallback; 62 62 RefPtr<RTCErrorCallback> m_errorCallback; 63 RefPtr<RTCPeerConnection> m_owner;64 63 }; 65 64 -
trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp
r127608 r127612 33 33 #if ENABLE(MEDIA_STREAM) 34 34 35 #include "RTC SessionDescriptionRequestImpl.h"35 #include "RTCVoidRequestImpl.h" 36 36 37 37 #include "RTCErrorCallback.h" 38 38 #include "RTCPeerConnection.h" 39 #include "RTCSessionDescription.h" 40 #include "RTCSessionDescriptionCallback.h" 41 #include "RTCSessionDescriptionDescriptor.h" 39 #include "VoidCallback.h" 42 40 43 41 namespace WebCore { 44 42 45 PassRefPtr<RTC SessionDescriptionRequestImpl> RTCSessionDescriptionRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback, PassRefPtr<RTCPeerConnection> owner)43 PassRefPtr<RTCVoidRequestImpl> RTCVoidRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<VoidCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback) 46 44 { 47 RefPtr<RTC SessionDescriptionRequestImpl> request = adoptRef(new RTCSessionDescriptionRequestImpl(context, successCallback, errorCallback, owner));45 RefPtr<RTCVoidRequestImpl> request = adoptRef(new RTCVoidRequestImpl(context, successCallback, errorCallback)); 48 46 request->suspendIfNeeded(); 49 47 return request.release(); 50 48 } 51 49 52 RTC SessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback, PassRefPtr<RTCPeerConnection> owner)50 RTCVoidRequestImpl::RTCVoidRequestImpl(ScriptExecutionContext* context, PassRefPtr<VoidCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback) 53 51 : ActiveDOMObject(context, this) 54 52 , m_successCallback(successCallback) 55 53 , m_errorCallback(errorCallback) 56 , m_owner(owner)57 54 { 58 55 } 59 56 60 RTC SessionDescriptionRequestImpl::~RTCSessionDescriptionRequestImpl()57 RTCVoidRequestImpl::~RTCVoidRequestImpl() 61 58 { 62 59 } 63 60 64 void RTC SessionDescriptionRequestImpl::requestSucceeded(PassRefPtr<RTCSessionDescriptionDescriptor> descriptor)61 void RTCVoidRequestImpl::requestSucceeded() 65 62 { 66 if (m_successCallback) { 67 RefPtr<RTCSessionDescription> sessionDescription = RTCSessionDescription::create(descriptor); 68 m_successCallback->handleEvent(sessionDescription.get(), m_owner.get()); 69 } 63 if (m_successCallback) 64 m_successCallback->handleEvent(); 70 65 71 66 clear(); 72 67 } 73 68 74 void RTC SessionDescriptionRequestImpl::requestFailed(const String& error)69 void RTCVoidRequestImpl::requestFailed(const String& error) 75 70 { 76 if (m_errorCallback )77 m_errorCallback->handleEvent(error , m_owner.get());71 if (m_errorCallback.get()) 72 m_errorCallback->handleEvent(error); 78 73 79 74 clear(); 80 75 } 81 76 82 void RTC SessionDescriptionRequestImpl::stop()77 void RTCVoidRequestImpl::stop() 83 78 { 84 79 clear(); 85 80 } 86 81 87 void RTC SessionDescriptionRequestImpl::clear()82 void RTCVoidRequestImpl::clear() 88 83 { 89 84 m_successCallback.clear(); 90 85 m_errorCallback.clear(); 91 m_owner.clear();92 86 } 93 87 -
trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h
r127608 r127612 29 29 */ 30 30 31 #ifndef RTC SessionDescriptionCallback_h32 #define RTC SessionDescriptionCallback_h31 #ifndef RTCVoidRequestImpl_h 32 #define RTCVoidRequestImpl_h 33 33 34 34 #if ENABLE(MEDIA_STREAM) 35 35 36 #include <wtf/RefCounted.h> 36 #include "ActiveDOMObject.h" 37 #include "RTCVoidRequest.h" 37 38 38 39 namespace WebCore { 39 40 40 class RTC PeerConnection;41 class RTCSessionDescription;41 class RTCErrorCallback; 42 class VoidCallback; 42 43 43 class RTC SessionDescriptionCallback : public RefCounted<RTCSessionDescriptionCallback>{44 class RTCVoidRequestImpl : public RTCVoidRequest, public ActiveDOMObject { 44 45 public: 45 virtual ~RTCSessionDescriptionCallback() { } 46 virtual bool handleEvent(RTCSessionDescription*, RTCPeerConnection*) = 0; 46 static PassRefPtr<RTCVoidRequestImpl> create(ScriptExecutionContext*, PassRefPtr<VoidCallback>, PassRefPtr<RTCErrorCallback>); 47 virtual ~RTCVoidRequestImpl(); 48 49 virtual void requestSucceeded(); 50 virtual void requestFailed(const String& error); 51 52 // ActiveDOMObject 53 virtual void stop() OVERRIDE; 54 55 private: 56 RTCVoidRequestImpl(ScriptExecutionContext*, PassRefPtr<VoidCallback>, PassRefPtr<RTCErrorCallback>); 57 58 void clear(); 59 60 RefPtr<VoidCallback> m_successCallback; 61 RefPtr<RTCErrorCallback> m_errorCallback; 47 62 }; 48 63 … … 51 66 #endif // ENABLE(MEDIA_STREAM) 52 67 53 #endif // RTCSessionDescriptionCallback_h 68 #endif // RTCVoidRequestImpl_h 69 70 -
trunk/Source/WebCore/WebCore.gypi
r127558 r127612 466 466 'platform/mediastream/RTCSessionDescriptionDescriptor.h', 467 467 'platform/mediastream/RTCSessionDescriptionRequest.h', 468 'platform/mediastream/RTCVoidRequest.h', 468 469 'platform/mediastream/SessionDescriptionDescriptor.cpp', 469 470 'platform/mediastream/SessionDescriptionDescriptor.h', … … 1620 1621 'Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp', 1621 1622 'Modules/mediastream/RTCSessionDescriptionRequestImpl.h', 1623 'Modules/mediastream/RTCVoidRequestImpl.cpp', 1624 'Modules/mediastream/RTCVoidRequestImpl.h', 1622 1625 'Modules/mediastream/SessionDescription.cpp', 1623 1626 'Modules/mediastream/SessionDescription.h', … … 8349 8352 'platform/chromium/support/WebRTCSessionDescriptionDescriptor.cpp', 8350 8353 'platform/chromium/support/WebRTCSessionDescriptionRequest.cpp', 8354 'platform/chromium/support/WebRTCVoidRequest.cpp', 8351 8355 'platform/chromium/support/WebScrollbarThemeGeometryNative.cpp', 8352 8356 'platform/chromium/support/WebScrollbarThemeGeometryNative.h', -
trunk/Source/WebCore/platform/chromium/support/WebRTCVoidRequest.cpp
r127608 r127612 29 29 */ 30 30 31 #ifndef WebRTCPeerConnectionHandler_h 32 #define WebRTCPeerConnectionHandler_h 31 #include "config.h" 32 33 #if ENABLE(MEDIA_STREAM) 34 35 #include <public/WebRTCVoidRequest.h> 36 37 #include "RTCVoidRequest.h" 38 #include <wtf/PassOwnPtr.h> 39 40 using namespace WebCore; 33 41 34 42 namespace WebKit { 35 class WebMediaConstraints;36 class WebMediaStreamDescriptor;37 class WebRTCConfiguration;38 class WebRTCICECandidateDescriptor;39 class WebRTCPeerConnectionHandlerClient;40 class WebRTCSessionDescriptionDescriptor;41 class WebRTCSessionDescriptionRequest;42 43 43 class WebRTCPeerConnectionHandler { 44 WebRTCVoidRequest::WebRTCVoidRequest(const PassRefPtr<RTCVoidRequest>& constraints) 45 : m_private(constraints) 46 { 47 } 48 49 void WebRTCVoidRequest::assign(const WebRTCVoidRequest& other) 50 { 51 m_private = other.m_private; 52 } 53 54 void WebRTCVoidRequest::reset() 55 { 56 m_private.reset(); 57 } 58 59 void WebRTCVoidRequest::requestSucceeded() const 60 { 61 ASSERT(m_private.get()); 62 m_private->requestSucceeded(); 63 } 64 65 void WebRTCVoidRequest::requestFailed(const WebString& error) const 66 { 67 ASSERT(m_private.get()); 68 m_private->requestFailed(error); 69 } 70 71 class ExtraDataContainer : public WebCore::RTCVoidRequest::ExtraData { 44 72 public: 45 virtual ~WebRTCPeerConnectionHandler() { }73 ExtraDataContainer(WebRTCVoidRequest::ExtraData* extraData) : m_extraData(WTF::adoptPtr(extraData)) { } 46 74 47 virtual bool initialize(const WebRTCConfiguration&, const WebMediaConstraints&) = 0;75 WebRTCVoidRequest::ExtraData* extraData() { return m_extraData.get(); } 48 76 49 virtual void createOffer(const WebRTCSessionDescriptionRequest&, const WebMediaConstraints&) = 0; 50 virtual bool updateICE(const WebRTCConfiguration&, const WebMediaConstraints&) = 0; 51 virtual bool addICECandidate(const WebRTCICECandidateDescriptor&) = 0; 52 virtual bool addStream(const WebMediaStreamDescriptor&, const WebMediaConstraints&) = 0; 53 virtual void removeStream(const WebMediaStreamDescriptor&) = 0; 54 virtual void stop() = 0; 77 private: 78 OwnPtr<WebRTCVoidRequest::ExtraData> m_extraData; 55 79 }; 80 81 WebRTCVoidRequest::ExtraData* WebRTCVoidRequest::extraData() const 82 { 83 RefPtr<RTCVoidRequest::ExtraData> data = m_private->extraData(); 84 if (!data) 85 return 0; 86 return static_cast<ExtraDataContainer*>(data.get())->extraData(); 87 } 88 89 void WebRTCVoidRequest::setExtraData(ExtraData* extraData) 90 { 91 m_private->setExtraData(adoptRef(new ExtraDataContainer(extraData))); 92 } 56 93 57 94 } // namespace WebKit 58 95 59 #endif // WebRTCPeerConnectionHandler_h 96 #endif // ENABLE(MEDIA_STREAM) 97 -
trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.cpp
r127501 r127612 36 36 37 37 #include "RTCPeerConnectionHandlerClient.h" 38 #include "RTCSessionDescriptionDescriptor.h" 38 39 #include <wtf/PassOwnPtr.h> 39 40 … … 50 51 51 52 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<MediaConstraints>) OVERRIDE; 53 virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) OVERRIDE; 54 virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) OVERRIDE; 55 virtual PassRefPtr<RTCSessionDescriptionDescriptor> localDescription() OVERRIDE; 56 virtual PassRefPtr<RTCSessionDescriptionDescriptor> remoteDescription() OVERRIDE; 52 57 virtual bool updateIce(PassRefPtr<RTCConfiguration>, PassRefPtr<MediaConstraints>) OVERRIDE; 53 58 virtual bool addIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) OVERRIDE; … … 84 89 } 85 90 91 void RTCPeerConnectionHandlerDummy::setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) 92 { 93 } 94 95 void RTCPeerConnectionHandlerDummy::setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) 96 { 97 } 98 99 PassRefPtr<RTCSessionDescriptionDescriptor> RTCPeerConnectionHandlerDummy::localDescription() 100 { 101 return 0; 102 } 103 104 PassRefPtr<RTCSessionDescriptionDescriptor> RTCPeerConnectionHandlerDummy::remoteDescription() 105 { 106 return 0; 107 } 108 86 109 bool RTCPeerConnectionHandlerDummy::addStream(PassRefPtr<MediaStreamDescriptor>, PassRefPtr<MediaConstraints>) 87 110 { -
trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h
r127501 r127612 46 46 class RTCSessionDescriptionDescriptor; 47 47 class RTCSessionDescriptionRequest; 48 class RTCVoidRequest; 48 49 49 50 class RTCPeerConnectionHandler { … … 55 56 56 57 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<MediaConstraints>) = 0; 58 virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) = 0; 59 virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) = 0; 60 virtual PassRefPtr<RTCSessionDescriptionDescriptor> localDescription() = 0; 61 virtual PassRefPtr<RTCSessionDescriptionDescriptor> remoteDescription() = 0; 57 62 virtual bool updateIce(PassRefPtr<RTCConfiguration>, PassRefPtr<MediaConstraints>) = 0; 58 63 virtual bool addIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) = 0; -
trunk/Source/WebCore/platform/mediastream/RTCVoidRequest.h
r127608 r127612 29 29 */ 30 30 31 #ifndef RTC ErrorCallback_h32 #define RTC ErrorCallback_h31 #ifndef RTCVoidRequest_h 32 #define RTCVoidRequest_h 33 33 34 34 #if ENABLE(MEDIA_STREAM) 35 35 36 #include <wtf/PassRefPtr.h> 36 37 #include <wtf/RefCounted.h> 38 #include <wtf/RefPtr.h> 37 39 #include <wtf/text/WTFString.h> 38 40 39 41 namespace WebCore { 40 42 41 class RTCPeerConnection; 43 class RTCVoidRequest : public RefCounted<RTCVoidRequest> { 44 public: 45 class ExtraData : public RefCounted<ExtraData> { 46 public: 47 virtual ~ExtraData() { } 48 }; 42 49 43 class RTCErrorCallback : public RefCounted<RTCErrorCallback> { 44 public: 45 virtual ~RTCErrorCallback() { } 46 virtual bool handleEvent(const String& errorInformation, RTCPeerConnection*) = 0; 50 virtual ~RTCVoidRequest() { } 51 52 virtual void requestSucceeded() = 0; 53 virtual void requestFailed(const String& error) = 0; 54 55 PassRefPtr<ExtraData> extraData() const { return m_extraData; } 56 void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData; } 57 58 protected: 59 RTCVoidRequest() { } 60 61 private: 62 RefPtr<ExtraData> m_extraData; 47 63 }; 48 64 … … 51 67 #endif // ENABLE(MEDIA_STREAM) 52 68 53 #endif // RTC ErrorCallback_h69 #endif // RTCVoidRequest_h -
trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp
r127501 r127612 48 48 #include <public/WebRTCSessionDescriptionDescriptor.h> 49 49 #include <public/WebRTCSessionDescriptionRequest.h> 50 #include <public/WebRTCVoidRequest.h> 50 51 #include <wtf/PassOwnPtr.h> 51 52 … … 82 83 } 83 84 85 void RTCPeerConnectionHandlerChromium::setLocalDescription(PassRefPtr<RTCVoidRequest> request, PassRefPtr<RTCSessionDescriptionDescriptor> sessionDescription) 86 { 87 if (!m_webHandler) 88 return; 89 90 m_webHandler->setLocalDescription(request, sessionDescription); 91 } 92 93 void RTCPeerConnectionHandlerChromium::setRemoteDescription(PassRefPtr<RTCVoidRequest> request, PassRefPtr<RTCSessionDescriptionDescriptor> sessionDescription) 94 { 95 if (!m_webHandler) 96 return; 97 98 m_webHandler->setRemoteDescription(request, sessionDescription); 99 } 100 84 101 bool RTCPeerConnectionHandlerChromium::updateIce(PassRefPtr<RTCConfiguration> configuration, PassRefPtr<MediaConstraints> constraints) 85 102 { … … 96 113 97 114 return m_webHandler->addICECandidate(iceCandidate); 115 } 116 117 PassRefPtr<RTCSessionDescriptionDescriptor> RTCPeerConnectionHandlerChromium::localDescription() 118 { 119 if (!m_webHandler) 120 return 0; 121 122 return m_webHandler->localDescription(); 123 } 124 125 PassRefPtr<RTCSessionDescriptionDescriptor> RTCPeerConnectionHandlerChromium::remoteDescription() 126 { 127 if (!m_webHandler) 128 return 0; 129 130 return m_webHandler->remoteDescription(); 98 131 } 99 132 -
trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h
r127501 r127612 56 56 57 57 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<MediaConstraints>) OVERRIDE; 58 virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) OVERRIDE; 59 virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) OVERRIDE; 60 virtual PassRefPtr<RTCSessionDescriptionDescriptor> localDescription() OVERRIDE; 61 virtual PassRefPtr<RTCSessionDescriptionDescriptor> remoteDescription() OVERRIDE; 58 62 virtual bool updateIce(PassRefPtr<RTCConfiguration>, PassRefPtr<MediaConstraints>) OVERRIDE; 59 63 virtual bool addIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) OVERRIDE; -
trunk/Tools/ChangeLog
r127604 r127612 1 2012-09-05 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add the local and remote description functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=95839 5 6 Reviewed by Adam Barth. 7 8 In addition to adding the new methods to MockWebRTCPeerConnectionHandler I cleaned 9 up the task definitions a bit. There was no need to have them in the header file. 10 11 * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: 12 (RTCSessionDescriptionRequestSuccededTask): 13 (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): 14 (RTCSessionDescriptionRequestFailedTask): 15 (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): 16 (RTCVoidRequestTask): 17 (RTCVoidRequestTask::RTCVoidRequestTask): 18 (MockWebRTCPeerConnectionHandler::createOffer): 19 (MockWebRTCPeerConnectionHandler::setLocalDescription): 20 (MockWebRTCPeerConnectionHandler::setRemoteDescription): 21 (MockWebRTCPeerConnectionHandler::localDescription): 22 (MockWebRTCPeerConnectionHandler::remoteDescription): 23 * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: 24 (MockWebRTCPeerConnectionHandler): 25 1 26 2012-09-05 Kangil Han <kangil.han@samsung.com> 2 27 -
trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp
r127501 r127612 38 38 #include <public/WebRTCSessionDescriptionDescriptor.h> 39 39 #include <public/WebRTCSessionDescriptionRequest.h> 40 #include <public/WebRTCVoidRequest.h> 40 41 #include <public/WebString.h> 41 42 #include <public/WebVector.h> … … 43 44 using namespace WebKit; 44 45 45 MockWebRTCPeerConnectionHandler::SuccessCallbackTask::SuccessCallbackTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCSessionDescriptionRequest& request, const WebRTCSessionDescriptionDescriptor& result) 46 : MethodTask<MockWebRTCPeerConnectionHandler>(object) 47 , m_request(request) 48 , m_result(result) 49 { 50 } 51 52 void MockWebRTCPeerConnectionHandler::SuccessCallbackTask::runIfValid() 53 { 54 m_request.requestSucceeded(m_result); 55 } 56 57 MockWebRTCPeerConnectionHandler::FailureCallbackTask::FailureCallbackTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCSessionDescriptionRequest& request) 58 : MethodTask<MockWebRTCPeerConnectionHandler>(object) 59 , m_request(request) 60 { 61 } 62 63 void MockWebRTCPeerConnectionHandler::FailureCallbackTask::runIfValid() 64 { 65 m_request.requestFailed("TEST_ERROR"); 66 } 46 class RTCSessionDescriptionRequestSuccededTask : public MethodTask<MockWebRTCPeerConnectionHandler> { 47 public: 48 RTCSessionDescriptionRequestSuccededTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCSessionDescriptionRequest& request, const WebKit::WebRTCSessionDescriptionDescriptor& result) 49 : MethodTask<MockWebRTCPeerConnectionHandler>(object) 50 , m_request(request) 51 , m_result(result) 52 { 53 } 54 55 virtual void runIfValid() OVERRIDE 56 { 57 m_request.requestSucceeded(m_result); 58 } 59 60 private: 61 WebKit::WebRTCSessionDescriptionRequest m_request; 62 WebKit::WebRTCSessionDescriptionDescriptor m_result; 63 }; 64 65 class RTCSessionDescriptionRequestFailedTask : public MethodTask<MockWebRTCPeerConnectionHandler> { 66 public: 67 RTCSessionDescriptionRequestFailedTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCSessionDescriptionRequest& request) 68 : MethodTask<MockWebRTCPeerConnectionHandler>(object) 69 , m_request(request) 70 { 71 } 72 73 virtual void runIfValid() OVERRIDE 74 { 75 m_request.requestFailed("TEST_ERROR"); 76 } 77 78 private: 79 WebKit::WebRTCSessionDescriptionRequest m_request; 80 }; 81 82 class RTCVoidRequestTask : public MethodTask<MockWebRTCPeerConnectionHandler> { 83 public: 84 RTCVoidRequestTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCVoidRequest& request, bool succeeded) 85 : MethodTask<MockWebRTCPeerConnectionHandler>(object) 86 , m_request(request) 87 , m_succeeded(succeeded) 88 { 89 } 90 91 virtual void runIfValid() OVERRIDE 92 { 93 if (m_succeeded) 94 m_request.requestSucceeded(); 95 else 96 m_request.requestFailed("TEST_ERROR"); 97 } 98 99 private: 100 WebKit::WebRTCVoidRequest m_request; 101 bool m_succeeded; 102 }; 103 104 ///////////////////// 67 105 68 106 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler(WebRTCPeerConnectionHandlerClient* client) … … 118 156 WebRTCSessionDescriptionDescriptor sessionDescription; 119 157 sessionDescription.initialize("offer", "Some SDP here"); 120 postTask(new SuccessCallbackTask(this, request, sessionDescription));158 postTask(new RTCSessionDescriptionRequestSuccededTask(this, request, sessionDescription)); 121 159 } else 122 postTask(new FailureCallbackTask(this, request)); 160 postTask(new RTCSessionDescriptionRequestFailedTask(this, request)); 161 } 162 163 void MockWebRTCPeerConnectionHandler::setLocalDescription(const WebRTCVoidRequest& request, const WebRTCSessionDescriptionDescriptor& localDescription) 164 { 165 if (!localDescription.isNull() && localDescription.type() == "offer") { 166 m_localDescription = localDescription; 167 postTask(new RTCVoidRequestTask(this, request, true)); 168 } else 169 postTask(new RTCVoidRequestTask(this, request, false)); 170 } 171 172 void MockWebRTCPeerConnectionHandler::setRemoteDescription(const WebRTCVoidRequest& request, const WebRTCSessionDescriptionDescriptor& remoteDescription) 173 { 174 if (!remoteDescription.isNull() && remoteDescription.type() == "answer") { 175 m_remoteDescription = remoteDescription; 176 postTask(new RTCVoidRequestTask(this, request, true)); 177 } else 178 postTask(new RTCVoidRequestTask(this, request, false)); 179 } 180 181 WebRTCSessionDescriptionDescriptor MockWebRTCPeerConnectionHandler::localDescription() 182 { 183 return m_localDescription; 184 } 185 186 WebRTCSessionDescriptionDescriptor MockWebRTCPeerConnectionHandler::remoteDescription() 187 { 188 return m_remoteDescription; 123 189 } 124 190 -
trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h
r127501 r127612 50 50 51 51 virtual void createOffer(const WebKit::WebRTCSessionDescriptionRequest&, const WebKit::WebMediaConstraints&) OVERRIDE; 52 virtual void setLocalDescription(const WebKit::WebRTCVoidRequest&, const WebKit::WebRTCSessionDescriptionDescriptor&) OVERRIDE; 53 virtual void setRemoteDescription(const WebKit::WebRTCVoidRequest&, const WebKit::WebRTCSessionDescriptionDescriptor&) OVERRIDE; 54 virtual WebKit::WebRTCSessionDescriptionDescriptor localDescription() OVERRIDE; 55 virtual WebKit::WebRTCSessionDescriptionDescriptor remoteDescription() OVERRIDE; 52 56 virtual bool updateICE(const WebKit::WebRTCConfiguration&, const WebKit::WebMediaConstraints&) OVERRIDE; 53 57 virtual bool addICECandidate(const WebKit::WebRTCICECandidateDescriptor&) OVERRIDE; … … 63 67 64 68 WebKit::WebRTCPeerConnectionHandlerClient* m_client; 65 66 69 TaskList m_taskList; 67 68 class SuccessCallbackTask : public MethodTask<MockWebRTCPeerConnectionHandler> { 69 public: 70 SuccessCallbackTask(MockWebRTCPeerConnectionHandler*, const WebKit::WebRTCSessionDescriptionRequest&, const WebKit::WebRTCSessionDescriptionDescriptor&); 71 virtual void runIfValid() OVERRIDE; 72 73 private: 74 WebKit::WebRTCSessionDescriptionRequest m_request; 75 WebKit::WebRTCSessionDescriptionDescriptor m_result; 76 }; 77 78 class FailureCallbackTask : public MethodTask<MockWebRTCPeerConnectionHandler> { 79 public: 80 FailureCallbackTask(MockWebRTCPeerConnectionHandler*, const WebKit::WebRTCSessionDescriptionRequest&); 81 virtual void runIfValid() OVERRIDE; 82 83 private: 84 WebKit::WebRTCSessionDescriptionRequest m_request; 85 }; 70 WebKit::WebRTCSessionDescriptionDescriptor m_localDescription; 71 WebKit::WebRTCSessionDescriptionDescriptor m_remoteDescription; 86 72 }; 87 73
Note: See TracChangeset
for help on using the changeset viewer.