| Index: modules/mediastream/RTCPeerConnection.idl
|
| diff --git a/modules/mediastream/RTCPeerConnection.idl b/modules/mediastream/RTCPeerConnection.idl
|
| index fa5494606e720f8f19b2043bc0492e96f623dd77..8938088df476b4e0f7689ce1a310af3399f6d1e4 100644
|
| --- a/modules/mediastream/RTCPeerConnection.idl
|
| +++ b/modules/mediastream/RTCPeerConnection.idl
|
| @@ -28,56 +28,106 @@
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
|
|
| +// https://w3c.github.io/webrtc-pc/#state-definitions
|
| +
|
| +enum RTCSignalingState {
|
| + "stable",
|
| + "have-local-offer",
|
| + "have-remote-offer",
|
| + "have-local-pranswer",
|
| + "have-remote-pranswer",
|
| + "closed"
|
| +};
|
| +
|
| +enum RTCIceGatheringState {
|
| + "new",
|
| + "gathering",
|
| + "complete"
|
| +};
|
| +
|
| +enum RTCIceConnectionState {
|
| + "new",
|
| + "checking",
|
| + "connected",
|
| + "completed",
|
| + "failed",
|
| + "disconnected",
|
| + "closed"
|
| +};
|
| +
|
| +// https://w3c.github.io/webrtc-pc/#interface-definition
|
| +
|
| +// TODO(guidou): Many types are of the wrong type in this interface:
|
| +// * Dictionary -> specific dictionary types like RTCConfiguration
|
| +// * VoidCallback -> VoidFunction
|
| [
|
| GarbageCollected,
|
| - ActiveDOMObject,
|
| + DependentLifetime,
|
| + // TODO(guidou): There should only be one constructor argument, and it
|
| + // should be optional.
|
| Constructor(Dictionary rtcConfiguration, optional Dictionary mediaConstraints),
|
| ConstructorCallWith=ExecutionContext,
|
| NoInterfaceObject,
|
| RaisesException=Constructor,
|
| ] interface RTCPeerConnection : EventTarget {
|
| - [RaisesException] void createOffer(RTCSessionDescriptionCallback successCallback, [Default=Undefined] optional RTCErrorCallback failureCallback, optional Dictionary rtcOfferOptions);
|
| -
|
| - [RaisesException] void createAnswer(RTCSessionDescriptionCallback successCallback, [Default=Undefined] optional RTCErrorCallback failureCallback, optional Dictionary mediaConstraints);
|
| -
|
| - [RaisesException] void setLocalDescription(RTCSessionDescription description, [Default=Undefined] optional VoidCallback successCallback, [Default=Undefined] optional RTCErrorCallback failureCallback);
|
| - [RaisesException=Getter] readonly attribute RTCSessionDescription localDescription;
|
| -
|
| - [RaisesException] void setRemoteDescription(RTCSessionDescription description, [Default=Undefined] optional VoidCallback successCallback, [Default=Undefined] optional RTCErrorCallback failureCallback);
|
| - [RaisesException=Getter] readonly attribute RTCSessionDescription remoteDescription;
|
| -
|
| - readonly attribute DOMString signalingState;
|
| -
|
| - [RaisesException] void updateIce(optional Dictionary configuration, optional Dictionary mediaConstraints);
|
| -
|
| - // DEPRECATED
|
| - [RaisesException] void addIceCandidate(RTCIceCandidate candidate);
|
| -
|
| - [RaisesException] void addIceCandidate(RTCIceCandidate candidate, VoidCallback successCallback, RTCErrorCallback failureCallback);
|
| -
|
| - readonly attribute DOMString iceGatheringState;
|
| - readonly attribute DOMString iceConnectionState;
|
| + // Promise<RTCSessionDescription> createOffer(optional RTCOfferOptions options);
|
| + // Promise<RTCSessionDescription> createAnswer(optional RTCAnswerOptions options);
|
| + [CallWith=ScriptState] Promise<void> setLocalDescription(RTCSessionDescriptionInit description);
|
| + readonly attribute RTCSessionDescription? localDescription;
|
| + // readonly attribute RTCSessionDescription? currentLocalDescription;
|
| + // readonly attribute RTCSessionDescription? pendingLocalDescription;
|
| + [CallWith=ScriptState] Promise<void> setRemoteDescription(RTCSessionDescriptionInit description);
|
| + readonly attribute RTCSessionDescription? remoteDescription;
|
| + // readonly attribute RTCSessionDescription? currentRemoteDescription;
|
| + // readonly attribute RTCSessionDescription? pendingRemoteDescription;
|
| + [CallWith=ScriptState] Promise<void> addIceCandidate ((RTCIceCandidateInit or RTCIceCandidate) candidate);
|
| + readonly attribute RTCSignalingState signalingState;
|
| + readonly attribute RTCIceGatheringState iceGatheringState;
|
| + readonly attribute RTCIceConnectionState iceConnectionState;
|
| + // readonly attribute boolean? canTrickleIceCandidates;
|
| + // RTCConfiguration getConfiguration();
|
| + // void setConfiguration(RTCConfiguration configuration);
|
| + // TODO(guidou): close() should never throw an exception.
|
| + [RaisesException] void close();
|
| + attribute EventHandler onnegotiationneeded;
|
| + attribute EventHandler onicecandidate;
|
| + attribute EventHandler onsignalingstatechange;
|
| + attribute EventHandler oniceconnectionstatechange;
|
| + // attribute EventHandler onicegatheringstatechange;
|
| +
|
| + // https://w3c.github.io/webrtc-pc/#legacy-interface-extensions
|
| + // These methods return or will be changed to return Promise<void> because
|
| + // having Promise-based versions requires that all overloads return Promises.
|
| + [CallWith=ExecutionContext, RaisesException] void createOffer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional Dictionary rtcOfferOptions);
|
| + // TODO(guidou): There should be no mediaConstraints argument.
|
| + [CallWith=ExecutionContext, RaisesException] void createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional Dictionary mediaConstraints);
|
| + [CallWith=ScriptState] Promise<void> setLocalDescription(RTCSessionDescription description, VoidCallback successCallback, [Default=Undefined] optional RTCPeerConnectionErrorCallback failureCallback);
|
| + // TODO(guidou): The failureCallback argument should be non-optional.
|
| + [CallWith=ScriptState] Promise<void> setRemoteDescription(RTCSessionDescription description, VoidCallback successCallback, [Default=Undefined] optional RTCPeerConnectionErrorCallback failureCallback);
|
| + [CallWith=ScriptState] Promise<void> addIceCandidate(RTCIceCandidate candidate, VoidCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
| + // TODO(guidou): The selector argument should the first (nullable,
|
| + // non-optional) argument, and there should be a third failureCallback
|
| + // argument.
|
| + [CallWith=ExecutionContext, LegacyInterfaceTypeChecking] void getStats(RTCStatsCallback successCallback, [Default=Undefined] optional MediaStreamTrack selector);
|
| +
|
| + // https://w3c.github.io/webrtc-pc/#peer-to-peer-data-api
|
| + // TODO(guidou): The label argument should have [TreatNullAs=EmptyString]
|
| + // and be non-nullable.
|
| + [RaisesException] RTCDataChannel createDataChannel([TreatUndefinedAs=NullString] DOMString? label, optional Dictionary options);
|
| + attribute EventHandler ondatachannel;
|
|
|
| + // Non-standard or removed from the spec:
|
| + [CallWith=ExecutionContext, RaisesException] void updateIce(optional Dictionary configuration, optional Dictionary mediaConstraints);
|
| sequence<MediaStream> getLocalStreams();
|
| sequence<MediaStream> getRemoteStreams();
|
| MediaStream getStreamById(DOMString streamId);
|
| -
|
| - [TypeChecking=Interface, RaisesException] void addStream(MediaStream? stream, optional Dictionary mediaConstraints);
|
| - [TypeChecking=Interface, RaisesException] void removeStream(MediaStream? stream);
|
| -
|
| - void getStats(RTCStatsCallback successCallback, [Default=Undefined] optional MediaStreamTrack selector);
|
| -
|
| - [RaisesException] RTCDataChannel createDataChannel([TreatUndefinedAs=NullString] DOMString? label, optional Dictionary options);
|
| -
|
| + [CallWith=ExecutionContext, RaisesException] void addStream(MediaStream? stream, optional Dictionary mediaConstraints);
|
| + [RaisesException] void removeStream(MediaStream? stream);
|
| [RaisesException] RTCDTMFSender createDTMFSender(MediaStreamTrack track);
|
| -
|
| - [RaisesException] void close();
|
| -
|
| - attribute EventHandler onnegotiationneeded;
|
| - attribute EventHandler onicecandidate;
|
| - attribute EventHandler onsignalingstatechange;
|
| attribute EventHandler onaddstream;
|
| attribute EventHandler onremovestream;
|
| - attribute EventHandler oniceconnectionstatechange;
|
| - attribute EventHandler ondatachannel;
|
| +
|
| + // Certificate management
|
| + // http://w3c.github.io/webrtc-pc/#sec.cert-mgmt
|
| + [RaisesException, CallWith=ScriptState] static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm);
|
| };
|
|
|