MediaStream API: Add the chromium API for RTCDataChannel
https://bugs.webkit.org/show_bug.cgi?id=99435

Reviewed by Adam Barth.

Source/Platform:

Adding WebRTCDataChannel.

* Platform.gypi:
* chromium/public/WebRTCDataChannel.h: Added.
(WebCore):
(WebKit):
(WebRTCDataChannel):
(ExtraData):
(WebKit::WebRTCDataChannel::ExtraData::~ExtraData):
(WebKit::WebRTCDataChannel::WebRTCDataChannel):
(WebKit::WebRTCDataChannel::~WebRTCDataChannel):
(WebKit::WebRTCDataChannel::operator=):
(WebKit::WebRTCDataChannel::isNull):
* chromium/public/WebRTCPeerConnectionHandler.h:
(WebKit):
(WebRTCPeerConnectionHandler):
(WebKit::WebRTCPeerConnectionHandler::openDataChannel):
(WebKit::WebRTCPeerConnectionHandler::sendStringData):
(WebKit::WebRTCPeerConnectionHandler::sendRawData):
(WebKit::WebRTCPeerConnectionHandler::closeDataChannel):

Source/WebCore:

Adding WebRTCDataChannel.

Test: fast/mediastream/RTCPeerConnection-datachannel.html

