/* 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/NeckoCommon.h" #include "mozilla/net/PNeckoChild.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(); PCacheEntryWriteHandleChild* AllocPCacheEntryWriteHandleChild( PHttpChannelChild* channel); bool DeallocPCacheEntryWriteHandleChild(PCacheEntryWriteHandleChild* aActor); PAltDataOutputStreamChild* AllocPAltDataOutputStreamChild( const nsACString& type, const int64_t& predictedSize, const mozilla::Maybe>& channel, const mozilla::Maybe>& handle); bool DeallocPAltDataOutputStreamChild(PAltDataOutputStreamChild* aActor); PCookieServiceChild* AllocPCookieServiceChild(); bool DeallocPCookieServiceChild(PCookieServiceChild*); PWebSocketChild* AllocPWebSocketChild(PBrowserChild*, const SerializedLoadContext&, const uint32_t&); bool DeallocPWebSocketChild(PWebSocketChild*); PTCPSocketChild* AllocPTCPSocketChild(const nsAString& host, const uint16_t& port); bool DeallocPTCPSocketChild(PTCPSocketChild*); PTransportProviderChild* AllocPTransportProviderChild(); bool DeallocPTransportProviderChild(PTransportProviderChild* aActor); PWebSocketEventListenerChild* AllocPWebSocketEventListenerChild( const uint64_t& aInnerWindowID); bool DeallocPWebSocketEventListenerChild(PWebSocketEventListenerChild*); 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