diff options
Diffstat (limited to 'dom/media/webrtc/PMediaTransport.ipdl')
-rw-r--r-- | dom/media/webrtc/PMediaTransport.ipdl | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/dom/media/webrtc/PMediaTransport.ipdl b/dom/media/webrtc/PMediaTransport.ipdl new file mode 100644 index 0000000000..b754d34ad2 --- /dev/null +++ b/dom/media/webrtc/PMediaTransport.ipdl @@ -0,0 +1,105 @@ +/* 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 http://mozilla.org/MPL/2.0/. */ + +include protocol PBackground; + +#ifdef MOZ_WEBRTC +include WebrtcProxyConfig; + +// ParamTraits stuff for generated code and other classes we don't want to change +include "mozilla/net/NrIceStunAddrMessageUtils.h"; +include "mozilla/media/webrtc/WebrtcIPCTraits.h"; +using mozilla::StringVector from "mozilla/media/webrtc/WebrtcIPCTraits.h"; +using mozilla::CandidateInfo from "mozilla/media/webrtc/WebrtcIPCTraits.h"; +using mozilla::DtlsDigestList from "mozilla/media/webrtc/WebrtcIPCTraits.h"; +using std::string from "string"; +using struct mozilla::dom::RTCStatsCollection from "mozilla/dom/RTCStatsReportBinding.h"; +using WebrtcGlobalLog from "mozilla/media/webrtc/WebrtcGlobal.h"; +using mozilla::dom::RTCIceServer from "mozilla/dom/RTCConfigurationBinding.h"; +using mozilla::dom::RTCIceTransportPolicy from "mozilla/dom/RTCConfigurationBinding.h"; + +// ParamTraits stuff for our own classes +using mozilla::MediaPacket from "transport/mediapacket.h"; +include "mozilla/net/NrIceStunAddrMessageUtils.h"; +using mozilla::net::NrIceStunAddrArray from "mozilla/net/PStunAddrsParams.h"; +#endif // MOZ_WEBRTC + +namespace mozilla { +namespace dom { + +[ManualDealloc] +async protocol PMediaTransport { + manager PBackground; + +parent: + async __delete__(); + +#ifdef MOZ_WEBRTC + async GetIceLog(nsCString pattern) returns (WebrtcGlobalLog loglines); + async ClearIceLog(); + async EnterPrivateMode(); + async ExitPrivateMode(); + + async CreateIceCtx(string name); + + async SetIceConfig(RTCIceServer[] iceServers, + RTCIceTransportPolicy icePolicy); + + async SetProxyConfig(WebrtcProxyConfig proxyConfig); + + async EnsureProvisionalTransport(string transportId, + string localUfrag, + string localPwd, + int componentCount); + + async SetTargetForDefaultLocalAddressLookup(string targetIp, + uint16_t targetPort); + + async StartIceGathering(bool defaultRouteOnly, + bool obfuscateHostAddresses, + NrIceStunAddrArray stunAddrs); + + async ActivateTransport(string transportId, + string localUfrag, + string localPwd, + int componentCount, + string remoteUfrag, + string remotePwd, + uint8_t[] keyDer, + uint8_t[] certDer, + int authType, + bool dtlsClient, + DtlsDigestList digests, + bool privacyRequested); + + async RemoveTransportsExcept(StringVector transportIds); + + async StartIceChecks(bool isControlling, + StringVector iceOptions); + + async SendPacket(string transportId, MediaPacket packet); + + async AddIceCandidate(string transportId, + string candidate, + string ufrag, + string obfuscatedAddr); + + async UpdateNetworkState(bool online); + + async GetIceStats(string transportId, double now) returns (UniquePtr<RTCStatsCollection> stats); + +child: + async OnCandidate(string transportId, CandidateInfo candidateInfo); + async OnAlpnNegotiated(string alpn); + async OnGatheringStateChange(int state); + async OnConnectionStateChange(int state); + async OnPacketReceived(string transportId, MediaPacket packet); + async OnEncryptedSending(string transportId, MediaPacket packet); + async OnStateChange(string transportId, int state); + async OnRtcpStateChange(string transportId, int state); + +#endif // MOZ_WEBRTC +}; +} // namespace dom +} // namespace mozilla |