OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
97 | 97 |
98 // https://w3c.github.io/webrtc-pc/#legacy-interface-extensions | 98 // https://w3c.github.io/webrtc-pc/#legacy-interface-extensions |
99 // These methods return Promise<void> because having Promise-based versions requires that all overloads return Promises. | 99 // These methods return Promise<void> because having Promise-based versions requires that all overloads return Promises. |
100 [CallWith=ScriptState] Promise<void> createOffer(RTCSessionDescriptionCallba ck successCallback, RTCPeerConnectionErrorCallback failureCallback, optional Dic tionary rtcOfferOptions); | 100 [CallWith=ScriptState] Promise<void> createOffer(RTCSessionDescriptionCallba ck successCallback, RTCPeerConnectionErrorCallback failureCallback, optional Dic tionary rtcOfferOptions); |
101 // TODO(guidou): There should be no mediaConstraints argument. | 101 // TODO(guidou): There should be no mediaConstraints argument. |
102 [CallWith=ScriptState] Promise<void> createAnswer(RTCSessionDescriptionCallb ack successCallback, RTCPeerConnectionErrorCallback failureCallback, optional Di ctionary mediaConstraints); | 102 [CallWith=ScriptState] Promise<void> createAnswer(RTCSessionDescriptionCallb ack successCallback, RTCPeerConnectionErrorCallback failureCallback, optional Di ctionary mediaConstraints); |
103 [CallWith=ScriptState] Promise<void> setLocalDescription(RTCSessionDescripti onInit description, VoidCallback successCallback, [Default=Undefined] optional R TCPeerConnectionErrorCallback failureCallback); | 103 [CallWith=ScriptState] Promise<void> setLocalDescription(RTCSessionDescripti onInit description, VoidCallback successCallback, [Default=Undefined] optional R TCPeerConnectionErrorCallback failureCallback); |
104 // TODO(guidou): The failureCallback argument should be non-optional. | 104 // TODO(guidou): The failureCallback argument should be non-optional. |
105 [CallWith=ScriptState] Promise<void> setRemoteDescription(RTCSessionDescript ionInit description, VoidCallback successCallback, [Default=Undefined] optional RTCPeerConnectionErrorCallback failureCallback); | 105 [CallWith=ScriptState] Promise<void> setRemoteDescription(RTCSessionDescript ionInit description, VoidCallback successCallback, [Default=Undefined] optional RTCPeerConnectionErrorCallback failureCallback); |
106 [CallWith=ScriptState, MeasureAs=RTCPeerConnectionAddIceCandidateLegacy] Pro mise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, V oidCallback successCallback, RTCPeerConnectionErrorCallback failureCallback); | 106 [CallWith=ScriptState, MeasureAs=RTCPeerConnectionAddIceCandidateLegacy] Pro mise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, V oidCallback successCallback, RTCPeerConnectionErrorCallback failureCallback); |
107 | |
107 // TODO(guidou): The selector argument should the first (nullable, | 108 // TODO(guidou): The selector argument should the first (nullable, |
108 // non-optional) argument, and there should be a third failureCallback | 109 // non-optional) argument, and there should be a third failureCallback |
109 // argument. | 110 // argument. |
110 [CallWith=ExecutionContext, LegacyInterfaceTypeChecking] void getStats(RTCSt atsCallback successCallback, [Default=Undefined] optional MediaStreamTrack selec tor); | 111 // TODO(hbos): WebIDL is not able to distinguish between |
112 // |getStats(RTCStatsCallback)| and |getStats(MediaStreamTrack)| because | |
113 // |RTCStatsCallback| is a callback interface and |MediaStreamTrack| is an | |
114 // interface, see https://heycam.github.io/webidl/#idl-overloading. In order | |
115 // to support both signatures, |getStats(optional any)| is used. In C++ we | |
116 // dispatch to the correct |getStats| function based on the value type. | |
hta - Chromium
2016/07/19 09:56:48
I read heycam to say that an interface is distingu
hbos_chromium
2016/07/19 13:59:35
I might have misinterpreted something. I'm not sur
hbos_chromium
2016/07/20 09:29:48
I've confirmed a second time (crbug.com/629068#c5)
| |
117 // | |
118 // This is a workaround for the desired WebIDL which is: | |
119 // [CallWith=ScriptState] Promise<void> getStats(RTCStatsCallback successCa llback, optional MediaStreamTrack? selector); | |
120 // [CallWith=ScriptState] Promise<RTCStatsReport> getStats(optional MediaSt reamTrack? selector); | |
121 // | |
122 // The plan is to have the promise-based version replace the callback-based | |
123 // version and remove it, then we can use the desired WebIDL and not have to | |
124 // evaluate the value type ourselves in C++. crbug.com/629068, 627816. | |
hta - Chromium
2016/07/19 09:56:48
Can you add UMA counters here while you're at it?
hbos_chromium
2016/07/19 13:59:35
Good idea. I'd rather add and have that reviewed i
hbos_chromium
2016/07/20 11:28:44
I looked into it and the change is just a couple o
| |
125 [CallWith=ScriptState] Promise getStats(optional any value); | |
126 [CallWith=ScriptState] Promise<void> getStats(RTCStatsCallback successCallba ck, MediaStreamTrack? selector); | |
111 | 127 |
112 // https://w3c.github.io/webrtc-pc/#peer-to-peer-data-api | 128 // https://w3c.github.io/webrtc-pc/#peer-to-peer-data-api |
113 // TODO(guidou): The label argument should have [TreatNullAs=EmptyString] | 129 // TODO(guidou): The label argument should have [TreatNullAs=EmptyString] |
114 // and be non-nullable. | 130 // and be non-nullable. |
115 [RaisesException] RTCDataChannel createDataChannel([TreatUndefinedAs=NullStr ing] DOMString? label, optional Dictionary options); | 131 [RaisesException] RTCDataChannel createDataChannel([TreatUndefinedAs=NullStr ing] DOMString? label, optional Dictionary options); |
116 attribute EventHandler ondatachannel; | 132 attribute EventHandler ondatachannel; |
117 | 133 |
118 // Non-standard or removed from the spec: | 134 // Non-standard or removed from the spec: |
119 [CallWith=ExecutionContext, RaisesException] void updateIce(optional Diction ary configuration, optional Dictionary mediaConstraints); | 135 [CallWith=ExecutionContext, RaisesException] void updateIce(optional Diction ary configuration, optional Dictionary mediaConstraints); |
120 sequence<MediaStream> getLocalStreams(); | 136 sequence<MediaStream> getLocalStreams(); |
121 sequence<MediaStream> getRemoteStreams(); | 137 sequence<MediaStream> getRemoteStreams(); |
122 MediaStream getStreamById(DOMString streamId); | 138 MediaStream getStreamById(DOMString streamId); |
123 [CallWith=ExecutionContext, RaisesException] void addStream(MediaStream? str eam, optional Dictionary mediaConstraints); | 139 [CallWith=ExecutionContext, RaisesException] void addStream(MediaStream? str eam, optional Dictionary mediaConstraints); |
124 [RaisesException] void removeStream(MediaStream? stream); | 140 [RaisesException] void removeStream(MediaStream? stream); |
125 [RaisesException] RTCDTMFSender createDTMFSender(MediaStreamTrack track); | 141 [RaisesException] RTCDTMFSender createDTMFSender(MediaStreamTrack track); |
126 attribute EventHandler onaddstream; | 142 attribute EventHandler onaddstream; |
127 attribute EventHandler onremovestream; | 143 attribute EventHandler onremovestream; |
128 | 144 |
129 // Certificate management | 145 // Certificate management |
130 // http://w3c.github.io/webrtc-pc/#sec.cert-mgmt | 146 // http://w3c.github.io/webrtc-pc/#sec.cert-mgmt |
131 [RaisesException, CallWith=ScriptState] static Promise<RTCCertificate> gener ateCertificate(AlgorithmIdentifier keygenAlgorithm); | 147 [RaisesException, CallWith=ScriptState] static Promise<RTCCertificate> gener ateCertificate(AlgorithmIdentifier keygenAlgorithm); |
132 }; | 148 }; |
OLD | NEW |