no bug - Import translations from android-l10n r=release a=l10n CLOSED TREE
[gecko.git] / ipc / glue / UtilityProcessParent.h
blob6ff907583f682b79bd3e66020514d7cdf039e251
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef _include_ipc_glue_UtilityProcessParent_h__
7 #define _include_ipc_glue_UtilityProcessParent_h__
8 #include "mozilla/ipc/PUtilityProcessParent.h"
9 #include "mozilla/ipc/CrashReporterHelper.h"
10 #include "mozilla/ipc/UtilityProcessHost.h"
11 #include "mozilla/dom/MemoryReportRequest.h"
13 #include "mozilla/RefPtr.h"
15 namespace mozilla {
17 namespace ipc {
19 class UtilityProcessHost;
21 class UtilityProcessParent final
22 : public PUtilityProcessParent,
23 public ipc::CrashReporterHelper<GeckoProcessType_Utility> {
24 typedef mozilla::dom::MemoryReportRequestHost MemoryReportRequestHost;
26 public:
27 NS_INLINE_DECL_THREADSAFE_REFCOUNTING(UtilityProcessParent, override);
28 friend class UtilityProcessHost;
30 explicit UtilityProcessParent(UtilityProcessHost* aHost);
32 mozilla::ipc::IPCResult RecvAddMemoryReport(const MemoryReport& aReport);
34 bool SendRequestMemoryReport(const uint32_t& aGeneration,
35 const bool& aAnonymize,
36 const bool& aMinimizeMemoryUsage,
37 const Maybe<ipc::FileDescriptor>& aDMDFile);
39 mozilla::ipc::IPCResult RecvFOGData(ByteBuf&& aBuf);
41 #if defined(XP_WIN)
42 mozilla::ipc::IPCResult RecvGetModulesTrust(
43 ModulePaths&& aModPaths, bool aRunAtNormalPriority,
44 GetModulesTrustResolver&& aResolver);
45 #endif // defined(XP_WIN)
47 mozilla::ipc::IPCResult RecvAccumulateChildHistograms(
48 nsTArray<HistogramAccumulation>&& aAccumulations);
49 mozilla::ipc::IPCResult RecvAccumulateChildKeyedHistograms(
50 nsTArray<KeyedHistogramAccumulation>&& aAccumulations);
51 mozilla::ipc::IPCResult RecvUpdateChildScalars(
52 nsTArray<ScalarAction>&& aScalarActions);
53 mozilla::ipc::IPCResult RecvUpdateChildKeyedScalars(
54 nsTArray<KeyedScalarAction>&& aScalarActions);
55 mozilla::ipc::IPCResult RecvRecordChildEvents(
56 nsTArray<ChildEventData>&& events);
57 mozilla::ipc::IPCResult RecvRecordDiscardedData(
58 const DiscardedData& aDiscardedData);
60 mozilla::ipc::IPCResult RecvInitCompleted();
62 void ActorDestroy(ActorDestroyReason aWhy) override;
64 private:
65 UtilityProcessHost* mHost;
66 UniquePtr<MemoryReportRequestHost> mMemoryReportRequest{};
68 ~UtilityProcessParent();
70 static void Destroy(RefPtr<UtilityProcessParent> aParent);
73 } // namespace ipc
75 } // namespace mozilla
77 #endif // _include_ipc_glue_UtilityProcessParent_h__