aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webidls/RTCPeerConnection.webidl
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-01-26 08:29:10 -0800
committerManish Goregaokar <manishsmail@gmail.com>2019-01-28 22:21:42 -0800
commit2dd69d0cb05b47f7035a287aba21f93d1cb164ed (patch)
tree7f06d1e87b0e9a2babc3c1b6e60d7f3930596166 /components/script/dom/webidls/RTCPeerConnection.webidl
parentcbe505ba54d0097ab060555ca8cf1984971ea1e8 (diff)
downloadservo-2dd69d0cb05b47f7035a287aba21f93d1cb164ed.tar.gz
servo-2dd69d0cb05b47f7035a287aba21f93d1cb164ed.zip
Add empty RTCPeerConnection interface
Diffstat (limited to 'components/script/dom/webidls/RTCPeerConnection.webidl')
-rw-r--r--components/script/dom/webidls/RTCPeerConnection.webidl77
1 files changed, 77 insertions, 0 deletions
diff --git a/components/script/dom/webidls/RTCPeerConnection.webidl b/components/script/dom/webidls/RTCPeerConnection.webidl
new file mode 100644
index 00000000000..ec4ec83028c
--- /dev/null
+++ b/components/script/dom/webidls/RTCPeerConnection.webidl
@@ -0,0 +1,77 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+// https://w3c.github.io/webrtc-pc/#interface-definition
+
+[Constructor(optional RTCConfiguration configuration),
+ Exposed=Window, Pref="dom.webrtc.enabled"]
+interface RTCPeerConnection : EventTarget {
+ // Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options);
+ // Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options);
+ // Promise<void> setLocalDescription(RTCSessionDescriptionInit description);
+ // readonly attribute RTCSessionDescription? localDescription;
+ // readonly attribute RTCSessionDescription? currentLocalDescription;
+ // readonly attribute RTCSessionDescription? pendingLocalDescription;
+ // Promise<void> setRemoteDescription(RTCSessionDescriptionInit description);
+ // readonly attribute RTCSessionDescription? remoteDescription;
+ // readonly attribute RTCSessionDescription? currentRemoteDescription;
+ // readonly attribute RTCSessionDescription? pendingRemoteDescription;
+ // Promise<void> addIceCandidate(RTCIceCandidateInit candidate);
+ // readonly attribute RTCSignalingState signalingState;
+ // readonly attribute RTCIceGatheringState iceGatheringState;
+ // readonly attribute RTCIceConnectionState iceConnectionState;
+ // readonly attribute RTCPeerConnectionState connectionState;
+ // readonly attribute boolean? canTrickleIceCandidates;
+ // static sequence<RTCIceServer> getDefaultIceServers();
+ // RTCConfiguration getConfiguration();
+ // void setConfiguration(RTCConfiguration configuration);
+ // void close();
+ // attribute EventHandler onnegotiationneeded;
+ // attribute EventHandler onicecandidate;
+ // attribute EventHandler onicecandidateerror;
+ // attribute EventHandler onsignalingstatechange;
+ // attribute EventHandler oniceconnectionstatechange;
+ // attribute EventHandler onicegatheringstatechange;
+ // attribute EventHandler onconnectionstatechange;
+};
+
+dictionary RTCConfiguration {
+ sequence<RTCIceServer> iceServers;
+ RTCIceTransportPolicy iceTransportPolicy = "all";
+ RTCBundlePolicy bundlePolicy = "balanced";
+ RTCRtcpMuxPolicy rtcpMuxPolicy = "require";
+ DOMString peerIdentity;
+ // sequence<RTCCertificate> certificates;
+ [EnforceRange]
+ octet iceCandidatePoolSize = 0;
+};
+
+enum RTCIceTransportPolicy {
+ "relay",
+ "all"
+};
+
+enum RTCBundlePolicy {
+ "balanced",
+ "max-compat",
+ "max-bundle"
+};
+
+enum RTCRtcpMuxPolicy {
+ // At risk due to lack of implementers' interest.
+ "negotiate",
+ "require"
+};
+
+dictionary RTCIceServer {
+ required (DOMString or sequence<DOMString>) urls;
+ DOMString username;
+ DOMString /*(DOMString or RTCOAuthCredential)*/ credential;
+ RTCIceCredentialType credentialType = "password";
+};
+
+enum RTCIceCredentialType {
+ "password",
+ "oauth"
+};