summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/PMediaTransport.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/webrtc/PMediaTransport.ipdl')
-rw-r--r--dom/media/webrtc/PMediaTransport.ipdl105
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