Bug 1824856 - migrate android build-bundle tasks from firefox-android. r=bhearsum...
[gecko.git] / netwerk / ipc / SocketProcessParent.h
blob732e431e35e9c173825698f618e4bd78d6c375d7
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_net_SocketProcessParent_h
7 #define mozilla_net_SocketProcessParent_h
9 #include "mozilla/UniquePtr.h"
10 #include "mozilla/ipc/CrashReporterHelper.h"
11 #include "mozilla/ipc/InputStreamUtils.h"
12 #include "mozilla/net/PSocketProcessParent.h"
14 namespace mozilla {
16 namespace dom {
17 class MemoryReport;
18 class MemoryReportRequestHost;
19 } // namespace dom
21 namespace net {
23 class SocketProcessHost;
25 // IPC actor of socket process in parent process. This is allocated and managed
26 // by SocketProcessHost.
27 class SocketProcessParent final
28 : public PSocketProcessParent,
29 public ipc::CrashReporterHelper<GeckoProcessType_Socket> {
30 public:
31 friend class SocketProcessHost;
33 NS_INLINE_DECL_REFCOUNTING(SocketProcessParent, final)
35 explicit SocketProcessParent(SocketProcessHost* aHost);
37 static SocketProcessParent* GetSingleton();
39 mozilla::ipc::IPCResult RecvAddMemoryReport(const MemoryReport& aReport);
40 mozilla::ipc::IPCResult RecvAccumulateChildHistograms(
41 nsTArray<HistogramAccumulation>&& aAccumulations);
42 mozilla::ipc::IPCResult RecvAccumulateChildKeyedHistograms(
43 nsTArray<KeyedHistogramAccumulation>&& aAccumulations);
44 mozilla::ipc::IPCResult RecvUpdateChildScalars(
45 nsTArray<ScalarAction>&& aScalarActions);
46 mozilla::ipc::IPCResult RecvUpdateChildKeyedScalars(
47 nsTArray<KeyedScalarAction>&& aScalarActions);
48 mozilla::ipc::IPCResult RecvRecordChildEvents(
49 nsTArray<ChildEventData>&& events);
50 mozilla::ipc::IPCResult RecvRecordDiscardedData(
51 const DiscardedData& aDiscardedData);
53 PWebrtcTCPSocketParent* AllocPWebrtcTCPSocketParent(
54 const Maybe<TabId>& aTabId);
55 bool DeallocPWebrtcTCPSocketParent(PWebrtcTCPSocketParent* aActor);
56 already_AddRefed<PDNSRequestParent> AllocPDNSRequestParent(
57 const nsACString& aHost, const nsACString& aTrrServer,
58 const int32_t& port, const uint16_t& aType,
59 const OriginAttributes& aOriginAttributes,
60 const nsIDNSService::DNSFlags& aFlags);
61 virtual mozilla::ipc::IPCResult RecvPDNSRequestConstructor(
62 PDNSRequestParent* actor, const nsACString& aHost,
63 const nsACString& trrServer, const int32_t& port, const uint16_t& type,
64 const OriginAttributes& aOriginAttributes,
65 const nsIDNSService::DNSFlags& flags) override;
67 void ActorDestroy(ActorDestroyReason aWhy) override;
68 bool SendRequestMemoryReport(const uint32_t& aGeneration,
69 const bool& aAnonymize,
70 const bool& aMinimizeMemoryUsage,
71 const Maybe<ipc::FileDescriptor>& aDMDFile);
73 mozilla::ipc::IPCResult RecvObserveHttpActivity(
74 const HttpActivityArgs& aArgs, const uint32_t& aActivityType,
75 const uint32_t& aActivitySubtype, const PRTime& aTimestamp,
76 const uint64_t& aExtraSizeData, const nsACString& aExtraStringData);
78 mozilla::ipc::IPCResult RecvInitSocketBackground(
79 Endpoint<PSocketProcessBackgroundParent>&& aEndpoint);
81 already_AddRefed<PAltServiceParent> AllocPAltServiceParent();
83 already_AddRefed<PProxyConfigLookupParent> AllocPProxyConfigLookupParent(
84 nsIURI* aURI, const uint32_t& aProxyResolveFlags);
85 mozilla::ipc::IPCResult RecvPProxyConfigLookupConstructor(
86 PProxyConfigLookupParent* aActor, nsIURI* aURI,
87 const uint32_t& aProxyResolveFlags) override;
89 mozilla::ipc::IPCResult RecvCachePushCheck(
90 nsIURI* aPushedURL, OriginAttributes&& aOriginAttributes,
91 nsCString&& aRequestString, CachePushCheckResolver&& aResolver);
93 mozilla::ipc::IPCResult RecvExcludeHttp2OrHttp3(
94 const HttpConnectionInfoCloneArgs& aArgs);
95 mozilla::ipc::IPCResult RecvOnConsoleMessage(const nsString& aMessage);
97 mozilla::ipc::IPCResult RecvFOGData(ByteBuf&& aBuf);
99 #if defined(XP_WIN)
100 mozilla::ipc::IPCResult RecvGetModulesTrust(
101 ModulePaths&& aModPaths, bool aRunAtNormalPriority,
102 GetModulesTrustResolver&& aResolver);
103 #endif // defined(XP_WIN)
105 private:
106 ~SocketProcessParent();
108 SocketProcessHost* mHost;
109 UniquePtr<dom::MemoryReportRequestHost> mMemoryReportRequest;
111 static void Destroy(RefPtr<SocketProcessParent>&& aParent);
114 } // namespace net
115 } // namespace mozilla
117 #endif // mozilla_net_SocketProcessParent_h