mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
bf10398c74
Differential Revision: https://phabricator.services.mozilla.com/D193127
102 lines
3.8 KiB
Plaintext
102 lines
3.8 KiB
Plaintext
/* 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 {
|
|
|
|
[ParentProc=Socket, ChildProc=Content]
|
|
async protocol PMediaTransport {
|
|
#ifdef MOZ_WEBRTC
|
|
parent:
|
|
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(string transportId, int state);
|
|
async OnConnectionStateChange(string transportId, 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
|