Changeset 126586 in webkit
- Timestamp:
- Aug 24, 2012 8:10:17 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r126584 r126586 1 2012-08-24 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add readyState functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=94813 5 6 Reviewed by Adam Barth. 7 8 * fast/mediastream/RTCPeerConnection-state-expected.txt: Added. 9 * fast/mediastream/RTCPeerConnection-state.html: Added. 10 1 11 2012-08-24 Vsevolod Vlasov <vsevik@chromium.org> 2 12 -
trunk/Source/Platform/ChangeLog
r126513 r126586 1 2012-08-24 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add readyState functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=94813 5 6 Reviewed by Adam Barth. 7 8 * chromium/public/WebRTCPeerConnectionHandler.h: 9 (WebRTCPeerConnectionHandler): 10 * chromium/public/WebRTCPeerConnectionHandlerClient.h: 11 (WebRTCPeerConnectionHandlerClient): 12 1 13 2012-08-23 James Robinson <jamesr@chromium.org> 2 14 -
trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h
r124460 r126586 40 40 41 41 virtual bool initialize() = 0; 42 virtual void stop() = 0; 42 43 }; 43 44 -
trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandlerClient.h
r124460 r126586 36 36 class WebRTCPeerConnectionHandlerClient { 37 37 public: 38 enum ReadyState { 39 ReadyStateNew = 1, 40 ReadyStateOpening = 2, 41 ReadyStateActive = 3, 42 ReadyStateClosing = 4, 43 ReadyStateClosed = 5 44 }; 45 38 46 virtual ~WebRTCPeerConnectionHandlerClient() { } 47 48 virtual void didChangeReadyState(ReadyState) = 0; 39 49 }; 40 50 -
trunk/Source/WebCore/ChangeLog
r126585 r126586 1 2012-08-24 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add readyState functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=94813 5 6 Reviewed by Adam Barth. 7 8 This patch adds readyState functionality to RTCPeerConnection together with related callbacks and methods. 9 10 Test: fast/mediastream/RTCPeerConnection-state.html 11 12 * Modules/mediastream/RTCPeerConnection.cpp: 13 (WebCore::RTCPeerConnection::RTCPeerConnection): 14 (WebCore::RTCPeerConnection::readyState): 15 (WebCore): 16 (WebCore::RTCPeerConnection::close): 17 (WebCore::RTCPeerConnection::didChangeReadyState): 18 (WebCore::RTCPeerConnection::stop): 19 (WebCore::RTCPeerConnection::changeReadyState): 20 * Modules/mediastream/RTCPeerConnection.h: 21 (RTCPeerConnection): 22 * Modules/mediastream/RTCPeerConnection.idl: 23 * platform/mediastream/RTCPeerConnectionHandler.cpp: 24 (RTCPeerConnectionHandlerDummy): 25 (WebCore::RTCPeerConnectionHandlerDummy::stop): 26 (WebCore): 27 * platform/mediastream/RTCPeerConnectionHandler.h: 28 (RTCPeerConnectionHandler): 29 * platform/mediastream/RTCPeerConnectionHandlerClient.h: 30 (RTCPeerConnectionHandlerClient): 31 * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: 32 (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium): 33 (WebCore::RTCPeerConnectionHandlerChromium::stop): 34 (WebCore): 35 (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState): 36 * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: 37 (RTCPeerConnectionHandlerChromium): 38 1 39 2012-08-24 Andrey Adaikin <aandrey@chromium.org> 2 40 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
r124460 r126586 36 36 37 37 #include "ArrayValue.h" 38 #include "Event.h" 38 39 #include "ExceptionCode.h" 39 #include "KURL.h"40 40 #include "RTCConfiguration.h" 41 41 #include "ScriptExecutionContext.h" … … 107 107 RTCPeerConnection::RTCPeerConnection(ScriptExecutionContext* context, PassRefPtr<RTCConfiguration>, ExceptionCode& ec) 108 108 : ActiveDOMObject(context, this) 109 , m_readyState(ReadyStateNew) 109 110 { 110 111 m_peerHandler = RTCPeerConnectionHandler::create(this); … … 117 118 } 118 119 120 String RTCPeerConnection::readyState() const 121 { 122 switch (m_readyState) { 123 case ReadyStateNew: 124 return "new"; 125 case ReadyStateOpening: 126 return "opening"; 127 case ReadyStateActive: 128 return "active"; 129 case ReadyStateClosing: 130 return "closing"; 131 case ReadyStateClosed: 132 return "closed"; 133 } 134 135 ASSERT_NOT_REACHED(); 136 return ""; 137 } 138 139 void RTCPeerConnection::close(ExceptionCode& ec) 140 { 141 if (m_readyState == ReadyStateClosing || m_readyState == ReadyStateClosed) { 142 ec = INVALID_STATE_ERR; 143 return; 144 } 145 146 changeReadyState(ReadyStateClosed); 147 stop(); 148 } 149 150 void RTCPeerConnection::didChangeReadyState(ReadyState newState) 151 { 152 ASSERT(scriptExecutionContext()->isContextThread()); 153 changeReadyState(newState); 154 } 155 119 156 const AtomicString& RTCPeerConnection::interfaceName() const 120 157 { … … 129 166 void RTCPeerConnection::stop() 130 167 { 131 // FIXME: Make sure that this object stops posting events and releases resources at this stage. 168 m_readyState = ReadyStateClosed; 169 170 if (m_peerHandler) { 171 m_peerHandler->stop(); 172 m_peerHandler.clear(); 173 } 132 174 } 133 175 … … 142 184 } 143 185 186 void RTCPeerConnection::changeReadyState(ReadyState readyState) 187 { 188 if (readyState == m_readyState || m_readyState == ReadyStateClosed) 189 return; 190 191 m_readyState = readyState; 192 193 switch (m_readyState) { 194 case ReadyStateOpening: 195 break; 196 case ReadyStateActive: 197 dispatchEvent(Event::create(eventNames().openEvent, false, false)); 198 break; 199 case ReadyStateClosing: 200 case ReadyStateClosed: 201 break; 202 case ReadyStateNew: 203 ASSERT_NOT_REACHED(); 204 break; 205 } 206 207 dispatchEvent(Event::create(eventNames().statechangeEvent, false, false)); 208 } 209 144 210 } // namespace WebCore 145 211 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h
r124460 r126586 50 50 ~RTCPeerConnection(); 51 51 52 String readyState() const; 53 54 void close(ExceptionCode&); 55 56 DEFINE_ATTRIBUTE_EVENT_LISTENER(open); 57 DEFINE_ATTRIBUTE_EVENT_LISTENER(statechange); 58 59 // RTCPeerConnectionHandlerClient 60 virtual void didChangeReadyState(ReadyState) OVERRIDE; 61 52 62 // EventTarget 53 63 virtual const AtomicString& interfaceName() const OVERRIDE; … … 72 82 EventTargetData m_eventTargetData; 73 83 84 void changeReadyState(ReadyState); 85 86 ReadyState m_readyState; 87 74 88 OwnPtr<RTCPeerConnectionHandler> m_peerHandler; 75 89 }; -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
r124193 r126586 39 39 EventTarget 40 40 ] RTCPeerConnection { 41 readonly attribute DOMString readyState; 42 43 void close() 44 raises(DOMException); 45 46 attribute EventListener onopen; 47 attribute EventListener onstatechange; 48 41 49 // EventTarget interface 42 50 void addEventListener(in DOMString type, -
trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.cpp
r124460 r126586 48 48 49 49 virtual bool initialize() OVERRIDE; 50 virtual void stop() OVERRIDE; 50 51 51 52 private: … … 73 74 } 74 75 76 void RTCPeerConnectionHandlerDummy::stop() 77 { 78 } 79 75 80 } // namespace WebCore 76 81 -
trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h
r124460 r126586 47 47 48 48 virtual bool initialize() = 0; 49 virtual void stop() = 0; 49 50 50 51 protected: -
trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandlerClient.h
r124460 r126586 38 38 class RTCPeerConnectionHandlerClient { 39 39 public: 40 enum ReadyState { 41 ReadyStateNew = 1, 42 ReadyStateOpening = 2, 43 ReadyStateActive = 3, 44 ReadyStateClosing = 4, 45 ReadyStateClosed = 5 46 }; 47 40 48 virtual ~RTCPeerConnectionHandlerClient() { } 41 49 50 virtual void didChangeReadyState(ReadyState) = 0; 42 51 }; 43 52 -
trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp
r126341 r126586 46 46 } 47 47 48 RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium(RTCPeerConnectionHandlerClient*) 48 RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium(RTCPeerConnectionHandlerClient* client) 49 : m_client(client) 49 50 { 51 ASSERT(m_client); 50 52 } 51 53 … … 60 62 } 61 63 64 void RTCPeerConnectionHandlerChromium::stop() 65 { 66 if (!m_webHandler) 67 return; 68 69 m_webHandler->stop(); 70 } 71 72 void RTCPeerConnectionHandlerChromium::didChangeReadyState(WebKit::WebRTCPeerConnectionHandlerClient::ReadyState state) 73 { 74 m_client->didChangeReadyState(static_cast<RTCPeerConnectionHandlerClient::ReadyState>(state)); 75 } 76 62 77 } // namespace WebCore 63 78 -
trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h
r124460 r126586 48 48 49 49 virtual bool initialize() OVERRIDE; 50 virtual void stop() OVERRIDE; 51 52 // WebKit::WebRTCPeerConnectionHandlerClient implementation. 53 virtual void didChangeReadyState(WebKit::WebRTCPeerConnectionHandlerClient::ReadyState) OVERRIDE; 50 54 51 55 private: 52 56 OwnPtr<WebKit::WebRTCPeerConnectionHandler> m_webHandler; 57 RTCPeerConnectionHandlerClient* m_client; 53 58 }; 54 59 -
trunk/Source/WebKit/chromium/ChangeLog
r126566 r126586 1 2012-08-24 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add readyState functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=94813 5 6 Reviewed by Adam Barth. 7 8 * src/AssertMatchingEnums.cpp: 9 1 10 2012-08-24 Dan Carney <dcarney@google.com> 2 11 -
trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp
r126369 r126586 65 65 #include "PeerConnection00.h" 66 66 #include "PlatformCursor.h" 67 #include "RTCPeerConnectionHandlerClient.h" 67 68 #include "ReferrerPolicy.h" 68 69 #include "ResourceResponse.h" … … 116 117 #include <public/WebFileSystem.h> 117 118 #include <public/WebFilterOperation.h> 119 #include <public/WebRTCPeerConnectionHandler.h> 120 #include <public/WebRTCPeerConnectionHandlerClient.h> 118 121 #include <public/WebReferrerPolicy.h> 119 122 #include <public/WebScrollbar.h> … … 593 596 COMPILE_ASSERT_MATCHING_ENUM(WebPeerConnection00HandlerClient::ICEStateFailed, PeerConnection00::ICE_FAILED); 594 597 COMPILE_ASSERT_MATCHING_ENUM(WebPeerConnection00HandlerClient::ICEStateClosed, PeerConnection00::ICE_CLOSED); 598 599 COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateNew, RTCPeerConnectionHandlerClient::ReadyStateNew); 600 COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateOpening, RTCPeerConnectionHandlerClient::ReadyStateOpening); 601 COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateActive, RTCPeerConnectionHandlerClient::ReadyStateActive); 602 COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateClosing, RTCPeerConnectionHandlerClient::ReadyStateClosing); 603 COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateClosed, RTCPeerConnectionHandlerClient::ReadyStateClosed); 595 604 #endif 596 605 -
trunk/Tools/ChangeLog
r126577 r126586 1 2012-08-24 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Add readyState functionality to RTCPeerConnection 4 https://bugs.webkit.org/show_bug.cgi?id=94813 5 6 Reviewed by Adam Barth. 7 8 * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: 9 (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): 10 (MockWebRTCPeerConnectionHandler::stop): 11 * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: 12 (MockWebRTCPeerConnectionHandler): 13 1 14 2012-08-24 Michael Brüning <michaelbruening@gmail.com> 2 15 -
trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp
r126341 r126586 38 38 using namespace WebKit; 39 39 40 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler(WebRTCPeerConnectionHandlerClient* client)40 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler(WebRTCPeerConnectionHandlerClient*) 41 41 { 42 42 } … … 47 47 } 48 48 49 void MockWebRTCPeerConnectionHandler::stop() 50 { 51 } 52 49 53 #endif // ENABLE(MEDIA_STREAM) -
trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h
r126341 r126586 44 44 45 45 virtual bool initialize() OVERRIDE; 46 virtual void stop() OVERRIDE; 46 47 47 48 private:
Note: See TracChangeset
for help on using the changeset viewer.