Changeset 134207 in webkit
- Timestamp:
- Nov 12, 2012 4:24:50 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r134205 r134207 1 2012-11-12 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state 4 https://bugs.webkit.org/show_bug.cgi?id=101751 5 6 Reviewed by Adam Barth. 7 8 Adding shouldNotTrow to the send() calls. 9 10 * fast/mediastream/RTCPeerConnection-datachannel-expected.txt: 11 * fast/mediastream/RTCPeerConnection-datachannel.html: 12 1 13 2012-11-12 Mihnea Ovidenie <mihnea@adobe.com> 2 14 -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-datachannel-expected.txt
r131494 r134207 13 13 PASS dc.readyState is 'open' 14 14 PASS dc.label is 'label' 15 PASS dc.send('xyzzy'); did not throw exception. 15 16 PASS dc_onmessage_string was called 16 17 PASS data is 'xyzzy' 18 PASS dc.send(buffer); did not throw exception. 17 19 PASS dc_onmessage_arraybuffer was called 18 20 PASS data.byteLength is 2 19 21 PASS array[0] is 17 20 22 PASS array[1] is 19 23 PASS dc.send(array); did not throw exception. 21 24 PASS dc_onmessage_arraybufferview was called 22 25 PASS data.byteLength is 2 -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-datachannel.html
r131494 r134207 43 43 array[1] = 13; 44 44 dc.onmessage = dc_onmessage_arraybufferview; 45 dc.send(array);45 shouldNotThrow("dc.send(array);"); 46 46 } 47 47 … … 52 52 53 53 dc.binaryType = "arraybuffer"; 54 varbuffer = new ArrayBuffer(2);54 buffer = new ArrayBuffer(2); 55 55 var array = new Int8Array(buffer); 56 56 array[0] = 17; 57 57 array[1] = 19; 58 58 dc.onmessage = dc_onmessage_arraybuffer; 59 dc.send(buffer);59 shouldNotThrow("dc.send(buffer);"); 60 60 } 61 61 … … 66 66 67 67 dc.onmessage = dc_onmessage_string; 68 dc.send("xyzzy");68 shouldNotThrow("dc.send('xyzzy');"); 69 69 } 70 70 -
trunk/Source/Platform/ChangeLog
r134084 r134207 1 2012-11-12 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state 4 https://bugs.webkit.org/show_bug.cgi?id=101751 5 6 Reviewed by Adam Barth. 7 8 Making some WebRTCDataChannel methods const. 9 10 * chromium/public/WebRTCDataChannel.h: 11 (WebRTCDataChannel): 12 1 13 2012-11-09 Tommy Widenflycht <tommyw@google.com> 2 14 -
trunk/Source/Platform/chromium/public/WebRTCDataChannel.h
r131494 r134207 70 70 WEBKIT_EXPORT bool reliable() const; 71 71 72 WEBKIT_EXPORT void setBufferedAmount(unsigned long) ;73 WEBKIT_EXPORT void readyStateChanged(ReadyState) ;74 WEBKIT_EXPORT void dataArrived(const WebString&) ;75 WEBKIT_EXPORT void dataArrived(const char*, size_t) ;76 WEBKIT_EXPORT void error() ;72 WEBKIT_EXPORT void setBufferedAmount(unsigned long) const; 73 WEBKIT_EXPORT void readyStateChanged(ReadyState) const; 74 WEBKIT_EXPORT void dataArrived(const WebString&) const; 75 WEBKIT_EXPORT void dataArrived(const char*, size_t) const; 76 WEBKIT_EXPORT void error() const; 77 77 78 78 // Extra data associated with this WebRTCDataChannel. -
trunk/Source/WebCore/ChangeLog
r134206 r134207 1 2012-11-12 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state 4 https://bugs.webkit.org/show_bug.cgi?id=101751 5 6 Reviewed by Adam Barth. 7 8 This patch queues the events until the JS interpreter is in an idle state. 9 10 Existing tests cover this patch. 11 12 * Modules/mediastream/RTCDataChannel.cpp: 13 (WebCore::RTCDataChannel::RTCDataChannel): 14 (WebCore::RTCDataChannel::readyStateChanged): 15 (WebCore::RTCDataChannel::dataArrived): 16 (WebCore::RTCDataChannel::error): 17 (WebCore::RTCDataChannel::scheduleDispatchEvent): 18 (WebCore): 19 (WebCore::RTCDataChannel::scheduledEventTimerFired): 20 * Modules/mediastream/RTCDataChannel.h: 21 (RTCDataChannel): 22 * platform/chromium/support/WebRTCDataChannel.cpp: 23 (WebKit::WebRTCDataChannel::setBufferedAmount): 24 (WebKit::WebRTCDataChannel::readyStateChanged): 25 (WebKit::WebRTCDataChannel::dataArrived): 26 (WebKit::WebRTCDataChannel::error): 27 1 28 2012-11-12 Kunihiko Sakamoto <ksakamoto@chromium.org> 2 29 -
trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp
r131372 r134207 64 64 , m_binaryType(BinaryTypeArrayBuffer) 65 65 , m_handler(handler) 66 , m_scheduledEventTimer(this, &RTCDataChannel::scheduledEventTimerFired) 66 67 { 67 68 m_descriptor->setClient(this); … … 187 188 switch (m_descriptor->readyState()) { 188 189 case RTCDataChannelDescriptor::ReadyStateOpen: 189 dispatchEvent(Event::create(eventNames().openEvent, false, false));190 scheduleDispatchEvent(Event::create(eventNames().openEvent, false, false)); 190 191 break; 191 192 case RTCDataChannelDescriptor::ReadyStateClosed: 192 dispatchEvent(Event::create(eventNames().closeEvent, false, false));193 scheduleDispatchEvent(Event::create(eventNames().closeEvent, false, false)); 193 194 break; 194 195 default: … … 202 203 return; 203 204 204 dispatchEvent(MessageEvent::create(text));205 scheduleDispatchEvent(MessageEvent::create(text)); 205 206 } 206 207 … … 216 217 if (m_binaryType == BinaryTypeArrayBuffer) { 217 218 RefPtr<ArrayBuffer> buffer = ArrayBuffer::create(data, dataLength); 218 dispatchEvent(MessageEvent::create(buffer.release()));219 scheduleDispatchEvent(MessageEvent::create(buffer.release())); 219 220 return; 220 221 } … … 227 228 return; 228 229 229 dispatchEvent(Event::create(eventNames().errorEvent, false, false));230 scheduleDispatchEvent(Event::create(eventNames().errorEvent, false, false)); 230 231 } 231 232 … … 263 264 } 264 265 266 void RTCDataChannel::scheduleDispatchEvent(PassRefPtr<Event> event) 267 { 268 m_scheduledEvents.append(event); 269 270 if (!m_scheduledEventTimer.isActive()) 271 m_scheduledEventTimer.startOneShot(0); 272 } 273 274 void RTCDataChannel::scheduledEventTimerFired(Timer<RTCDataChannel>*) 275 { 276 if (m_stopped) 277 return; 278 279 Vector<RefPtr<Event> > events; 280 events.swap(m_scheduledEvents); 281 282 Vector<RefPtr<Event> >::iterator it = events.begin(); 283 for (; it != events.end(); ++it) 284 dispatchEvent((*it).release()); 285 286 events.clear(); 287 } 288 265 289 } // namespace WebCore 266 290 -
trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h
r131372 r134207 31 31 #include "EventTarget.h" 32 32 #include "RTCDataChannelDescriptor.h" 33 #include "Timer.h" 33 34 #include <wtf/RefCounted.h> 34 35 … … 79 80 RTCDataChannel(ScriptExecutionContext*, RTCPeerConnectionHandler*, PassRefPtr<RTCDataChannelDescriptor>); 80 81 82 void scheduleDispatchEvent(PassRefPtr<Event>); 83 void scheduledEventTimerFired(Timer<RTCDataChannel>*); 84 81 85 // EventTarget 82 86 virtual EventTargetData* eventTargetData(); … … 104 108 // Not owned by this class. 105 109 RTCPeerConnectionHandler* m_handler; 110 111 Timer<RTCDataChannel> m_scheduledEventTimer; 112 Vector<RefPtr<Event> > m_scheduledEvents; 106 113 }; 107 114 -
trunk/Source/WebCore/platform/chromium/support/WebRTCDataChannel.cpp
r131494 r134207 107 107 } 108 108 109 void WebRTCDataChannel::setBufferedAmount(unsigned long bufferedAmount) 109 void WebRTCDataChannel::setBufferedAmount(unsigned long bufferedAmount) const 110 110 { 111 111 ASSERT(!isNull()); … … 113 113 } 114 114 115 void WebRTCDataChannel::readyStateChanged(ReadyState state) 115 void WebRTCDataChannel::readyStateChanged(ReadyState state) const 116 116 { 117 117 ASSERT(!isNull()); … … 119 119 } 120 120 121 void WebRTCDataChannel::dataArrived(const WebString& data) 121 void WebRTCDataChannel::dataArrived(const WebString& data) const 122 122 { 123 123 ASSERT(!isNull()); … … 125 125 } 126 126 127 void WebRTCDataChannel::dataArrived(const char* data, size_t dataLength) 127 void WebRTCDataChannel::dataArrived(const char* data, size_t dataLength) const 128 128 { 129 129 ASSERT(!isNull()); … … 131 131 } 132 132 133 void WebRTCDataChannel::error() 133 void WebRTCDataChannel::error() const 134 134 { 135 135 ASSERT(!isNull()); -
trunk/Tools/ChangeLog
r134203 r134207 1 2012-11-12 Tommy Widenflycht <tommyw@google.com> 2 3 MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state 4 https://bugs.webkit.org/show_bug.cgi?id=101751 5 6 Reviewed by Adam Barth. 7 8 Makes the data channel mocks to be synchronous instead of asynchronous to be able to 9 properly test RTCDataChannel event handling. 10 11 * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: 12 (MockWebRTCPeerConnectionHandler::sendStringData): 13 (MockWebRTCPeerConnectionHandler::sendRawData): 14 1 15 2012-11-12 Jochen Eisinger <jochen@chromium.org> 2 16 -
trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp
r133626 r134207 352 352 return false; 353 353 354 postTask(new StringDataTask(this, dataChannel, data));354 dataChannel.dataArrived(data); 355 355 return true; 356 356 } … … 361 361 return false; 362 362 363 postTask(new CharPtrDataTask(this, dataChannel, data, length));363 dataChannel.dataArrived(data, length); 364 364 return true; 365 365 }
Note: See TracChangeset
for help on using the changeset viewer.