Introduce a minimal RTCPeerConnection together with Dictionary changes
authortommyw@google.com <tommyw@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 31 Jul 2012 11:59:37 +0000 (11:59 +0000)
committertommyw@google.com <tommyw@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 31 Jul 2012 11:59:37 +0000 (11:59 +0000)
commit33a782ba0c26a5f8fa9d7738fbf4a3c7096c156e
treea76f3dff18fb5884c2fc68b9aec1be87592a50d7
parent16a581f39d9b8ea69e2572dbdde2bda22afeeb2a
Introduce a minimal RTCPeerConnection together with Dictionary changes
https://bugs.webkit.org/show_bug.cgi?id=92380

Reviewed by Kentaro Hara.

Source/WebCore:

This patch introduces a shell RTCPeerConnection together with neccecary changes to
Dictionary.

The W3C specification can be found here:
http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcpeerconnection

Since Dictionaries can't be fully copied around adding
get(const String& name, Vector<Dictionary>& result)
isn't feasible so I have added a new ArrayValue class.

Test: fast/mediastream/RTCPeerConnection.html

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/DOMWindowMediaStream.idl:
* Modules/mediastream/RTCPeerConnection.cpp: Added.
(WebCore):
(RTCIceServer):
(WebCore::RTCIceServer::create):
(WebCore::RTCIceServer::~RTCIceServer):
(WebCore::RTCIceServer::uri):
(WebCore::RTCIceServer::credential):
(WebCore::RTCIceServer::RTCIceServer):
(RTCConfiguration):
(WebCore::RTCConfiguration::create):
(WebCore::RTCConfiguration::~RTCConfiguration):
(WebCore::RTCConfiguration::appendServer):
(WebCore::RTCConfiguration::numberOfServers):
(WebCore::RTCConfiguration::server):
(WebCore::RTCConfiguration::RTCConfiguration):
(WebCore::RTCPeerConnection::parseConfiguration):
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::interfaceName):
(WebCore::RTCPeerConnection::scriptExecutionContext):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::eventTargetData):
(WebCore::RTCPeerConnection::ensureEventTargetData):
* Modules/mediastream/RTCPeerConnection.h: Added.
(WebCore):
(RTCPeerConnection):
(WebCore::RTCPeerConnection::refEventTarget):
(WebCore::RTCPeerConnection::derefEventTarget):
* Modules/mediastream/RTCPeerConnection.idl: Added.
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webkitRTCPeerConnectionEnabled):
* bindings/js/ArrayValue.cpp: Added.
(WebCore):
(WebCore::ArrayValue::ArrayValue):
(WebCore::ArrayValue::operator=):
(WebCore::ArrayValue::isUndefinedOrNull):
(WebCore::ArrayValue::length):
(WebCore::ArrayValue::get):
* bindings/js/ArrayValue.h: Added.
(WebCore):
(ArrayValue):
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
(WebCore):
* bindings/js/JSDictionary.h:
(WebCore):
* bindings/v8/ArrayValue.cpp: Added.
(WebCore):
(WebCore::ArrayValue::operator=):
(WebCore::ArrayValue::isUndefinedOrNull):
(WebCore::ArrayValue::length):
(WebCore::ArrayValue::get):
* bindings/v8/ArrayValue.h: Added.
(WebCore):
(ArrayValue):
(WebCore::ArrayValue::ArrayValue):
(WebCore::ArrayValue::~ArrayValue):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
(WebCore):
* bindings/v8/Dictionary.h:
(WebCore):
(Dictionary):
* dom/EventTargetFactory.in:

LayoutTests:

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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124193 268f45cc-cd09-0410-ab3c-d52691b4dbfc
26 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt [new file with mode: 0644]
LayoutTests/fast/mediastream/RTCPeerConnection.html [new file with mode: 0644]
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.list.am
Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl
Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp [new file with mode: 0644]
Source/WebCore/Modules/mediastream/RTCPeerConnection.h [new file with mode: 0644]
Source/WebCore/Modules/mediastream/RTCPeerConnection.idl [new file with mode: 0644]
Source/WebCore/Target.pri
Source/WebCore/UseJSC.cmake
Source/WebCore/WebCore.gypi
Source/WebCore/WebCore.vcproj/WebCore.vcproj
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h
Source/WebCore/bindings/js/ArrayValue.cpp [new file with mode: 0644]
Source/WebCore/bindings/js/ArrayValue.h [new file with mode: 0644]
Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
Source/WebCore/bindings/js/JSDictionary.cpp
Source/WebCore/bindings/js/JSDictionary.h
Source/WebCore/bindings/v8/ArrayValue.cpp [new file with mode: 0644]
Source/WebCore/bindings/v8/ArrayValue.h [new file with mode: 0644]
Source/WebCore/bindings/v8/Dictionary.cpp
Source/WebCore/bindings/v8/Dictionary.h
Source/WebCore/dom/EventTargetFactory.in