/* 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 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