/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set sw=2 ts=8 et tw=80 : */ /* 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/. */ #ifndef mozilla_net_NeckoChild_h #define mozilla_net_NeckoChild_h #include "mozilla/net/PNeckoChild.h" #include "mozilla/net/NeckoCommon.h" namespace mozilla { namespace net { // Header file contents class NeckoChild : public PNeckoChild { friend class PNeckoChild; public: NS_INLINE_DECL_THREADSAFE_REFCOUNTING(NeckoChild, override) NeckoChild() = default; static void InitNeckoChild(); protected: virtual ~NeckoChild(); PStunAddrsRequestChild* AllocPStunAddrsRequestChild(); bool DeallocPStunAddrsRequestChild(PStunAddrsRequestChild* aActor); PWebrtcTCPSocketChild* AllocPWebrtcTCPSocketChild(const Maybe& tabId); bool DeallocPWebrtcTCPSocketChild(PWebrtcTCPSocketChild* aActor); PAltDataOutputStreamChild* AllocPAltDataOutputStreamChild( const nsACString& type, const int64_t& predictedSize, PHttpChannelChild* channel); bool DeallocPAltDataOutputStreamChild(PAltDataOutputStreamChild* aActor); PCookieServiceChild* AllocPCookieServiceChild(); bool DeallocPCookieServiceChild(PCookieServiceChild*); #ifdef MOZ_WIDGET_GTK PGIOChannelChild* AllocPGIOChannelChild( PBrowserChild* aBrowser, const SerializedLoadContext& aSerialized, const GIOChannelCreationArgs& aOpenArgs); bool DeallocPGIOChannelChild(PGIOChannelChild*); #endif PWebSocketChild* AllocPWebSocketChild(PBrowserChild*, const SerializedLoadContext&, const uint32_t&); bool DeallocPWebSocketChild(PWebSocketChild*); PTCPSocketChild* AllocPTCPSocketChild(const nsAString& host, const uint16_t& port); bool DeallocPTCPSocketChild(PTCPSocketChild*); PTCPServerSocketChild* AllocPTCPServerSocketChild( const uint16_t& aLocalPort, const uint16_t& aBacklog, const bool& aUseArrayBuffers); bool DeallocPTCPServerSocketChild(PTCPServerSocketChild*); PUDPSocketChild* AllocPUDPSocketChild(nsIPrincipal* aPrincipal, const nsACString& aFilter); bool DeallocPUDPSocketChild(PUDPSocketChild*); PSimpleChannelChild* AllocPSimpleChannelChild(const uint32_t& channelId); bool DeallocPSimpleChannelChild(PSimpleChannelChild* child); PTransportProviderChild* AllocPTransportProviderChild(); bool DeallocPTransportProviderChild(PTransportProviderChild* aActor); PWebSocketEventListenerChild* AllocPWebSocketEventListenerChild( const uint64_t& aInnerWindowID); bool DeallocPWebSocketEventListenerChild(PWebSocketEventListenerChild*); /* Predictor Messsages */ mozilla::ipc::IPCResult RecvPredOnPredictPrefetch( nsIURI* aURI, const uint32_t& aHttpStatus); mozilla::ipc::IPCResult RecvPredOnPredictPreconnect(nsIURI* aURI); mozilla::ipc::IPCResult RecvPredOnPredictDNS(nsIURI* aURI); mozilla::ipc::IPCResult RecvSpeculativeConnectRequest(); mozilla::ipc::IPCResult RecvNetworkChangeNotification(nsCString const& type); mozilla::ipc::IPCResult RecvSetTRRDomain(const nsCString& domain); }; /** * Reference to the PNecko Child protocol. * Null if this is not a content process. */ extern PNeckoChild* gNeckoChild; } // namespace net } // namespace mozilla #endif // mozilla_net_NeckoChild_h