* WebCore.gypi:
* platform/chromium/support/WebRTCDataChannel.cpp: Added.
(WebKit):
(ExtraDataContainer):
(WebKit::ExtraDataContainer::ExtraDataContainer):
(WebKit::ExtraDataContainer::extraData):
(WebKit::WebRTCDataChannel::WebRTCDataChannel):
(WebKit::WebRTCDataChannel::initialize):
(WebKit::WebRTCDataChannel::assign):
(WebKit::WebRTCDataChannel::reset):
(WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
(WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
(WebKit::WebRTCDataChannel::extraData):
(WebKit::WebRTCDataChannel::setExtraData):
(WebKit::WebRTCDataChannel::label):
(WebKit::WebRTCDataChannel::reliable):
(WebKit::WebRTCDataChannel::setBufferedAmount):
(WebKit::WebRTCDataChannel::readyStateChanged):
(WebKit::WebRTCDataChannel::dataArrived):
(WebKit::WebRTCDataChannel::error):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
(WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
(WebCore):
(WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
(WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
(WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):

Source/WebKit/chromium:

Adding checks for RTCDataChannel.

* src/AssertMatchingEnums.cpp:

Tools:

Adding mock support for WebRTCDataChannel.

* DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:
(StringDataTask):
(StringDataTask::StringDataTask):
(CharPtrDataTask):
(CharPtrDataTask::CharPtrDataTask):
(DataChannelReadyStateTask):
(DataChannelReadyStateTask::DataChannelReadyStateTask):
(RTCPeerConnectionReadyStateTask):
(RTCPeerConnectionReadyStateTask::RTCPeerConnectionReadyStateTask):
(MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler):
(MockWebRTCPeerConnectionHandler::initialize):
(MockWebRTCPeerConnectionHandler::stop):
(MockWebRTCPeerConnectionHandler::openDataChannel):
(MockWebRTCPeerConnectionHandler::closeDataChannel):
(MockWebRTCPeerConnectionHandler::sendStringData):
(MockWebRTCPeerConnectionHandler::sendRawData):
* DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h:
(MockWebRTCPeerConnectionHandler):

LayoutTests:

Adding tests for RTCDataChannel.

* fast/mediastream/RTCPeerConnection-datachannel-expected.txt: Added.
* fast/mediastream/RTCPeerConnection-datachannel.html: Added.


git-svn-id: https://svn.webkit.org/repository/webkit/trunk/Source/Platform/chromium/public@131494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2 files changed
tree: 72150a153b7613b6fbcdd2a2a17fc5f3cc546b3a
  1. android/
  2. linux/
  3. mac/
  4. win/
  5. Platform.h
  6. WebAnimation.h
  7. WebAnimationCurve.h
  8. WebAnimationDelegate.h
  9. WebAudioBus.h
  10. WebAudioDevice.h
  11. WebBlobData.h
  12. WebBlobRegistry.h
  13. WebCanvas.h
  14. WebClipboard.h
  15. WebColor.h
  16. WebCommon.h
  17. WebCompositor.h
  18. WebCompositorFrame.h
  19. WebCompositorFrameAck.h
  20. WebCompositorOutputSurface.h
  21. WebCompositorOutputSurfaceClient.h
  22. WebCompositorSoftwareOutputDevice.h
  23. WebCompositorSupport.h
  24. WebCompositorTransferableResourceList.h
  25. WebContentLayer.h
  26. WebContentLayerClient.h
  27. WebCookie.h
  28. WebCookieJar.h
  29. WebCString.h
  30. WebData.h
  31. WebDelegatedRendererLayer.h
  32. WebDragData.h
  33. WebExternalTextureLayer.h
  34. WebExternalTextureLayerClient.h
  35. WebFileInfo.h
  36. WebFileSystem.h
  37. WebFileUtilities.h
  38. WebFilterOperation.h
  39. WebFilterOperations.h
  40. WebFlingAnimator.h
  41. WebFloatAnimationCurve.h
  42. WebFloatKeyframe.h
  43. WebFloatPoint.h
  44. WebFloatQuad.h
  45. WebFloatRect.h
  46. WebGamepad.h
  47. WebGamepads.h
  48. WebGraphicsContext3D.h
  49. WebGraphicsMemoryAllocation.h
  50. WebHTTPBody.h
  51. WebHTTPHeaderVisitor.h
  52. WebHTTPLoadInfo.h
  53. WebICECandidateDescriptor.h
  54. WebICEOptions.h
  55. WebImage.h
  56. WebImageLayer.h
  57. WebInputHandler.h
  58. WebInputHandlerClient.h
  59. WebIOSurfaceLayer.h
  60. WebLayer.h
  61. WebLayerScrollClient.h
  62. WebLayerTreeView.h
  63. WebLayerTreeViewClient.h
  64. WebLocalizedString.h
  65. WebMediaConstraints.h
  66. WebMediaHints.h
  67. WebMediaStreamCenter.h
  68. WebMediaStreamCenterClient.h
  69. WebMediaStreamComponent.h
  70. WebMediaStreamDescriptor.h
  71. WebMediaStreamSource.h
  72. WebMediaStreamSourcesRequest.h
  73. WebMessagePortChannel.h
  74. WebMessagePortChannelClient.h
  75. WebMimeRegistry.h
  76. WebNonCopyable.h
  77. WebPeerConnection00Handler.h
  78. WebPeerConnection00HandlerClient.h
  79. WebPeerConnectionHandler.h
  80. WebPeerConnectionHandlerClient.h
  81. WebPoint.h
  82. WebPrerender.h
  83. WebPrerenderingSupport.h
  84. WebPrivateOwnPtr.h
  85. WebPrivatePtr.h
  86. WebRect.h
  87. WebReferrerPolicy.h
  88. WebRenderingStats.h
  89. WebRTCConfiguration.h
  90. WebRTCDataChannel.h
  91. WebRTCICECandidate.h
  92. WebRTCPeerConnectionHandler.h
  93. WebRTCPeerConnectionHandlerClient.h
  94. WebRTCSessionDescription.h
  95. WebRTCSessionDescriptionRequest.h
  96. WebRTCStatsRequest.h
  97. WebRTCStatsResponse.h
  98. WebRTCVoidRequest.h
  99. WebScrollbar.h
  100. WebScrollbarLayer.h
  101. WebScrollbarThemeGeometry.h
  102. WebScrollbarThemePainter.h
  103. WebSessionDescriptionDescriptor.h
  104. WebSharedGraphicsContext3D.h
  105. WebSize.h
  106. WebSocketStreamError.h
  107. WebSocketStreamHandle.h
  108. WebSocketStreamHandleClient.h
  109. WebSolidColorLayer.h
  110. WebStorageArea.h
  111. WebStorageNamespace.h
  112. WebString.h
  113. WebThread.h
  114. WebThreadSafeData.h
  115. WebTransformAnimationCurve.h
  116. WebTransformationMatrix.h
  117. WebTransformKeyframe.h
  118. WebTransformOperations.h
  119. WebURL.h
  120. WebURLError.h
  121. WebURLLoader.h
  122. WebURLLoaderClient.h
  123. WebURLLoadTiming.h
  124. WebURLRequest.h
  125. WebURLResponse.h
  126. WebVector.h
  127. WebVideoFrame.h
  128. WebVideoFrameProvider.h
  129. WebVideoLayer.h
  130. WebWorkerRunLoop.h