RTCPeerConnection.idl [plain text]
[
ActiveDOMObject,
Conditional=WEB_RTC,
ConstructorCallWith=ScriptExecutionContext,
JSBuiltinConstructor,
InterfaceName=webkitRTCPeerConnection,
] interface RTCPeerConnection : EventTarget {
[PrivateIdentifier, CallWith=Document, RaisesException] void initializeWith(Dictionary parameters);
[PrivateIdentifier, PublicIdentifier] sequence<RTCRtpSender> getSenders();
sequence<RTCRtpReceiver> getReceivers();
sequence<RTCRtpTransceiver> getTransceivers();
[PrivateIdentifier, PublicIdentifier, StrictTypeChecking, RaisesException] RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
[PrivateIdentifier, PublicIdentifier, StrictTypeChecking, RaisesException] void removeTrack(RTCRtpSender sender);
[StrictTypeChecking, RaisesException] RTCRtpTransceiver addTransceiver(MediaStreamTrack track, optional RTCRtpTransceiverInit init);
[StrictTypeChecking, RaisesException] RTCRtpTransceiver addTransceiver(DOMString kind, optional RTCRtpTransceiverInit init);
[JSBuiltin] sequence<MediaStream> getLocalStreams();
[PrivateIdentifier, PublicIdentifier] sequence<MediaStream> getRemoteStreams();
[JSBuiltin] MediaStream getStreamById(DOMString streamId);
[JSBuiltin] void addStream(MediaStream stream);
[JSBuiltin] void removeStream(MediaStream stream);
[JSBuiltin] Promise createOffer(optional Dictionary offerOptions);
[JSBuiltin] Promise createAnswer(optional Dictionary answerOptions);
[JSBuiltin] Promise setLocalDescription(RTCSessionDescription description);
readonly attribute RTCSessionDescription localDescription;
readonly attribute RTCSessionDescription currentLocalDescription;
readonly attribute RTCSessionDescription pendingLocalDescription;
[JSBuiltin] Promise setRemoteDescription(RTCSessionDescription description);
readonly attribute RTCSessionDescription remoteDescription;
readonly attribute RTCSessionDescription currentRemoteDescription;
readonly attribute RTCSessionDescription pendingRemoteDescription;
readonly attribute DOMString signalingState;
[JSBuiltin] Promise addIceCandidate(RTCIceCandidate candidate);
readonly attribute DOMString iceGatheringState;
readonly attribute DOMString iceConnectionState;
RTCConfiguration getConfiguration();
[RaisesException] void setConfiguration(Dictionary configuration);
[JSBuiltin] Promise getStats(optional MediaStreamTrack? selector = null);
[PrivateIdentifier] Promise queuedCreateOffer(optional Dictionary offerOptions);
[PrivateIdentifier] Promise queuedCreateAnswer(optional Dictionary answerOptions);
[PrivateIdentifier] Promise queuedSetLocalDescription(RTCSessionDescription description);
[PrivateIdentifier] Promise queuedSetRemoteDescription(RTCSessionDescription description);
[PrivateIdentifier] Promise queuedAddIceCandidate(RTCIceCandidate candidate);
[PrivateIdentifier] Promise privateGetStats(MediaStreamTrack? selector);
[RaisesException] RTCDataChannel createDataChannel([TreatNullAs=EmptyString] DOMString label, optional Dictionary options);
void close();
attribute EventHandler onnegotiationneeded;
attribute EventHandler onicecandidate;
attribute EventHandler onsignalingstatechange;
attribute EventHandler ontrack;
attribute EventHandler oniceconnectionstatechange;
attribute EventHandler onicegatheringstatechange;
attribute EventHandler ondatachannel;
attribute EventHandler onaddstream;
};
enum RTCRtpTransceiverDirection { "sendrecv", "sendonly", "recvonly", "inactive" };
dictionary RTCRtpTransceiverInit {
RTCRtpTransceiverDirection direction = "sendrecv";
};