//
// Automatically generated by ipdlc.
// Edit at your own risk
//

#ifndef PContentChild_h
#define PContentChild_h

#include "mozilla/dom/PContent.h"
#ifdef DEBUG
#include "prenv.h"
#endif  // DEBUG

#include "mozilla/Tainting.h"
#include "mozilla/ipc/MessageChannel.h"
#include "mozilla/ipc/ProtocolUtils.h"
// Headers for things that cannot be forward declared
#include "MediaCodecsSupport.h"
#include "Units.h"
#include "base/process.h"
#include "gfxFontEntry.h"
#include "gfxFontUtils.h"
#include "gfxPlatform.h"
#include "gfxTelemetry.h"
#include "mozilla/ContentBlockingNotifier.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/EventForwards.h"
#include "mozilla/HalIPCUtils.h"
#include "mozilla/HalTypes.h"
#include "mozilla/PageloadEvent.h"
#include "mozilla/PerfStats.h"
#include "mozilla/PermissionDelegateHandler.h"
#include "mozilla/RemoteMediaManagerChild.h"
#include "mozilla/ScrollbarPreferences.h"
#include "mozilla/StorageAccess.h"
#include "mozilla/StorageAccessAPIHelper.h"
#include "mozilla/TelemetryComms.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/BrowsingContext.h"
#include "mozilla/dom/ClientBinding.h"
#include "mozilla/dom/ClientsBinding.h"
#include "mozilla/dom/DocumentBinding.h"
#include "mozilla/dom/FeaturePolicy.h"
#include "mozilla/dom/GeolocationIPCUtils.h"
#include "mozilla/dom/IntegrityPolicy.h"
#include "mozilla/dom/JSActor.h"
#include "mozilla/dom/LoadURIOptionsBinding.h"
#include "mozilla/dom/MediaControlKeySource.h"
#include "mozilla/dom/MediaMetadata.h"
#include "mozilla/dom/MediaPlaybackStatus.h"
#include "mozilla/dom/MediaSession.h"
#include "mozilla/dom/MediaSessionBinding.h"
#include "mozilla/dom/NativeThreadId.h"
#include "mozilla/dom/NavigationBinding.h"
#include "mozilla/dom/NotificationBinding.h"
#include "mozilla/dom/PWindowGlobal.h"
#include "mozilla/dom/PerformanceTiming.h"
#include "mozilla/dom/PrivateAttributionIPCUtils.h"
#include "mozilla/dom/RequestBinding.h"
#include "mozilla/dom/ServiceWorkerShutdownState.h"
#include "mozilla/dom/UserActivation.h"
#include "mozilla/dom/UserNavigationInvolvement.h"
#include "mozilla/dom/WindowContext.h"
#include "mozilla/dom/ipc/IdType.h"
#include "mozilla/dom/quota/SerializationHelpers.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/D3D11Checks.h"
#include "mozilla/gfx/Point.h"
#include "mozilla/gfx/Types.h"
#include "mozilla/ipc/BackgroundUtils.h"
#include "mozilla/ipc/CrossProcessMutex.h"
#include "mozilla/ipc/IPCCore.h"
#include "mozilla/ipc/SharedMemoryHandle.h"
#include "mozilla/layers/CompositorOptions.h"
#include "mozilla/layers/LayersTypes.h"
#include "mozilla/net/ClassOfService.h"
#include "mozilla/net/PHttpChannelParams.h"
#include "mozilla/widget/WidgetMessageUtils.h"
#include "nsColor.h"
#include "nsICacheInfoChannel.h"
#include "nsIClassifiedChannel.h"
#include "nsIClipboard.h"
#include "nsIContentPolicy.h"
#include "nsIContentSecurityPolicy.h"
#include "nsIDNSService.h"
#include "nsIDocumentViewer.h"
#include "nsILoadInfo.h"
#include "nsIUrlClassifierFeature.h"
#include "nsIWidgetListener.h"
#include "nsNetUtil.h"
#include "nsRFPService.h"

namespace mozilla {
namespace ipc {
class PBackgroundStarterChild;
} // namespace ipc
} // namespace mozilla
namespace mozilla {
namespace ipc {
class PBackgroundStarterParent;
} // namespace ipc
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBrowserChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBrowserParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
class PClipboardContentAnalysisChild;
} // namespace mozilla
namespace mozilla {
class PClipboardContentAnalysisParent;
} // namespace mozilla

namespace mozilla {
class PClipboardReadRequestChild;
} // namespace mozilla
namespace mozilla {
class PClipboardReadRequestParent;
} // namespace mozilla

namespace mozilla {
class PClipboardWriteRequestChild;
} // namespace mozilla
namespace mozilla {
class PClipboardWriteRequestParent;
} // namespace mozilla

namespace mozilla {
namespace layers {
class PCompositorManagerChild;
} // namespace layers
} // namespace mozilla
namespace mozilla {
namespace layers {
class PCompositorManagerParent;
} // namespace layers
} // namespace mozilla

namespace mozilla {
namespace dom {
class PContentPermissionRequestChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PContentPermissionRequestParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PCycleCollectWithLogsChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PCycleCollectWithLogsParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace net {
class PDocumentChannelChild;
} // namespace net
} // namespace mozilla
namespace mozilla {
namespace net {
class PDocumentChannelParent;
} // namespace net
} // namespace mozilla

namespace mozilla {
namespace extensions {
class PExtensionsChild;
} // namespace extensions
} // namespace mozilla
namespace mozilla {
namespace extensions {
class PExtensionsParent;
} // namespace extensions
} // namespace mozilla

namespace mozilla {
namespace dom {
class PExternalHelperAppChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PExternalHelperAppParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PHandlerServiceChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PHandlerServiceParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace hal_sandbox {
class PHalChild;
} // namespace hal_sandbox
} // namespace mozilla
namespace mozilla {
namespace hal_sandbox {
class PHalParent;
} // namespace hal_sandbox
} // namespace mozilla

namespace mozilla {
namespace devtools {
class PHeapSnapshotTempFileHelperChild;
} // namespace devtools
} // namespace mozilla
namespace mozilla {
namespace devtools {
class PHeapSnapshotTempFileHelperParent;
} // namespace devtools
} // namespace mozilla

namespace mozilla {
class PProcessHangMonitorChild;
} // namespace mozilla
namespace mozilla {
class PProcessHangMonitorParent;
} // namespace mozilla

namespace mozilla {
namespace layers {
class PImageBridgeChild;
} // namespace layers
} // namespace mozilla
namespace mozilla {
namespace layers {
class PImageBridgeParent;
} // namespace layers
} // namespace mozilla

namespace mozilla {
namespace layout {
class PRemotePrintJobChild;
} // namespace layout
} // namespace mozilla
namespace mozilla {
namespace layout {
class PRemotePrintJobParent;
} // namespace layout
} // namespace mozilla

namespace mozilla {
namespace media {
class PMediaChild;
} // namespace media
} // namespace mozilla
namespace mozilla {
namespace media {
class PMediaParent;
} // namespace media
} // namespace mozilla

namespace mozilla {
namespace net {
class PNeckoChild;
} // namespace net
} // namespace mozilla
namespace mozilla {
namespace net {
class PNeckoParent;
} // namespace net
} // namespace mozilla

namespace mozilla {
namespace extensions {
class PStreamFilterChild;
} // namespace extensions
} // namespace mozilla
namespace mozilla {
namespace extensions {
class PStreamFilterParent;
} // namespace extensions
} // namespace mozilla

namespace mozilla {
namespace gmp {
class PGMPContentChild;
} // namespace gmp
} // namespace mozilla
namespace mozilla {
namespace gmp {
class PGMPContentParent;
} // namespace gmp
} // namespace mozilla

namespace mozilla {
namespace gmp {
class PGMPServiceChild;
} // namespace gmp
} // namespace mozilla
namespace mozilla {
namespace gmp {
class PGMPServiceParent;
} // namespace gmp
} // namespace mozilla

namespace mozilla {
namespace gmp {
class PGMPChild;
} // namespace gmp
} // namespace mozilla
namespace mozilla {
namespace gmp {
class PGMPParent;
} // namespace gmp
} // namespace mozilla

namespace mozilla {
namespace dom {
class PSpeechSynthesisChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PSpeechSynthesisParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace ipc {
class PTestShellChild;
} // namespace ipc
} // namespace mozilla
namespace mozilla {
namespace ipc {
class PTestShellParent;
} // namespace ipc
} // namespace mozilla

namespace mozilla {
class PRemoteSpellcheckEngineChild;
} // namespace mozilla
namespace mozilla {
class PRemoteSpellcheckEngineParent;
} // namespace mozilla

namespace mozilla {
class PWebBrowserPersistDocumentChild;
} // namespace mozilla
namespace mozilla {
class PWebBrowserPersistDocumentParent;
} // namespace mozilla

namespace mozilla {
namespace dom {
class PWindowGlobalChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PWindowGlobalParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PURLClassifierChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PURLClassifierParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PURLClassifierLocalChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PURLClassifierLocalParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PURLClassifierLocalByNameChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PURLClassifierLocalByNameParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace gfx {
class PVRManagerChild;
} // namespace gfx
} // namespace mozilla
namespace mozilla {
namespace gfx {
class PVRManagerParent;
} // namespace gfx
} // namespace mozilla

namespace mozilla {
class PRemoteMediaManagerChild;
} // namespace mozilla
namespace mozilla {
class PRemoteMediaManagerParent;
} // namespace mozilla

namespace mozilla {
namespace dom {
class PRemoteWorkerDebuggerManagerChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PRemoteWorkerDebuggerManagerParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PRemoteWorkerServiceChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PRemoteWorkerServiceParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
class PProfilerChild;
} // namespace mozilla
namespace mozilla {
class PProfilerParent;
} // namespace mozilla

namespace mozilla {
namespace loader {
class PScriptCacheChild;
} // namespace loader
} // namespace mozilla
namespace mozilla {
namespace loader {
class PScriptCacheParent;
} // namespace loader
} // namespace mozilla

namespace mozilla {
namespace dom {
class PSessionStorageObserverChild;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PSessionStorageObserverParent;
} // namespace dom
} // namespace mozilla

namespace mozilla {
class PClipboardReadRequestChild;
} // namespace mozilla

namespace mozilla {
class PClipboardWriteRequestChild;
} // namespace mozilla

namespace mozilla {
class PRemoteSpellcheckEngineChild;
} // namespace mozilla

namespace mozilla {
class PWebBrowserPersistDocumentChild;
} // namespace mozilla

namespace mozilla {
namespace devtools {
class PHeapSnapshotTempFileHelperChild;
} // namespace devtools
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBrowserChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PContentPermissionRequestChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PCycleCollectWithLogsChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PExternalHelperAppChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PHandlerServiceChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PSessionStorageObserverChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PSpeechSynthesisChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PURLClassifierChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PURLClassifierLocalChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PURLClassifierLocalByNameChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace extensions {
class PExtensionsChild;
} // namespace extensions
} // namespace mozilla

namespace mozilla {
namespace hal_sandbox {
class PHalChild;
} // namespace hal_sandbox
} // namespace mozilla

namespace mozilla {
namespace ipc {
class PTestShellChild;
} // namespace ipc
} // namespace mozilla

namespace mozilla {
namespace layout {
class PRemotePrintJobChild;
} // namespace layout
} // namespace mozilla

namespace mozilla {
namespace loader {
class PScriptCacheChild;
} // namespace loader
} // namespace mozilla

namespace mozilla {
namespace media {
class PMediaChild;
} // namespace media
} // namespace mozilla

namespace mozilla {
namespace net {
class PNeckoChild;
} // namespace net
} // namespace mozilla

namespace mozilla {
struct void_t;
} // namespace mozilla

namespace mozilla {
struct SerializedStructuredCloneBuffer;
} // namespace mozilla

namespace mozilla {
namespace dom {
struct LoadingSessionHistoryInfo;
} // namespace dom
} // namespace mozilla

class nsIPrincipal;

class nsIURI;

class nsIPolicyContainer;

class nsIInputStream;

class nsIReferrerInfo;

class nsIVariant;

namespace mozilla {
class RemoteLazyInputStream;
} // namespace mozilla

namespace mozilla {
namespace ipc {
class BigBuffer;
} // namespace ipc
} // namespace mozilla

class nsITransportSecurityInfo;

namespace mozilla {
struct void_t;
} // namespace mozilla

namespace mozilla {
class RemoteLazyInputStream;
} // namespace mozilla

class nsIPrincipal;

class nsIReferrerInfo;

namespace mozilla {
namespace ipc {
class BigBuffer;
} // namespace ipc
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace ipc {
class StructuredCloneData;
} // namespace ipc
} // namespace dom
} // namespace mozilla

struct nsID;

namespace mozilla {
struct void_t;
} // namespace mozilla

struct DxgiAdapterDesc;

namespace mozilla {
struct null_t;
} // namespace mozilla

namespace mozilla {
struct void_t;
} // namespace mozilla

namespace mozilla {
struct null_t;
} // namespace mozilla

struct nsHttpAtom;

namespace mozilla {
namespace net {
class nsHttpResponseHead;
} // namespace net
} // namespace mozilla

namespace mozilla {
class TimeStamp;
} // namespace mozilla

class nsIPropertyBag2;

class nsDOMNavigationTiming;

class nsDocShellLoadState;

namespace mozilla {
namespace dom {
struct LoadingSessionHistoryInfo;
} // namespace dom
} // namespace mozilla

class nsIDOMGeoPosition;

struct ChromePackage;

struct SubstitutionMapping;

struct OverrideMapping;

namespace IPC {
struct Permission;
} // namespace IPC

namespace mozilla {
namespace dom {
class MessagePort;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace ipc {
class StructuredCloneData;
} // namespace ipc
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace layers {
struct TextureFactoryIdentifier;
} // namespace layers
} // namespace mozilla

class nsILayoutHistoryState;

namespace mozilla {
namespace dom {
class SessionHistoryInfo;
} // namespace dom
} // namespace mozilla

struct nsPoint;

namespace mozilla {
namespace dom {
struct LoadingSessionHistoryInfo;
} // namespace dom
} // namespace mozilla

class nsIX509Cert;

namespace mozilla {
namespace dom {


class PContentChild :
    public mozilla::ipc::IToplevelProtocol
{
private:
    friend class ::mozilla::PClipboardReadRequestChild;
    friend class ::mozilla::PClipboardWriteRequestChild;
    friend class ::mozilla::PRemoteSpellcheckEngineChild;
    friend class ::mozilla::PWebBrowserPersistDocumentChild;
    friend class ::mozilla::devtools::PHeapSnapshotTempFileHelperChild;
    friend class ::mozilla::dom::PBrowserChild;
    friend class ::mozilla::dom::PContentPermissionRequestChild;
    friend class ::mozilla::dom::PCycleCollectWithLogsChild;
    friend class ::mozilla::dom::PExternalHelperAppChild;
    friend class ::mozilla::dom::PHandlerServiceChild;
    friend class ::mozilla::dom::PSessionStorageObserverChild;
    friend class ::mozilla::dom::PSpeechSynthesisChild;
    friend class ::mozilla::dom::PURLClassifierChild;
    friend class ::mozilla::dom::PURLClassifierLocalChild;
    friend class ::mozilla::dom::PURLClassifierLocalByNameChild;
    friend class ::mozilla::extensions::PExtensionsChild;
    friend class ::mozilla::hal_sandbox::PHalChild;
    friend class ::mozilla::ipc::PTestShellChild;
    friend class ::mozilla::layout::PRemotePrintJobChild;
    friend class ::mozilla::loader::PScriptCacheChild;
    friend class ::mozilla::media::PMediaChild;
    friend class ::mozilla::net::PNeckoChild;
public:
    static constexpr ::mozilla::ipc::ProtocolId kProtocolId = PContentMsgStart;
protected:
    typedef mozilla::ipc::ActorId ActorId;
    typedef ::mozilla::dom::AndroidSystemInfo AndroidSystemInfo;
    typedef ::mozilla::gfx::BackendType BackendType;
    typedef ::mozilla::ipc::BigBuffer BigBuffer;
    typedef ::mozilla::dom::BlobURLDataRequestResult BlobURLDataRequestResult;
    typedef ::mozilla::dom::BlobURLRegistrationData BlobURLRegistrationData;
    typedef ::mozilla::ContentBlockingNotifier::BlockingDecision BlockingDecision;
    typedef ::mozilla::dom::BroadcastBlobURLUnregistrationRequest BroadcastBlobURLUnregistrationRequest;
    typedef ::mozilla::dom::BrowsingContextInitializer BrowsingContextInitializer;
    typedef ::mozilla::dom::BrowsingContextTransaction BrowsingContextTransaction;
    typedef ::mozilla::psm::ByteArray ByteArray;
    typedef ::mozilla::ipc::ByteBuf ByteBuf;
    typedef ::mozilla::ipc::CSPInfo CSPInfo;
    typedef ::mozilla::CSSRect CSSRect;
    typedef ::mozilla::CSSSize CSSSize;
    typedef ::mozilla::CSSToLayoutDeviceScale CSSToLayoutDeviceScale;
    typedef ::mozilla::embedding::CStringKeyValue CStringKeyValue;
    typedef ::mozilla::dom::CallerType CallerType;
    typedef ::mozilla::psm::Certificate Certificate;
    typedef ::mozilla::Telemetry::ChildEventData ChildEventData;
    typedef ::mozilla::net::ChildLoadInfoForwarderArgs ChildLoadInfoForwarderArgs;
    typedef ::ChromePackage ChromePackage;
    typedef ::ChromeRegistryItem ChromeRegistryItem;
    typedef ::mozilla::net::ClassOfService ClassOfService;
    typedef ::mozilla::net::ClassificationFlags ClassificationFlags;
    typedef ::mozilla::dom::ClientClaimArgs ClientClaimArgs;
    typedef ::mozilla::dom::ClientControlledArgs ClientControlledArgs;
    typedef ::mozilla::dom::ClientEvictBFCacheArgs ClientEvictBFCacheArgs;
    typedef ::mozilla::dom::ClientFocusArgs ClientFocusArgs;
    typedef ::mozilla::dom::ClientGetInfoAndStateArgs ClientGetInfoAndStateArgs;
    typedef ::mozilla::dom::ClientInfoAndState ClientInfoAndState;
    typedef ::mozilla::dom::ClientList ClientList;
    typedef ::mozilla::dom::ClientMatchAllArgs ClientMatchAllArgs;
    typedef ::mozilla::dom::ClientNavigateArgs ClientNavigateArgs;
    typedef ::mozilla::dom::ClientNavigateOpConstructorArgs ClientNavigateOpConstructorArgs;
    typedef ::mozilla::dom::ClientOpConstructorArgs ClientOpConstructorArgs;
    typedef ::mozilla::dom::ClientOpResult ClientOpResult;
    typedef ::mozilla::dom::ClientOpenWindowArgs ClientOpenWindowArgs;
    typedef ::mozilla::dom::ClientPostMessageArgs ClientPostMessageArgs;
    typedef ::mozilla::dom::ClientSourceConstructorArgs ClientSourceConstructorArgs;
    typedef ::mozilla::dom::ClientSourceExecutionReadyArgs ClientSourceExecutionReadyArgs;
    typedef ::mozilla::dom::ClientType ClientType;
    typedef ::mozilla::dom::ClipboardCapabilities ClipboardCapabilities;
    typedef ::mozilla::dom::ClipboardReadRequest ClipboardReadRequest;
    typedef ::mozilla::dom::ClipboardReadRequestOrError ClipboardReadRequestOrError;
    typedef ::nsIClipboard::ClipboardType ClipboardType;
    typedef ::mozilla::dom::ClonedMessageData ClonedMessageData;
    typedef ::mozilla::dom::ClonedOrErrorMessageData ClonedOrErrorMessageData;
    typedef ::mozilla::layers::CompositorOptions CompositorOptions;
    typedef ::mozilla::net::ConsoleReportCollected ConsoleReportCollected;
    typedef ::mozilla::gfx::ContentDeviceData ContentDeviceData;
    typedef ::mozilla::dom::ContentParentId ContentParentId;
    typedef ::mozilla::ipc::ContentPrincipalInfo ContentPrincipalInfo;
    typedef ::mozilla::ipc::ContentSecurityPolicy ContentSecurityPolicy;
    typedef ::mozilla::net::CookieChange CookieChange;
    typedef ::mozilla::net::CookieJarSettingsArgs CookieJarSettingsArgs;
    typedef ::mozilla::net::CookiePermissionData CookiePermissionData;
    typedef ::mozilla::net::CookieStruct CookieStruct;
    typedef ::mozilla::net::CookieStructTable CookieStructTable;
    typedef ::mozilla::CopyableErrorResult CopyableErrorResult;
    typedef ::mozilla::net::CorsPreflightArgs CorsPreflightArgs;
    typedef ::CrashReporter::CrashReporterInitArgs CrashReporterInitArgs;
    typedef ::mozilla::dom::CreatedWindowInfo CreatedWindowInfo;
    typedef ::nsILoadInfo::CrossOriginEmbedderPolicy CrossOriginEmbedderPolicy;
    typedef ::mozilla::CrossProcessMutexHandle CrossProcessMutexHandle;
    typedef ::mozilla::gfx::D3D11DeviceStatus D3D11DeviceStatus;
    typedef ::mozilla::psm::DelegatedCredentialInfoArg DelegatedCredentialInfoArg;
    typedef ::mozilla::PermissionDelegateHandler::DelegatedPermissionList DelegatedPermissionList;
    typedef ::mozilla::DesktopIntRect DesktopIntRect;
    typedef ::mozilla::DesktopToLayoutDeviceScale DesktopToLayoutDeviceScale;
    typedef ::mozilla::dom::IntegrityPolicy::Destinations Destinations;
    typedef ::mozilla::gfx::DevicePrefs DevicePrefs;
    typedef ::mozilla::dom::DimensionInfo DimensionInfo;
    typedef ::mozilla::Telemetry::DiscardedData DiscardedData;
    typedef ::mozilla::dom::DocShellLoadStateInit DocShellLoadStateInit;
    typedef ::mozilla::net::DocumentChannelCreationArgs DocumentChannelCreationArgs;
    typedef ::mozilla::net::DocumentChannelElementCreationArgs DocumentChannelElementCreationArgs;
    typedef ::mozilla::net::DocumentCreationArgs DocumentCreationArgs;
    typedef ::mozilla::dom::DomainPolicyClone DomainPolicyClone;
    typedef ::DxgiAdapterDesc DxgiAdapterDesc;
    typedef ::mozilla::Telemetry::DynamicScalarDefinition DynamicScalarDefinition;
    typedef ::mozilla::psm::ECKey ECKey;
    typedef ::mozilla::net::EarlyHintConnectArgs EarlyHintConnectArgs;
    template<class FooSide> using Endpoint = mozilla::ipc::Endpoint<FooSide>;
    typedef ::mozilla::dom::ErrorMessageData ErrorMessageData;
    typedef ::mozilla::EventMessage EventMessage;
    typedef ::mozilla::ipc::ExpandedPrincipalInfo ExpandedPrincipalInfo;
    typedef ::mozilla::gfx::FeatureFailure FeatureFailure;
    typedef ::mozilla::dom::FeaturePolicyInfo FeaturePolicyInfo;
    typedef ::mozilla::gfx::FeatureStatus FeatureStatus;
    typedef ::mozilla::net::FileChannelInfo FileChannelInfo;
    typedef ::mozilla::dom::FileDescOrError FileDescOrError;
    typedef ::mozilla::ipc::FileDescriptor FileDescriptor;
    typedef ::FontVisibility FontVisibility;
    typedef ::mozilla::dom::ForceMediaDocument ForceMediaDocument;
    typedef ::mozilla::dom::FrameIPCTabContext FrameIPCTabContext;
    typedef ::mozilla::dom::FrameScriptInfo FrameScriptInfo;
    typedef ::mozilla::dom::FrameType FrameType;
    typedef ::mozilla::widget::FullLookAndFeel FullLookAndFeel;
    typedef ::mozilla::net::GIOChannelConnectArgs GIOChannelConnectArgs;
    typedef ::mozilla::net::GIOChannelCreationArgs GIOChannelCreationArgs;
    typedef ::mozilla::net::GIOChannelOpenArgs GIOChannelOpenArgs;
    typedef ::mozilla::dom::GMPAPITags GMPAPITags;
    typedef ::mozilla::dom::GMPCapabilityData GMPCapabilityData;
    typedef ::mozilla::gfx::GPUDeviceData GPUDeviceData;
    typedef ::mozilla::net::GeckoViewContentChannelArgs GeckoViewContentChannelArgs;
    typedef ::mozilla::net::GeckoViewContentChannelConnectArgs GeckoViewContentChannelConnectArgs;
    typedef ::mozilla::net::GeckoViewContentChannelOpenArgs GeckoViewContentChannelOpenArgs;
    typedef ::mozilla::dom::geolocation::GeolocationPermissionStatus GeolocationPermissionStatus;
    typedef ::mozilla::dom::GetFilesResponseFailure GetFilesResponseFailure;
    typedef ::mozilla::dom::GetFilesResponseResult GetFilesResponseResult;
    typedef ::mozilla::dom::GetFilesResponseSuccess GetFilesResponseSuccess;
    typedef ::mozilla::gfx::GfxInfoFeatureStatus GfxInfoFeatureStatus;
    typedef ::mozilla::gfx::GfxVarUpdate GfxVarUpdate;
    typedef ::mozilla::gfx::GfxVarValue GfxVarValue;
    typedef ::gfxPlatform::GlobalReflowFlags GlobalReflowFlags;
    typedef ::nsILoadInfo::HTTPSUpgradeTelemetryType HTTPSUpgradeTelemetryType;
    typedef ::mozilla::HangAnnotation HangAnnotation;
    typedef ::mozilla::HangDetails HangDetails;
    typedef ::mozilla::HangEntry HangEntry;
    typedef ::mozilla::HangEntryBufOffset HangEntryBufOffset;
    typedef ::mozilla::HangEntryChromeScript HangEntryChromeScript;
    typedef ::mozilla::HangEntryContent HangEntryContent;
    typedef ::mozilla::HangEntryJit HangEntryJit;
    typedef ::mozilla::HangEntryModOffset HangEntryModOffset;
    typedef ::mozilla::HangEntryProgCounter HangEntryProgCounter;
    typedef ::mozilla::HangEntrySuppressed HangEntrySuppressed;
    typedef ::mozilla::HangEntryWasm HangEntryWasm;
    typedef ::mozilla::HangModule HangModule;
    typedef ::mozilla::HangStack HangStack;
    typedef ::mozilla::Telemetry::HistogramAccumulation HistogramAccumulation;
    typedef ::mozilla::net::HttpActivity HttpActivity;
    typedef ::mozilla::net::HttpActivityArgs HttpActivityArgs;
    typedef ::mozilla::net::HttpChannelConnectArgs HttpChannelConnectArgs;
    typedef ::mozilla::net::HttpChannelCreationArgs HttpChannelCreationArgs;
    typedef ::mozilla::net::HttpChannelOpenArgs HttpChannelOpenArgs;
    typedef ::mozilla::net::HttpConnectionActivity HttpConnectionActivity;
    typedef ::mozilla::net::HttpConnectionInfoCloneArgs HttpConnectionInfoCloneArgs;
    typedef ::mozilla::dom::IDPLVariant IDPLVariant;
    typedef ::nsILoadInfo::IPAddressSpace IPAddressSpace;
    typedef ::mozilla::dom::IPCBlob IPCBlob;
    typedef ::mozilla::psm::IPCClientCertObject IPCClientCertObject;
    typedef ::mozilla::dom::IPCClientInfo IPCClientInfo;
    typedef ::mozilla::dom::IPCClientState IPCClientState;
    typedef ::mozilla::dom::IPCClientWindowState IPCClientWindowState;
    typedef ::mozilla::dom::IPCClientWorkerState IPCClientWorkerState;
    typedef ::mozilla::dom::IPCFile IPCFile;
    typedef ::mozilla::dom::IPCImage IPCImage;
    typedef ::mozilla::dom::IPCNotification IPCNotification;
    typedef ::mozilla::dom::IPCNotificationAction IPCNotificationAction;
    typedef ::mozilla::dom::IPCNotificationOptions IPCNotificationOptions;
    typedef ::mozilla::dom::IPCNotificationsOrError IPCNotificationsOrError;
    typedef ::mozilla::ipc::IPCStream IPCStream;
    typedef ::mozilla::dom::IPCTabContext IPCTabContext;
    typedef ::mozilla::dom::IPCTransferable IPCTransferable;
    typedef ::mozilla::dom::IPCTransferableData IPCTransferableData;
    typedef ::mozilla::dom::IPCTransferableDataBlob IPCTransferableDataBlob;
    typedef ::mozilla::dom::IPCTransferableDataCString IPCTransferableDataCString;
    typedef ::mozilla::dom::IPCTransferableDataImageContainer IPCTransferableDataImageContainer;
    typedef ::mozilla::dom::IPCTransferableDataInputStream IPCTransferableDataInputStream;
    typedef ::mozilla::dom::IPCTransferableDataItem IPCTransferableDataItem;
    typedef ::mozilla::dom::IPCTransferableDataOrError IPCTransferableDataOrError;
    typedef ::mozilla::dom::IPCTransferableDataString IPCTransferableDataString;
    typedef ::mozilla::dom::IPCTransferableDataType IPCTransferableDataType;
    typedef ::mozilla::dom::IPCURLClassifierFeature IPCURLClassifierFeature;
    typedef ::mozilla::dom::IPDLProperty IPDLProperty;
    typedef ::mozilla::dom::IPDLVariantValue IPDLVariantValue;
    typedef ::mozilla::ImageIntSize ImageIntSize;
    typedef ::mozilla::ImagePoint ImagePoint;
    typedef ::mozilla::gfx::IntSize IntSize;
    typedef ::mozilla::ipc::IntegrityPolicyArgs IntegrityPolicyArgs;
    typedef ::mozilla::ipc::IntegrityPolicyEntry IntegrityPolicyEntry;
    typedef ::mozilla::net::InterceptionInfoArg InterceptionInfoArg;
    typedef ::mozilla::dom::JSActorMessageKind JSActorMessageKind;
    typedef ::mozilla::dom::JSActorMessageMeta JSActorMessageMeta;
    typedef ::mozilla::dom::JSIPCArray JSIPCArray;
    typedef ::mozilla::dom::JSIPCDOMRect JSIPCDOMRect;
    typedef ::mozilla::dom::JSIPCMapEntry JSIPCMapEntry;
    typedef ::mozilla::dom::JSIPCProperty JSIPCProperty;
    typedef ::mozilla::dom::JSIPCSet JSIPCSet;
    typedef ::mozilla::dom::JSIPCValue JSIPCValue;
    typedef ::mozilla::dom::JSProcessActorInfo JSProcessActorInfo;
    typedef ::mozilla::dom::JSWindowActorEventDecl JSWindowActorEventDecl;
    typedef ::mozilla::dom::JSWindowActorInfo JSWindowActorInfo;
    typedef ::mozilla::Telemetry::KeyedHistogramAccumulation KeyedHistogramAccumulation;
    typedef ::mozilla::Telemetry::KeyedScalarAction KeyedScalarAction;
    typedef ::mozilla::dom::L10nFileSourceDescriptor L10nFileSourceDescriptor;
    typedef ::mozilla::layers::LayersId LayersId;
    typedef ::mozilla::LayoutDeviceIntPoint LayoutDeviceIntPoint;
    typedef ::mozilla::LayoutDeviceIntRect LayoutDeviceIntRect;
    typedef ::mozilla::LayoutDeviceIntSize LayoutDeviceIntSize;
    typedef ::mozilla::net::LinkHeader LinkHeader;
    typedef ::mozilla::net::LoadInfoArgs LoadInfoArgs;
    typedef ::mozilla::dom::LoadingSessionHistoryInfo LoadingSessionHistoryInfo;
    typedef ::mozilla::widget::LookAndFeelFont LookAndFeelFont;
    typedef ::mozilla::widget::LookAndFeelTables LookAndFeelTables;
    template<class FooSide> using ManagedEndpoint = mozilla::ipc::ManagedEndpoint<FooSide>;
    typedef ::mozilla::dom::MaybeDiscardedBrowsingContext MaybeDiscardedBrowsingContext;
    typedef ::mozilla::dom::MaybeDiscardedWindowContext MaybeDiscardedWindowContext;
    typedef ::mozilla::dom::MaybeFeaturePolicyInfo MaybeFeaturePolicyInfo;
    typedef ::mozilla::dom::MediaAudibleState MediaAudibleState;
    typedef ::mozilla::media::MediaCodecsSupported MediaCodecsSupported;
    typedef ::mozilla::dom::MediaControlAction MediaControlAction;
    typedef ::mozilla::dom::MediaMetadataBase MediaMetadataBase;
    typedef ::mozilla::dom::MediaPlaybackState MediaPlaybackState;
    typedef ::mozilla::dom::MediaSessionAction MediaSessionAction;
    typedef ::mozilla::dom::MediaSessionPlaybackState MediaSessionPlaybackState;
    typedef ::mozilla::dom::MemoryReport MemoryReport;
    typedef ::mozilla::dom::MessageData MessageData;
    typedef ::mozilla::dom::MessageDataType MessageDataType;
    typedef ::mozilla::dom::MessagePort MessagePort;
    typedef ::mozilla::dom::MessagePortIdentifier MessagePortIdentifier;
    typedef ::mozilla::PerfStats::MetricMask MetricMask;
    typedef ::mozilla::dom::UserActivation::Modifiers Modifiers;
    typedef ::mozilla::dom::NativeThreadId NativeThreadId;
    typedef ::mozilla::dom::NavigationHistoryBehavior NavigationHistoryBehavior;
    typedef ::mozilla::dom::NotificationDirection NotificationDirection;
    typedef ::mozilla::ipc::NullPrincipalInfo NullPrincipalInfo;
    typedef ::mozilla::net::ObjectCreationArgs ObjectCreationArgs;
    typedef ::mozilla::dom::OriginAgentClusterInitializer OriginAgentClusterInitializer;
    typedef ::mozilla::OriginAttributes OriginAttributes;
    typedef ::mozilla::OriginAttributesPattern OriginAttributesPattern;
    typedef ::OverrideMapping OverrideMapping;
    typedef ::mozilla::dom::OwnerShowInfo OwnerShowInfo;
    typedef ::mozilla::ipc::PBackgroundStarterChild PBackgroundStarterChild;
    typedef ::mozilla::ipc::PBackgroundStarterParent PBackgroundStarterParent;
    typedef ::mozilla::dom::PBrowserChild PBrowserChild;
    typedef ::mozilla::dom::PBrowserParent PBrowserParent;
    typedef ::mozilla::PClipboardContentAnalysisChild PClipboardContentAnalysisChild;
    typedef ::mozilla::PClipboardContentAnalysisParent PClipboardContentAnalysisParent;
    typedef ::mozilla::PClipboardReadRequestChild PClipboardReadRequestChild;
    typedef ::mozilla::PClipboardReadRequestParent PClipboardReadRequestParent;
    typedef ::mozilla::PClipboardWriteRequestChild PClipboardWriteRequestChild;
    typedef ::mozilla::PClipboardWriteRequestParent PClipboardWriteRequestParent;
    typedef ::mozilla::layers::PCompositorManagerChild PCompositorManagerChild;
    typedef ::mozilla::layers::PCompositorManagerParent PCompositorManagerParent;
    typedef ::mozilla::dom::PContentPermissionRequestChild PContentPermissionRequestChild;
    typedef ::mozilla::dom::PContentPermissionRequestParent PContentPermissionRequestParent;
    typedef ::mozilla::dom::PCycleCollectWithLogsChild PCycleCollectWithLogsChild;
    typedef ::mozilla::dom::PCycleCollectWithLogsParent PCycleCollectWithLogsParent;
    typedef ::mozilla::net::PDocumentChannelChild PDocumentChannelChild;
    typedef ::mozilla::net::PDocumentChannelParent PDocumentChannelParent;
    typedef ::mozilla::extensions::PExtensionsChild PExtensionsChild;
    typedef ::mozilla::extensions::PExtensionsParent PExtensionsParent;
    typedef ::mozilla::dom::PExternalHelperAppChild PExternalHelperAppChild;
    typedef ::mozilla::dom::PExternalHelperAppParent PExternalHelperAppParent;
    typedef ::mozilla::gmp::PGMPChild PGMPChild;
    typedef ::mozilla::gmp::PGMPContentChild PGMPContentChild;
    typedef ::mozilla::gmp::PGMPContentParent PGMPContentParent;
    typedef ::mozilla::gmp::PGMPParent PGMPParent;
    typedef ::mozilla::gmp::PGMPServiceChild PGMPServiceChild;
    typedef ::mozilla::gmp::PGMPServiceParent PGMPServiceParent;
    typedef ::mozilla::hal_sandbox::PHalChild PHalChild;
    typedef ::mozilla::hal_sandbox::PHalParent PHalParent;
    typedef ::mozilla::dom::PHandlerServiceChild PHandlerServiceChild;
    typedef ::mozilla::dom::PHandlerServiceParent PHandlerServiceParent;
    typedef ::mozilla::devtools::PHeapSnapshotTempFileHelperChild PHeapSnapshotTempFileHelperChild;
    typedef ::mozilla::devtools::PHeapSnapshotTempFileHelperParent PHeapSnapshotTempFileHelperParent;
    typedef ::mozilla::layers::PImageBridgeChild PImageBridgeChild;
    typedef ::mozilla::layers::PImageBridgeParent PImageBridgeParent;
    typedef ::mozilla::media::PMediaChild PMediaChild;
    typedef ::mozilla::media::PMediaParent PMediaParent;
    typedef ::mozilla::net::PNeckoChild PNeckoChild;
    typedef ::mozilla::net::PNeckoParent PNeckoParent;
    typedef ::mozilla::PProcessHangMonitorChild PProcessHangMonitorChild;
    typedef ::mozilla::PProcessHangMonitorParent PProcessHangMonitorParent;
    typedef ::mozilla::PProfilerChild PProfilerChild;
    typedef ::mozilla::PProfilerParent PProfilerParent;
    typedef ::mozilla::PRemoteMediaManagerChild PRemoteMediaManagerChild;
    typedef ::mozilla::PRemoteMediaManagerParent PRemoteMediaManagerParent;
    typedef ::mozilla::layout::PRemotePrintJobChild PRemotePrintJobChild;
    typedef ::mozilla::layout::PRemotePrintJobParent PRemotePrintJobParent;
    typedef ::mozilla::PRemoteSpellcheckEngineChild PRemoteSpellcheckEngineChild;
    typedef ::mozilla::PRemoteSpellcheckEngineParent PRemoteSpellcheckEngineParent;
    typedef ::mozilla::dom::PRemoteWorkerDebuggerManagerChild PRemoteWorkerDebuggerManagerChild;
    typedef ::mozilla::dom::PRemoteWorkerDebuggerManagerParent PRemoteWorkerDebuggerManagerParent;
    typedef ::mozilla::dom::PRemoteWorkerServiceChild PRemoteWorkerServiceChild;
    typedef ::mozilla::dom::PRemoteWorkerServiceParent PRemoteWorkerServiceParent;
    typedef ::mozilla::loader::PScriptCacheChild PScriptCacheChild;
    typedef ::mozilla::loader::PScriptCacheParent PScriptCacheParent;
    typedef ::mozilla::dom::PSessionStorageObserverChild PSessionStorageObserverChild;
    typedef ::mozilla::dom::PSessionStorageObserverParent PSessionStorageObserverParent;
    typedef ::mozilla::dom::PSpeechSynthesisChild PSpeechSynthesisChild;
    typedef ::mozilla::dom::PSpeechSynthesisParent PSpeechSynthesisParent;
    typedef ::mozilla::extensions::PStreamFilterChild PStreamFilterChild;
    typedef ::mozilla::extensions::PStreamFilterParent PStreamFilterParent;
    typedef ::mozilla::ipc::PTestShellChild PTestShellChild;
    typedef ::mozilla::ipc::PTestShellParent PTestShellParent;
    typedef ::mozilla::dom::PURLClassifierChild PURLClassifierChild;
    typedef ::mozilla::dom::PURLClassifierLocalByNameChild PURLClassifierLocalByNameChild;
    typedef ::mozilla::dom::PURLClassifierLocalByNameParent PURLClassifierLocalByNameParent;
    typedef ::mozilla::dom::PURLClassifierLocalChild PURLClassifierLocalChild;
    typedef ::mozilla::dom::PURLClassifierLocalParent PURLClassifierLocalParent;
    typedef ::mozilla::dom::PURLClassifierParent PURLClassifierParent;
    typedef ::mozilla::gfx::PVRManagerChild PVRManagerChild;
    typedef ::mozilla::gfx::PVRManagerParent PVRManagerParent;
    typedef ::mozilla::PWebBrowserPersistDocumentChild PWebBrowserPersistDocumentChild;
    typedef ::mozilla::PWebBrowserPersistDocumentParent PWebBrowserPersistDocumentParent;
    typedef ::mozilla::dom::PWindowGlobalChild PWindowGlobalChild;
    typedef ::mozilla::dom::PWindowGlobalParent PWindowGlobalParent;
    typedef ::mozilla::performance::pageload_event::PageloadEventData PageloadEventData;
    typedef ::mozilla::net::ParentLoadInfoForwarderArgs ParentLoadInfoForwarderArgs;
    typedef ::mozilla::dom::ParentShowInfo ParentShowInfo;
    typedef ::mozilla::dom::PerformanceTimingData PerformanceTimingData;
    typedef ::IPC::Permission Permission;
    typedef ::mozilla::dom::PermissionChoice PermissionChoice;
    typedef ::mozilla::dom::PermissionRequest PermissionRequest;
    typedef ::mozilla::dom::PermitUnloadResult PermitUnloadResult;
    typedef ::mozilla::ipc::PolicyContainerArgs PolicyContainerArgs;
    typedef ::mozilla::dom::PopupIPCTabContext PopupIPCTabContext;
    typedef ::mozilla::dom::PositionState PositionState;
    typedef ::mozilla::dom::PostMessageData PostMessageData;
    typedef ::mozilla::dom::PostMessageSource PostMessageSource;
    typedef ::mozilla::dom::Pref Pref;
    typedef ::mozilla::dom::PrefValue PrefValue;
    typedef ::mozilla::net::PreferredAlternativeDataDeliveryTypeIPC PreferredAlternativeDataDeliveryTypeIPC;
    typedef ::mozilla::net::PreferredAlternativeDataTypeParams PreferredAlternativeDataTypeParams;
    typedef ::mozilla::ipc::PrincipalInfo PrincipalInfo;
    typedef ::mozilla::embedding::PrintData PrintData;
    typedef ::mozilla::dom::PrivateAttributionImpressionType PrivateAttributionImpressionType;
    typedef base::ProcessId ProcessId;
    typedef ::mozilla::hal::ProcessPriority ProcessPriority;
    typedef ::mozilla::dom::ServiceWorkerShutdownState::Progress Progress;
    typedef ::mozilla::ipc::ProtocolFdMapping ProtocolFdMapping;
    typedef mozilla::ipc::ProtocolId ProtocolId;
    typedef ::mozilla::net::ProxyInfoCloneArgs ProxyInfoCloneArgs;
    typedef ::mozilla::RFPTargetSet RFPTargetSet;
    typedef ::mozilla::psm::RSAKey RSAKey;
    typedef ::mozilla::ipc::ReadOnlySharedMemoryHandle ReadOnlySharedMemoryHandle;
    typedef ::mozilla::net::RedirectHistoryEntryInfo RedirectHistoryEntryInfo;
    typedef ::mozilla::net::RedirectToRealChannelArgs RedirectToRealChannelArgs;
    typedef ::mozilla::dom::RefMessageData RefMessageData;
    typedef ::mozilla::RemoteLazyInputStream RemoteLazyInputStream;
    typedef ::mozilla::RemoteLazyStream RemoteLazyStream;
    typedef ::mozilla::RemoteMediaIn RemoteMediaIn;
    typedef ::mozilla::net::RemoteStreamInfo RemoteStreamInfo;
    typedef ::mozilla::dom::ReplacementChannelConfigInit ReplacementChannelConfigInit;
    typedef ::mozilla::net::RequestHeaderTuples RequestHeaderTuples;
    typedef ::mozilla::dom::RequestMode RequestMode;
    typedef ::nsIContentSecurityPolicy::RequireTrustedTypesForDirectiveState RequireTrustedTypesForDirectiveState;
    typedef ::nsIDNSService::ResolverMode ResolverMode;
    typedef ::mozilla::net::ResourceTimingStructArgs ResourceTimingStructArgs;
    typedef mozilla::ipc::ResponseRejectReason ResponseRejectReason;
    typedef ::mozilla::Telemetry::ScalarAction ScalarAction;
    typedef ::nsILoadInfo::SchemelessInputType SchemelessInputType;
    typedef ::mozilla::dom::ScreenDetails ScreenDetails;
    typedef ::mozilla::hal::ScreenOrientation ScreenOrientation;
    typedef ::mozilla::ScrollbarPreference ScrollbarPreference;
    typedef ::mozilla::SerializedStructuredCloneBuffer SerializedStructuredCloneBuffer;
    typedef ::mozilla::dom::SessionHistoryInfo SessionHistoryInfo;
    typedef ::mozilla::ipc::Shmem Shmem;
    typedef ::mozilla::dom::IntegrityPolicy::Sources Sources;
    typedef ::mozilla::net::SpeculativeConnectionOverriderArgs SpeculativeConnectionOverriderArgs;
    typedef ::mozilla::StorageAccess StorageAccess;
    typedef ::mozilla::ContentBlockingNotifier::StorageAccessPermissionGrantedReason StorageAccessPermissionGrantedReason;
    typedef ::mozilla::StorageAccessAPIHelper::StorageAccessPromptChoices StorageAccessPromptChoices;
    typedef ::nsILoadInfo::StoragePermissionState StoragePermissionState;
    typedef ::mozilla::dom::StringBundleDescriptor StringBundleDescriptor;
    typedef ::mozilla::dom::ipc::StructuredCloneData StructuredCloneData;
    typedef ::SubstitutionMapping SubstitutionMapping;
    typedef ::mozilla::gfx::SurfaceFormat SurfaceFormat;
    typedef ::mozilla::dom::SyncedContextInitializer SyncedContextInitializer;
    typedef ::mozilla::dom::SystemFontList SystemFontList;
    typedef ::mozilla::dom::SystemFontListEntry SystemFontListEntry;
    typedef ::mozilla::dom::SystemFontOptions SystemFontOptions;
    typedef ::mozilla::dom::geolocation::SystemGeolocationPermissionBehavior SystemGeolocationPermissionBehavior;
    typedef ::mozilla::dom::SystemParameterValue SystemParameterValue;
    typedef ::mozilla::ipc::SystemPrincipalInfo SystemPrincipalInfo;
    typedef ::mozilla::dom::TabId TabId;
    typedef ::mozilla::dom::TextRecognitionQuad TextRecognitionQuad;
    typedef ::mozilla::dom::TextRecognitionResult TextRecognitionResult;
    typedef ::mozilla::dom::TextRecognitionResultOrError TextRecognitionResultOrError;
    typedef ::mozilla::layers::TextureFactoryIdentifier TextureFactoryIdentifier;
    typedef ::mozilla::widget::ThemeChangeKind ThemeChangeKind;
    typedef ::mozilla::TimeDuration TimeDuration;
    typedef ::mozilla::TimeStamp TimeStamp;
    typedef ::mozilla::dom::TimedChannelInfo TimedChannelInfo;
    typedef ::mozilla::net::TimingStructArgs TimingStructArgs;
    typedef ::mozilla::net::TransactionObserverResult TransactionObserverResult;
    template<class T> using UniquePtr = mozilla::UniquePtr<T>;
    typedef ::mozilla::dom::UserNavigationInvolvement UserNavigationInvolvement;
    typedef ::mozilla::gfx::D3D11Checks::VideoFormatOption VideoFormatOption;
    typedef ::mozilla::gfx::D3D11Checks::VideoFormatOptionSet VideoFormatOptionSet;
    typedef ::mozilla::dom::VisibilityState VisibilityState;
    typedef ::mozilla::dom::VisitedQueryResult VisitedQueryResult;
    typedef ::mozilla::ipc::WebTransportHash WebTransportHash;
    typedef ::mozilla::dom::WindowContextInitializer WindowContextInitializer;
    typedef ::mozilla::dom::WindowContextTransaction WindowContextTransaction;
    typedef ::mozilla::dom::WindowGlobalInit WindowGlobalInit;
    typedef ::mozilla::dom::Wireframe Wireframe;
    typedef ::mozilla::dom::XPCOMInitData XPCOMInitData;
    typedef ::gfxImageFormat gfxImageFormat;
    typedef ::gfxSparseBitSet gfxSparseBitSet;
    typedef ::int16_t int16_t;
    typedef ::int32_t int32_t;
    typedef ::int64_t int64_t;
    typedef ::int8_t int8_t;
    typedef ::intptr_t intptr_t;
    typedef ::nsIUrlClassifierFeature::listType listType;
    typedef ::nsCString nsCString;
    typedef ::nsContentPolicyType nsContentPolicyType;
    typedef ::nsDOMNavigationTiming nsDOMNavigationTiming;
    typedef ::nsDocShellLoadState nsDocShellLoadState;
    typedef ::nsHttpAtom nsHttpAtom;
    typedef ::mozilla::net::nsHttpResponseHead nsHttpResponseHead;
    typedef ::nsID nsID;
    typedef ::nsIDOMGeoPosition nsIDOMGeoPosition;
    typedef ::nsIInputStream nsIInputStream;
    typedef ::nsILayoutHistoryState nsILayoutHistoryState;
    typedef ::nsIPolicyContainer nsIPolicyContainer;
    typedef ::nsIPrincipal nsIPrincipal;
    typedef ::nsIPropertyBag2 nsIPropertyBag2;
    typedef ::nsIReferrerInfo nsIReferrerInfo;
    typedef ::nsITransportSecurityInfo nsITransportSecurityInfo;
    typedef ::nsIURI nsIURI;
    typedef ::nsIVariant nsIVariant;
    typedef ::nsIX509Cert nsIX509Cert;
    typedef ::nsPoint nsPoint;
    typedef ::nsSizeMode nsSizeMode;
    typedef ::nsString nsString;
    typedef ::nscolor nscolor;
    typedef ::nsresult nsresult;
    typedef ::mozilla::null_t null_t;
    typedef ::uint16_t uint16_t;
    typedef ::uint32_t uint32_t;
    typedef ::uint64_t uint64_t;
    typedef ::uint8_t uint8_t;
    typedef ::uintptr_t uintptr_t;
    typedef ::mozilla::void_t void_t;

public:
    typedef std::function<void(const uint32_t&)> RequestMemoryReportResolver;
    typedef std::function<void(std::tuple<const nsresult&, mozilla::Maybe<IPCImage>&&>)> DecodeImageResolver;
    typedef std::function<void(const nsACString&)> CollectPerfStatsJSONResolver;
    typedef std::function<void(std::tuple<const uint32_t&, const uint32_t&>)> CollectScrollingMetricsResolver;
    typedef std::function<void(const bool&)> FlushCodeCoverageCountersResolver;
    typedef std::function<void(const nsresult&)> CrossProcessRedirectResolver;
    typedef std::function<void(const bool&)> LoadURIResolver;
    typedef std::function<void(std::tuple<nsILayoutHistoryState*, const mozilla::Maybe<Wireframe>&>)> GetLayoutHistoryStateResolver;
    typedef std::function<void(const PermitUnloadResult&)> DispatchBeforeUnloadToSubtreeResolver;
    typedef std::function<void(const PermitUnloadResult&)> DispatchNavigateToTraversableResolver;
    typedef MozPromise<mozilla::Maybe<LoadingSessionHistoryInfo>, ResponseRejectReason, true> GetLoadingSessionHistoryInfoFromParentPromise;
    typedef MozPromise<Endpoint<::mozilla::extensions::PStreamFilterChild>, ResponseRejectReason, true> InitStreamFilterPromise;
    typedef MozPromise<FileDescOrError, ResponseRejectReason, true> CreateAudioIPCConnectionPromise;
    typedef MozPromise<ClipboardReadRequestOrError, ResponseRejectReason, true> GetClipboardDataSnapshotPromise;
    typedef MozPromise<TextRecognitionResultOrError, ResponseRejectReason, true> FindImageTextPromise;
    typedef MozPromise<CreatedWindowInfo, ResponseRejectReason, true> CreateWindowPromise;
    typedef MozPromise<nsresult, ResponseRejectReason, true> AddCertExceptionPromise;
    typedef MozPromise<bool, ResponseRejectReason, true> AutomaticStorageAccessPermissionCanBeGrantedPromise;
    typedef MozPromise<bool, ResponseRejectReason, true> StorageAccessPermissionGrantedForOriginPromise;
    typedef MozPromise<mozilla::Maybe<StorageAccessPromptChoices>, ResponseRejectReason, true> CompleteAllowAccessForPromise;
    typedef MozPromise<bool, ResponseRejectReason, true> SetAllowStorageAccessRequestFlagPromise;
    typedef MozPromise<bool, ResponseRejectReason, true> TestAllowStorageAccessRequestFlagPromise;
    typedef MozPromise<mozilla::Maybe<bool>, ResponseRejectReason, true> TestCookiePermissionDecidedPromise;
    typedef MozPromise<mozilla::Maybe<bool>, ResponseRejectReason, true> TestStorageAccessPermissionPromise;
    typedef MozPromise<std::tuple<bool, mozilla::Maybe<mozilla::NotNull<RefPtr<nsDocShellLoadState>>>, mozilla::Maybe<bool>>, ResponseRejectReason, true> NotifyOnHistoryReloadPromise;
    typedef MozPromise<mozilla::Maybe<int32_t>, ResponseRejectReason, true> HistoryGoPromise;
    typedef MozPromise<nsresult, ResponseRejectReason, true> NavigationTraversePromise;
    typedef MozPromise<BlobURLDataRequestResult, ResponseRejectReason, true> BlobURLDataRequestPromise;
    typedef MozPromise<uint64_t, ResponseRejectReason, true> DiscardBrowsingContextPromise;
    typedef std::function<void(const uint64_t&)> DiscardBrowsingContextResolver;
    typedef std::function<void(const bool&)> DiscardWindowContextResolver;
    typedef std::function<void(ByteBuf&&)> FlushFOGDataResolver;
    typedef MozPromise<std::tuple<nsresult, mozilla::Maybe<ByteBuf>>, ResponseRejectReason, true> GetSystemIconPromise;
    typedef MozPromise<SystemGeolocationPermissionBehavior, ResponseRejectReason, true> GetSystemGeolocationPermissionBehaviorPromise;
    typedef MozPromise<GeolocationPermissionStatus, ResponseRejectReason, true> RequestGeolocationPermissionFromUserPromise;

protected:
    virtual mozilla::ipc::IPCResult
    RecvPWebBrowserPersistDocumentConstructor(
            PWebBrowserPersistDocumentChild* actor,
            PBrowserChild* aBrowser,
            const MaybeDiscardedBrowsingContext& aContext);
    virtual mozilla::ipc::IPCResult
    RecvPCycleCollectWithLogsConstructor(
            PCycleCollectWithLogsChild* actor,
            const bool& dumpAllTraces,
            const FileDescriptor& gcLog,
            const FileDescriptor& ccLog);
    virtual mozilla::ipc::IPCResult
    RecvPTestShellConstructor(PTestShellChild* actor);
    virtual mozilla::ipc::IPCResult
    RecvPScriptCacheConstructor(
            PScriptCacheChild* actor,
            const FileDescOrError& cacheFile,
            const bool& wantCacheData);
    virtual mozilla::ipc::IPCResult
    RecvPRemotePrintJobConstructor(PRemotePrintJobChild* actor);
    void
    ProcessingError(
            Result aCode,
            const char* aReason) override;
    bool
    ShouldContinueFromReplyTimeout() override;

public:
    typedef mozilla::ipc::IProtocol IProtocol;
    typedef IPC::Message Message;
    typedef base::ProcessHandle ProcessHandle;
    typedef mozilla::ipc::MessageChannel MessageChannel;

public:
    MOZ_IMPLICIT PContentChild();

    virtual ~PContentChild();

protected:
    void
    ActorAlloc() final;
    void
    ActorDealloc() final;
public:
    ::base::ProcessId
    OtherPid() const;
    ::GeckoChildID
    OtherChildID() const;
    ::mozilla::ipc::EndpointProcInfo
    OtherEndpointProcInfo() const;

    void
    ManagedPBrowserChild(nsTArray<PBrowserChild*>& aArr) const;
    const ManagedContainer<PBrowserChild>&
    ManagedPBrowserChild() const;

    void
    ManagedPClipboardReadRequestChild(nsTArray<PClipboardReadRequestChild*>& aArr) const;
    const ManagedContainer<PClipboardReadRequestChild>&
    ManagedPClipboardReadRequestChild() const;

    void
    ManagedPClipboardWriteRequestChild(nsTArray<PClipboardWriteRequestChild*>& aArr) const;
    const ManagedContainer<PClipboardWriteRequestChild>&
    ManagedPClipboardWriteRequestChild() const;

    void
    ManagedPContentPermissionRequestChild(nsTArray<PContentPermissionRequestChild*>& aArr) const;
    const ManagedContainer<PContentPermissionRequestChild>&
    ManagedPContentPermissionRequestChild() const;

    void
    ManagedPCycleCollectWithLogsChild(nsTArray<PCycleCollectWithLogsChild*>& aArr) const;
    const ManagedContainer<PCycleCollectWithLogsChild>&
    ManagedPCycleCollectWithLogsChild() const;

    void
    ManagedPExtensionsChild(nsTArray<PExtensionsChild*>& aArr) const;
    const ManagedContainer<PExtensionsChild>&
    ManagedPExtensionsChild() const;

    void
    ManagedPExternalHelperAppChild(nsTArray<PExternalHelperAppChild*>& aArr) const;
    const ManagedContainer<PExternalHelperAppChild>&
    ManagedPExternalHelperAppChild() const;

    void
    ManagedPHalChild(nsTArray<PHalChild*>& aArr) const;
    const ManagedContainer<PHalChild>&
    ManagedPHalChild() const;

    void
    ManagedPHandlerServiceChild(nsTArray<PHandlerServiceChild*>& aArr) const;
    const ManagedContainer<PHandlerServiceChild>&
    ManagedPHandlerServiceChild() const;

    void
    ManagedPHeapSnapshotTempFileHelperChild(nsTArray<PHeapSnapshotTempFileHelperChild*>& aArr) const;
    const ManagedContainer<PHeapSnapshotTempFileHelperChild>&
    ManagedPHeapSnapshotTempFileHelperChild() const;

    void
    ManagedPRemotePrintJobChild(nsTArray<PRemotePrintJobChild*>& aArr) const;
    const ManagedContainer<PRemotePrintJobChild>&
    ManagedPRemotePrintJobChild() const;

    void
    ManagedPMediaChild(nsTArray<PMediaChild*>& aArr) const;
    const ManagedContainer<PMediaChild>&
    ManagedPMediaChild() const;

    void
    ManagedPNeckoChild(nsTArray<PNeckoChild*>& aArr) const;
    const ManagedContainer<PNeckoChild>&
    ManagedPNeckoChild() const;

    void
    ManagedPSpeechSynthesisChild(nsTArray<PSpeechSynthesisChild*>& aArr) const;
    const ManagedContainer<PSpeechSynthesisChild>&
    ManagedPSpeechSynthesisChild() const;

    void
    ManagedPTestShellChild(nsTArray<PTestShellChild*>& aArr) const;
    const ManagedContainer<PTestShellChild>&
    ManagedPTestShellChild() const;

    void
    ManagedPRemoteSpellcheckEngineChild(nsTArray<PRemoteSpellcheckEngineChild*>& aArr) const;
    const ManagedContainer<PRemoteSpellcheckEngineChild>&
    ManagedPRemoteSpellcheckEngineChild() const;

    void
    ManagedPWebBrowserPersistDocumentChild(nsTArray<PWebBrowserPersistDocumentChild*>& aArr) const;
    const ManagedContainer<PWebBrowserPersistDocumentChild>&
    ManagedPWebBrowserPersistDocumentChild() const;

    void
    ManagedPURLClassifierChild(nsTArray<PURLClassifierChild*>& aArr) const;
    const ManagedContainer<PURLClassifierChild>&
    ManagedPURLClassifierChild() const;

    void
    ManagedPURLClassifierLocalChild(nsTArray<PURLClassifierLocalChild*>& aArr) const;
    const ManagedContainer<PURLClassifierLocalChild>&
    ManagedPURLClassifierLocalChild() const;

    void
    ManagedPURLClassifierLocalByNameChild(nsTArray<PURLClassifierLocalByNameChild*>& aArr) const;
    const ManagedContainer<PURLClassifierLocalByNameChild>&
    ManagedPURLClassifierLocalByNameChild() const;

    void
    ManagedPScriptCacheChild(nsTArray<PScriptCacheChild*>& aArr) const;
    const ManagedContainer<PScriptCacheChild>&
    ManagedPScriptCacheChild() const;

    void
    ManagedPSessionStorageObserverChild(nsTArray<PSessionStorageObserverChild*>& aArr) const;
    const ManagedContainer<PSessionStorageObserverChild>&
    ManagedPSessionStorageObserverChild() const;

    mozilla::Span<mozilla::ipc::ProtocolId const>
    ManagedProtocolIds() const final;

    UntypedManagedContainer*
    GetManagedActors(mozilla::ipc::ProtocolId aProtocol) final;

    void
    RejectPendingResponses(ResponseRejectReason aReason) final;

    ManagedEndpoint<PBrowserParent>
    OpenPBrowserEndpoint(PBrowserChild* aActor);
    bool
    BindPBrowserEndpoint(
            ManagedEndpoint<PBrowserChild> aEndpoint,
            PBrowserChild* aActor);

    ManagedEndpoint<PClipboardReadRequestParent>
    OpenPClipboardReadRequestEndpoint(PClipboardReadRequestChild* aActor);
    bool
    BindPClipboardReadRequestEndpoint(
            ManagedEndpoint<PClipboardReadRequestChild> aEndpoint,
            PClipboardReadRequestChild* aActor);

    ManagedEndpoint<PClipboardWriteRequestParent>
    OpenPClipboardWriteRequestEndpoint(PClipboardWriteRequestChild* aActor);
    bool
    BindPClipboardWriteRequestEndpoint(
            ManagedEndpoint<PClipboardWriteRequestChild> aEndpoint,
            PClipboardWriteRequestChild* aActor);

    ManagedEndpoint<PContentPermissionRequestParent>
    OpenPContentPermissionRequestEndpoint(PContentPermissionRequestChild* aActor);
    bool
    BindPContentPermissionRequestEndpoint(
            ManagedEndpoint<PContentPermissionRequestChild> aEndpoint,
            PContentPermissionRequestChild* aActor);

    ManagedEndpoint<PCycleCollectWithLogsParent>
    OpenPCycleCollectWithLogsEndpoint(PCycleCollectWithLogsChild* aActor);
    bool
    BindPCycleCollectWithLogsEndpoint(
            ManagedEndpoint<PCycleCollectWithLogsChild> aEndpoint,
            PCycleCollectWithLogsChild* aActor);

    ManagedEndpoint<PExtensionsParent>
    OpenPExtensionsEndpoint(PExtensionsChild* aActor);
    bool
    BindPExtensionsEndpoint(
            ManagedEndpoint<PExtensionsChild> aEndpoint,
            PExtensionsChild* aActor);

    ManagedEndpoint<PExternalHelperAppParent>
    OpenPExternalHelperAppEndpoint(PExternalHelperAppChild* aActor);
    bool
    BindPExternalHelperAppEndpoint(
            ManagedEndpoint<PExternalHelperAppChild> aEndpoint,
            PExternalHelperAppChild* aActor);

    ManagedEndpoint<PHalParent>
    OpenPHalEndpoint(PHalChild* aActor);
    bool
    BindPHalEndpoint(
            ManagedEndpoint<PHalChild> aEndpoint,
            PHalChild* aActor);

    ManagedEndpoint<PHandlerServiceParent>
    OpenPHandlerServiceEndpoint(PHandlerServiceChild* aActor);
    bool
    BindPHandlerServiceEndpoint(
            ManagedEndpoint<PHandlerServiceChild> aEndpoint,
            PHandlerServiceChild* aActor);

    ManagedEndpoint<PHeapSnapshotTempFileHelperParent>
    OpenPHeapSnapshotTempFileHelperEndpoint(PHeapSnapshotTempFileHelperChild* aActor);
    bool
    BindPHeapSnapshotTempFileHelperEndpoint(
            ManagedEndpoint<PHeapSnapshotTempFileHelperChild> aEndpoint,
            PHeapSnapshotTempFileHelperChild* aActor);

    ManagedEndpoint<PRemotePrintJobParent>
    OpenPRemotePrintJobEndpoint(PRemotePrintJobChild* aActor);
    bool
    BindPRemotePrintJobEndpoint(
            ManagedEndpoint<PRemotePrintJobChild> aEndpoint,
            PRemotePrintJobChild* aActor);

    ManagedEndpoint<PMediaParent>
    OpenPMediaEndpoint(PMediaChild* aActor);
    bool
    BindPMediaEndpoint(
            ManagedEndpoint<PMediaChild> aEndpoint,
            PMediaChild* aActor);

    ManagedEndpoint<PNeckoParent>
    OpenPNeckoEndpoint(PNeckoChild* aActor);
    bool
    BindPNeckoEndpoint(
            ManagedEndpoint<PNeckoChild> aEndpoint,
            PNeckoChild* aActor);

    ManagedEndpoint<PSpeechSynthesisParent>
    OpenPSpeechSynthesisEndpoint(PSpeechSynthesisChild* aActor);
    bool
    BindPSpeechSynthesisEndpoint(
            ManagedEndpoint<PSpeechSynthesisChild> aEndpoint,
            PSpeechSynthesisChild* aActor);

    ManagedEndpoint<PTestShellParent>
    OpenPTestShellEndpoint(PTestShellChild* aActor);
    bool
    BindPTestShellEndpoint(
            ManagedEndpoint<PTestShellChild> aEndpoint,
            PTestShellChild* aActor);

    ManagedEndpoint<PRemoteSpellcheckEngineParent>
    OpenPRemoteSpellcheckEngineEndpoint(PRemoteSpellcheckEngineChild* aActor);
    bool
    BindPRemoteSpellcheckEngineEndpoint(
            ManagedEndpoint<PRemoteSpellcheckEngineChild> aEndpoint,
            PRemoteSpellcheckEngineChild* aActor);

    ManagedEndpoint<PWebBrowserPersistDocumentParent>
    OpenPWebBrowserPersistDocumentEndpoint(PWebBrowserPersistDocumentChild* aActor);
    bool
    BindPWebBrowserPersistDocumentEndpoint(
            ManagedEndpoint<PWebBrowserPersistDocumentChild> aEndpoint,
            PWebBrowserPersistDocumentChild* aActor);

    ManagedEndpoint<PURLClassifierParent>
    OpenPURLClassifierEndpoint(PURLClassifierChild* aActor);
    bool
    BindPURLClassifierEndpoint(
            ManagedEndpoint<PURLClassifierChild> aEndpoint,
            PURLClassifierChild* aActor);

    ManagedEndpoint<PURLClassifierLocalParent>
    OpenPURLClassifierLocalEndpoint(PURLClassifierLocalChild* aActor);
    bool
    BindPURLClassifierLocalEndpoint(
            ManagedEndpoint<PURLClassifierLocalChild> aEndpoint,
            PURLClassifierLocalChild* aActor);

    ManagedEndpoint<PURLClassifierLocalByNameParent>
    OpenPURLClassifierLocalByNameEndpoint(PURLClassifierLocalByNameChild* aActor);
    bool
    BindPURLClassifierLocalByNameEndpoint(
            ManagedEndpoint<PURLClassifierLocalByNameChild> aEndpoint,
            PURLClassifierLocalByNameChild* aActor);

    ManagedEndpoint<PScriptCacheParent>
    OpenPScriptCacheEndpoint(PScriptCacheChild* aActor);
    bool
    BindPScriptCacheEndpoint(
            ManagedEndpoint<PScriptCacheChild> aEndpoint,
            PScriptCacheChild* aActor);

    ManagedEndpoint<PSessionStorageObserverParent>
    OpenPSessionStorageObserverEndpoint(PSessionStorageObserverChild* aActor);
    bool
    BindPSessionStorageObserverEndpoint(
            ManagedEndpoint<PSessionStorageObserverChild> aEndpoint,
            PSessionStorageObserverChild* aActor);

    bool
    SendConstructPopupBrowser(
            ManagedEndpoint<::mozilla::dom::PBrowserParent>&& browserEp,
            ManagedEndpoint<::mozilla::dom::PWindowGlobalParent>&& windowEp,
            const TabId& tabId,
            const IPCTabContext& context,
            const WindowGlobalInit& windowInit,
            const uint32_t& chromeFlags);

    bool
    SendCloneDocumentTreeInto(
            const MaybeDiscardedBrowsingContext& aSourceBc,
            const MaybeDiscardedBrowsingContext& aTargetBc,
            const PrintData& aPrintData);

    bool
    SendUpdateRemotePrintSettings(
            const MaybeDiscardedBrowsingContext& aBc,
            const PrintData& aPrintData);

    PExtensionsChild*
    SendPExtensionsConstructor(PExtensionsChild* actor);

    PWebBrowserPersistDocumentChild*
    SendPWebBrowserPersistDocumentConstructor(
            PWebBrowserPersistDocumentChild* actor,
            PBrowserChild* aBrowser,
            const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendRawMessage(
            const JSActorMessageMeta& aMetadata,
            const JSIPCValue& aData,
            const UniquePtr<ClonedMessageData>& aStack);

    bool
    SendConsumeHistoryActivation(const MaybeDiscardedBrowsingContext& aTop);

    bool
    SendSynchronizeLayoutHistoryState(
            const MaybeDiscardedBrowsingContext& aContext,
            nsILayoutHistoryState* aState);

    bool
    SendSessionHistoryEntryTitle(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsAString& aTitle);

    bool
    SendSessionHistoryEntryScrollRestorationIsManual(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aIsManual);

    bool
    SendSessionHistoryEntryScrollPosition(
            const MaybeDiscardedBrowsingContext& aContext,
            const int32_t& aX,
            const int32_t& aY);

    bool
    SendSessionHistoryEntryCacheKey(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint32_t& aCacheKey);

    bool
    SendSessionHistoryEntryStoreWindowNameInContiguousEntries(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsAString& aName);

    bool
    SendSessionHistoryEntryWireframe(
            const MaybeDiscardedBrowsingContext& aContext,
            const Wireframe& aWireframe);

    void
    SendGetLoadingSessionHistoryInfoFromParent(
            const MaybeDiscardedBrowsingContext& aContext,
            mozilla::ipc::ResolveCallback<mozilla::Maybe<LoadingSessionHistoryInfo>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<GetLoadingSessionHistoryInfoFromParentPromise>
    SendGetLoadingSessionHistoryInfoFromParent(const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendSynchronizeNavigationAPIState(
            const MaybeDiscardedBrowsingContext& aContext,
            const ClonedMessageData& aState);

    bool
    SendRemoveFromBFCache(const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendInitBackground(Endpoint<::mozilla::ipc::PBackgroundStarterParent>&& aEndpoint);

    bool
    SendCreateGMPService();

    bool
    SendCreateClipboardContentAnalysis(Endpoint<::mozilla::PClipboardContentAnalysisParent>&& aParentEndpoint);

    void
    SendInitStreamFilter(
            const uint64_t& channelId,
            const nsAString& addonId,
            mozilla::ipc::ResolveCallback<Endpoint<::mozilla::extensions::PStreamFilterChild>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<InitStreamFilterPromise>
    SendInitStreamFilter(
            const uint64_t& channelId,
            const nsAString& addonId);

    PRemoteSpellcheckEngineChild*
    SendPRemoteSpellcheckEngineConstructor();

    PRemoteSpellcheckEngineChild*
    SendPRemoteSpellcheckEngineConstructor(PRemoteSpellcheckEngineChild* actor);

    bool
    SendInitCrashReporter(const CrashReporterInitArgs& aInitArgs);

    bool
    SendIsSecureURI(
            nsIURI* aURI,
            const OriginAttributes& aOriginAttributes,
            bool* isSecureURI);

    bool
    SendAccumulateMixedContentHSTS(
            nsIURI* aURI,
            const bool& aActive,
            const OriginAttributes& aOriginAttributes);

    PHalChild*
    SendPHalConstructor();

    PHalChild*
    SendPHalConstructor(PHalChild* actor);

    PHeapSnapshotTempFileHelperChild*
    SendPHeapSnapshotTempFileHelperConstructor();

    PHeapSnapshotTempFileHelperChild*
    SendPHeapSnapshotTempFileHelperConstructor(PHeapSnapshotTempFileHelperChild* actor);

    PNeckoChild*
    SendPNeckoConstructor(PNeckoChild* actor);

    PSpeechSynthesisChild*
    SendPSpeechSynthesisConstructor(PSpeechSynthesisChild* actor);

    PMediaChild*
    SendPMediaConstructor();

    PMediaChild*
    SendPMediaConstructor(PMediaChild* actor);

    void
    SendCreateAudioIPCConnection(
            mozilla::ipc::ResolveCallback<FileDescOrError>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<CreateAudioIPCConnectionPromise>
    SendCreateAudioIPCConnection();

    [[nodiscard]] PURLClassifierChild*
    SendPURLClassifierConstructor(
            nsIPrincipal* principal,
            bool* success);

    [[nodiscard]] PURLClassifierChild*
    SendPURLClassifierConstructor(
            PURLClassifierChild* actor,
            nsIPrincipal* principal,
            bool* success);

    PURLClassifierLocalChild*
    SendPURLClassifierLocalConstructor(
            nsIURI* uri,
            mozilla::Span<IPCURLClassifierFeature const> features);

    PURLClassifierLocalChild*
    SendPURLClassifierLocalConstructor(
            PURLClassifierLocalChild* actor,
            nsIURI* uri,
            mozilla::Span<IPCURLClassifierFeature const> features);

    PURLClassifierLocalByNameChild*
    SendPURLClassifierLocalByNameConstructor(
            nsIURI* uri,
            mozilla::Span<nsCString const> featureNames,
            const listType& aListType);

    PURLClassifierLocalByNameChild*
    SendPURLClassifierLocalByNameConstructor(
            PURLClassifierLocalByNameChild* actor,
            nsIURI* uri,
            mozilla::Span<nsCString const> featureNames,
            const listType& aListType);

    PSessionStorageObserverChild*
    SendPSessionStorageObserverConstructor();

    PSessionStorageObserverChild*
    SendPSessionStorageObserverConstructor(PSessionStorageObserverChild* actor);

    bool
    SendStartVisitedQueries(mozilla::Span<RefPtr<nsIURI> const> uri);

    bool
    SendSetURITitle(
            nsIURI* uri,
            const nsAString& title);

    bool
    SendLoadURIExternal(
            nsIURI* uri,
            nsIPrincipal* triggeringPrincipal,
            nsIPrincipal* redirectPrincipal,
            const MaybeDiscardedBrowsingContext& browsingContext,
            const bool& wasExternallyTriggered,
            const bool& hasValidUserGestureActivation,
            const bool& newWindowTarget);

    bool
    SendExtProtocolChannelConnectParent(const uint64_t& registrarId);

    bool
    SendSyncMessage(
            const nsAString& aMessage,
            const ClonedMessageData& aData,
            nsTArray<UniquePtr<StructuredCloneData>>* retval);

    bool
    SendAddSecurityState(
            const MaybeDiscardedWindowContext& aContext,
            const uint32_t& aStateFlags);

    PExternalHelperAppChild*
    SendPExternalHelperAppConstructor(
            PExternalHelperAppChild* actor,
            nsIURI* uri,
            const LoadInfoArgs& loadInfoArgs,
            const nsACString& aMimeContentType,
            const nsACString& aContentDisposition,
            const uint32_t& aContentDispositionHint,
            const nsAString& aContentDispositionFilename,
            const bool& aForceSave,
            const int64_t& aContentLength,
            const bool& aWasFileChannel,
            nsIURI* aReferrer,
            const MaybeDiscardedBrowsingContext& aContext);

    PHandlerServiceChild*
    SendPHandlerServiceConstructor(PHandlerServiceChild* actor);

    bool
    SendAddGeolocationListener(const bool& highAccuracy);

    bool
    SendRemoveGeolocationListener();

    bool
    SendSetGeolocationHigherAccuracy(const bool& enable);

    bool
    SendConsoleMessage(const nsAString& message);

    bool
    SendScriptErrorWithStack(
            const nsAString& message,
            const nsACString& sourceName,
            const uint32_t& lineNumber,
            const uint32_t& colNumber,
            const uint32_t& flags,
            const nsACString& category,
            const bool& isFromPrivateWindow,
            const bool& isFromChromeContext,
            const ClonedMessageData& stack);

    bool
    SendSetClipboard(
            IPCTransferable&& aTransferable,
            const ClipboardType& aWhichClipboard,
            const MaybeDiscardedWindowContext& aRequestingWindowContext);

    bool
    SendGetClipboard(
            mozilla::Span<nsCString const> aTypes,
            const ClipboardType& aWhichClipboard,
            const MaybeDiscardedWindowContext& aRequestingWindowContext,
            IPCTransferableDataOrError* transferableDataOrError);

    void
    SendGetClipboardDataSnapshot(
            mozilla::Span<nsCString const> aTypes,
            const ClipboardType& aWhichClipboard,
            const MaybeDiscardedWindowContext& aRequestingWindowContext,
            mozilla::NotNull<nsIPrincipal*> aRequestingPrincipal,
            mozilla::ipc::ResolveCallback<ClipboardReadRequestOrError>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<GetClipboardDataSnapshotPromise>
    SendGetClipboardDataSnapshot(
            mozilla::Span<nsCString const> aTypes,
            const ClipboardType& aWhichClipboard,
            const MaybeDiscardedWindowContext& aRequestingWindowContext,
            mozilla::NotNull<nsIPrincipal*> aRequestingPrincipal);

    bool
    SendGetClipboardDataSnapshotSync(
            mozilla::Span<nsCString const> aTypes,
            const ClipboardType& aWhichClipboard,
            const MaybeDiscardedWindowContext& aRequestingWindowContext,
            ClipboardReadRequestOrError* aClipboardReadRequestOrError);

    bool
    SendEmptyClipboard(const ClipboardType& aWhichClipboard);

    bool
    SendClipboardHasType(
            mozilla::Span<nsCString const> aTypes,
            const ClipboardType& aWhichClipboard,
            bool* hasType);

    PClipboardWriteRequestChild*
    SendPClipboardWriteRequestConstructor(
            PClipboardWriteRequestChild* actor,
            const ClipboardType& aClipboardType,
            const MaybeDiscardedWindowContext& aSettingWindowContext);

    bool
    SendGetIconForExtension(
            const nsACString& aFileExt,
            const uint32_t& aIconSize,
            nsTArray<uint8_t>* bits);

    bool
    SendFirstIdle();

    bool
    SendCopyFavicon(
            nsIURI* oldURI,
            nsIURI* newURI,
            const bool& isPrivate);

    void
    SendFindImageText(
            IPCImage&& image,
            mozilla::Span<nsCString const> languages,
            mozilla::ipc::ResolveCallback<TextRecognitionResultOrError>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<FindImageTextPromise>
    SendFindImageText(
            IPCImage&& image,
            mozilla::Span<nsCString const> languages);

    bool
    SendGraphicsError(const nsACString& aError);

    bool
    SendBeginDriverCrashGuard(
            const uint32_t& aGuardType,
            bool* crashDetected);

    bool
    SendEndDriverCrashGuard(const uint32_t& aGuardType);

    bool
    SendAddIdleObserver(
            const uint64_t& observerId,
            const uint32_t& idleTimeInS);

    bool
    SendRemoveIdleObserver(
            const uint64_t& observerId,
            const uint32_t& idleTimeInS);

    bool
    SendBackUpXResources(const FileDescriptor& aXSocketFd);

    bool
    SendRequestAnonymousTemporaryFile(const uint64_t& aID);

    bool
    SendNotifyShutdownSuccess();

    bool
    SendFinishShutdown();

    PContentPermissionRequestChild*
    SendPContentPermissionRequestConstructor(
            mozilla::Span<PermissionRequest const> aRequests,
            nsIPrincipal* aPrincipal,
            nsIPrincipal* aTopLevelPrincipal,
            const bool& aIsHandlingUserInput,
            const bool& aMaybeUnsafePermissionDelegate,
            const TabId& tabId);

    PContentPermissionRequestChild*
    SendPContentPermissionRequestConstructor(
            PContentPermissionRequestChild* actor,
            mozilla::Span<PermissionRequest const> aRequests,
            nsIPrincipal* aPrincipal,
            nsIPrincipal* aTopLevelPrincipal,
            const bool& aIsHandlingUserInput,
            const bool& aMaybeUnsafePermissionDelegate,
            const TabId& tabId);

    bool
    SendShutdownProfile(const nsACString& aProfile);

    bool
    SendShutdownPerfStats(const nsACString& aPerfStats);

    bool
    SendGetFontListShmBlock(
            const uint32_t& aGeneration,
            const uint32_t& aIndex,
            ReadOnlySharedMemoryHandle* aHandle);

    bool
    SendInitializeFamily(
            const uint32_t& aGeneration,
            const uint32_t& aFamilyIndex,
            const bool& aLoadCmaps);

    bool
    SendSetCharacterMap(
            const uint32_t& aGeneration,
            const uint32_t& aFamilyIndex,
            const bool& aAlias,
            const uint32_t& aFaceIndex,
            const gfxSparseBitSet& aMap);

    bool
    SendSetupFamilyCharMap(
            const uint32_t& aGeneration,
            const uint32_t& aFamilyIndex,
            const bool& aAlias);

    bool
    SendInitOtherFamilyNames(
            const uint32_t& aGeneration,
            const bool& aDefer,
            bool* aLoaded);

    bool
    SendStartCmapLoading(
            const uint32_t& aGeneration,
            const uint32_t& aStartIndex);

    bool
    SendGetHyphDict(
            nsIURI* aURI,
            ReadOnlySharedMemoryHandle* aHandle);

    void
    SendCreateWindow(
            mozilla::NotNull<PBrowserChild*> aThisTab,
            const MaybeDiscardedBrowsingContext& aParent,
            mozilla::NotNull<PBrowserChild*> aNewTab,
            const uint32_t& aChromeFlags,
            const bool& aCalledFromJS,
            const bool& aForPrinting,
            const bool& aForWindowDotPrint,
            const bool& aTopLevelCreatedByContent,
            nsIURI* aURIToLoad,
            const nsACString& aFeatures,
            const Modifiers& aModifiers,
            nsIPrincipal* aTriggeringPrincipal,
            nsIPolicyContainer* aPolicyContainer,
            nsIReferrerInfo* aReferrerInfo,
            const OriginAttributes& aOriginAttributes,
            const bool& aUserActivation,
            const bool& aTextDirectiveUserActivation,
            mozilla::ipc::ResolveCallback<CreatedWindowInfo>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<CreateWindowPromise>
    SendCreateWindow(
            mozilla::NotNull<PBrowserChild*> aThisTab,
            const MaybeDiscardedBrowsingContext& aParent,
            mozilla::NotNull<PBrowserChild*> aNewTab,
            const uint32_t& aChromeFlags,
            const bool& aCalledFromJS,
            const bool& aForPrinting,
            const bool& aForWindowDotPrint,
            const bool& aTopLevelCreatedByContent,
            nsIURI* aURIToLoad,
            const nsACString& aFeatures,
            const Modifiers& aModifiers,
            nsIPrincipal* aTriggeringPrincipal,
            nsIPolicyContainer* aPolicyContainer,
            nsIReferrerInfo* aReferrerInfo,
            const OriginAttributes& aOriginAttributes,
            const bool& aUserActivation,
            const bool& aTextDirectiveUserActivation);

    bool
    SendCreateWindowInDifferentProcess(
            mozilla::NotNull<PBrowserChild*> aThisTab,
            const MaybeDiscardedBrowsingContext& aParent,
            const uint32_t& aChromeFlags,
            const bool& aCalledFromJS,
            const bool& aTopLevelCreatedByContent,
            nsIURI* aURIToLoad,
            const nsACString& aFeatures,
            const Modifiers& aModifiers,
            const nsAString& aName,
            nsIPrincipal* aTriggeringPrincipal,
            nsIPolicyContainer* aPolicyContainer,
            nsIReferrerInfo* aReferrerInfo,
            const OriginAttributes& aOriginAttributes,
            const bool& aUserActivation,
            const bool& aTextDirectiveUserActivation);

    bool
    SendNotifyPushObservers(
            const nsACString& scope,
            nsIPrincipal* principal,
            const nsAString& messageId);

    bool
    SendNotifyPushObserversWithData(
            const nsACString& scope,
            nsIPrincipal* principal,
            const nsAString& messageId,
            mozilla::Span<uint8_t const> data);

    bool
    SendGetFilesRequest(
            const nsID& aID,
            mozilla::Span<nsString const> aDirectories,
            const bool& aRecursiveFlag);

    bool
    SendDeleteGetFilesRequest(const nsID& aID);

    bool
    SendStoreAndBroadcastBlobURLRegistration(
            const nsACString& url,
            const IPCBlob& blob,
            nsIPrincipal* principal,
            const nsACString& aPartitionKey);

    bool
    SendUnstoreAndBroadcastBlobURLUnregistration(mozilla::Span<BroadcastBlobURLUnregistrationRequest const> aRequests);

    bool
    SendRecordPageLoadEvent(
            const PageloadEventData& event,
            const TimeStamp& navigationStartTime,
            const uint64_t& aAndroidAppLinkLoadIdentifier);

    bool
    SendAccumulateChildHistograms(mozilla::Span<HistogramAccumulation const> accumulations);

    bool
    SendAccumulateChildKeyedHistograms(mozilla::Span<KeyedHistogramAccumulation const> accumulations);

    bool
    SendUpdateChildScalars(mozilla::Span<ScalarAction const> updates);

    bool
    SendUpdateChildKeyedScalars(mozilla::Span<KeyedScalarAction const> updates);

    bool
    SendRecordChildEvents(mozilla::Span<ChildEventData const> events);

    bool
    SendRecordDiscardedData(const DiscardedData& data);

    bool
    SendAddMemoryReport(const MemoryReport& aReport);

    bool
    SendBHRThreadHang(const HangDetails& aHangDetails);

    void
    SendAddCertException(
            nsIX509Cert* aCert,
            const nsACString& aHostName,
            const int32_t& aPort,
            const OriginAttributes& aOriginAttributes,
            const bool& aIsTemporary,
            mozilla::ipc::ResolveCallback<nsresult>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<AddCertExceptionPromise>
    SendAddCertException(
            nsIX509Cert* aCert,
            const nsACString& aHostName,
            const int32_t& aPort,
            const OriginAttributes& aOriginAttributes,
            const bool& aIsTemporary);

    void
    SendAutomaticStorageAccessPermissionCanBeGranted(
            nsIPrincipal* aPrincipal,
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<AutomaticStorageAccessPermissionCanBeGrantedPromise>
    SendAutomaticStorageAccessPermissionCanBeGranted(nsIPrincipal* aPrincipal);

    void
    SendStorageAccessPermissionGrantedForOrigin(
            const uint64_t& aTopLevelWindowId,
            const MaybeDiscardedBrowsingContext& aParentContext,
            nsIPrincipal* aTrackingPrincipal,
            const nsACString& aTrackingOrigin,
            const int& aAllowMode,
            const mozilla::Maybe<StorageAccessPermissionGrantedReason>& aReason,
            const bool& aFrameOnly,
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<StorageAccessPermissionGrantedForOriginPromise>
    SendStorageAccessPermissionGrantedForOrigin(
            const uint64_t& aTopLevelWindowId,
            const MaybeDiscardedBrowsingContext& aParentContext,
            nsIPrincipal* aTrackingPrincipal,
            const nsACString& aTrackingOrigin,
            const int& aAllowMode,
            const mozilla::Maybe<StorageAccessPermissionGrantedReason>& aReason,
            const bool& aFrameOnly);

    void
    SendCompleteAllowAccessFor(
            const MaybeDiscardedBrowsingContext& aParentContext,
            const uint64_t& aTopLevelWindowId,
            nsIPrincipal* aTrackingPrincipal,
            const nsACString& aTrackingOrigin,
            const uint32_t& aCookieBehavior,
            const StorageAccessPermissionGrantedReason& aReason,
            mozilla::ipc::ResolveCallback<mozilla::Maybe<StorageAccessPromptChoices>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<CompleteAllowAccessForPromise>
    SendCompleteAllowAccessFor(
            const MaybeDiscardedBrowsingContext& aParentContext,
            const uint64_t& aTopLevelWindowId,
            nsIPrincipal* aTrackingPrincipal,
            const nsACString& aTrackingOrigin,
            const uint32_t& aCookieBehavior,
            const StorageAccessPermissionGrantedReason& aReason);

    void
    SendSetAllowStorageAccessRequestFlag(
            nsIPrincipal* aEmbeddingPrincipal,
            nsIURI* aEmbeddedOrigin,
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<SetAllowStorageAccessRequestFlagPromise>
    SendSetAllowStorageAccessRequestFlag(
            nsIPrincipal* aEmbeddingPrincipal,
            nsIURI* aEmbeddedOrigin);

    void
    SendTestAllowStorageAccessRequestFlag(
            nsIPrincipal* aEmbeddedPrincipal,
            nsIURI* aEmbeddingOrigin,
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<TestAllowStorageAccessRequestFlagPromise>
    SendTestAllowStorageAccessRequestFlag(
            nsIPrincipal* aEmbeddedPrincipal,
            nsIURI* aEmbeddingOrigin);

    bool
    SendStoreUserInteractionAsPermission(nsIPrincipal* aPrincipal);

    void
    SendTestCookiePermissionDecided(
            const MaybeDiscardedBrowsingContext& aContext,
            nsIPrincipal* aPrincipal,
            mozilla::ipc::ResolveCallback<mozilla::Maybe<bool>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<TestCookiePermissionDecidedPromise>
    SendTestCookiePermissionDecided(
            const MaybeDiscardedBrowsingContext& aContext,
            nsIPrincipal* aPrincipal);

    void
    SendTestStorageAccessPermission(
            nsIPrincipal* aEmbeddingPrincipal,
            const nsACString& aEmbeddedOrigin,
            mozilla::ipc::ResolveCallback<mozilla::Maybe<bool>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<TestStorageAccessPermissionPromise>
    SendTestStorageAccessPermission(
            nsIPrincipal* aEmbeddingPrincipal,
            const nsACString& aEmbeddedOrigin);

    bool
    SendNotifyMediaPlaybackChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const MediaPlaybackState& aState);

    bool
    SendNotifyMediaAudibleChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const MediaAudibleState& aState);

    bool
    SendNotifyPictureInPictureModeChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aEnabled);

    bool
    SendNotifyMediaSessionUpdated(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aIsCreated);

    bool
    SendNotifyUpdateMediaMetadata(
            const MaybeDiscardedBrowsingContext& aContext,
            const mozilla::Maybe<MediaMetadataBase>& aMetadata);

    bool
    SendNotifyMediaSessionPlaybackStateChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const MediaSessionPlaybackState& aMetadata);

    bool
    SendNotifyMediaSessionSupportedActionChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const MediaSessionAction& aAction,
            const bool& aEnabled);

    bool
    SendNotifyMediaFullScreenState(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aIsInFullScreen);

    bool
    SendNotifyPositionStateChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const mozilla::Maybe<PositionState>& aState);

    bool
    SendNotifyGuessedPositionStateChanged(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsID& aMediaId,
            const mozilla::Maybe<PositionState>& aState);

    bool
    SendAddOrRemovePageAwakeRequest(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aShouldAddCount);

    bool
    SendReportServiceWorkerShutdownProgress(
            const uint32_t& aShutdownStateId,
            const Progress& aProgress);

    bool
    SendAbortOtherOrientationPendingPromises(const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendHistoryReload(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint32_t& aReloadFlags);

    void
    SendNotifyOnHistoryReload(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aForceReload,
            mozilla::ipc::ResolveCallback<std::tuple<bool, mozilla::Maybe<mozilla::NotNull<RefPtr<nsDocShellLoadState>>>, mozilla::Maybe<bool>>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<NotifyOnHistoryReloadPromise>
    SendNotifyOnHistoryReload(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aForceReload);

    bool
    SendHistoryCommit(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint64_t& aLoadID,
            const nsID& aChangeID,
            const uint32_t& aLoadType,
            const bool& aCloneEntryChildren,
            const bool& aChannelExpired,
            const uint32_t& aCacheKey);

    void
    SendHistoryGo(
            const MaybeDiscardedBrowsingContext& aContext,
            const int32_t& aOffset,
            const uint64_t& aHistoryEpoch,
            const bool& aRequireUserInteraction,
            const bool& aUserActivation,
            const bool& aCheckForCancelation,
            mozilla::ipc::ResolveCallback<mozilla::Maybe<int32_t>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<HistoryGoPromise>
    SendHistoryGo(
            const MaybeDiscardedBrowsingContext& aContext,
            const int32_t& aOffset,
            const uint64_t& aHistoryEpoch,
            const bool& aRequireUserInteraction,
            const bool& aUserActivation,
            const bool& aCheckForCancelation);

    void
    SendNavigationTraverse(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsID& aKey,
            const uint64_t& aHistoryEpoch,
            const bool& aUserActivation,
            const bool& aCheckForCancelation,
            mozilla::ipc::ResolveCallback<nsresult>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<NavigationTraversePromise>
    SendNavigationTraverse(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsID& aKey,
            const uint64_t& aHistoryEpoch,
            const bool& aUserActivation,
            const bool& aCheckForCancelation);

    void
    SendBlobURLDataRequest(
            const nsACString& aBlobURL,
            mozilla::NotNull<nsIPrincipal*> aTriggeringPrincipal,
            nsIPrincipal* aLoadingPrincipal,
            const OriginAttributes& aOriginAttributes,
            const uint64_t& aInnerWindowId,
            const nsACString& aPartitionKey,
            mozilla::ipc::ResolveCallback<BlobURLDataRequestResult>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<BlobURLDataRequestPromise>
    SendBlobURLDataRequest(
            const nsACString& aBlobURL,
            mozilla::NotNull<nsIPrincipal*> aTriggeringPrincipal,
            nsIPrincipal* aLoadingPrincipal,
            const OriginAttributes& aOriginAttributes,
            const uint64_t& aInnerWindowId,
            const nsACString& aPartitionKey);

    bool
    SendSetActiveSessionHistoryEntry(
            const MaybeDiscardedBrowsingContext& context,
            const mozilla::Maybe<nsPoint>& previousScrollPosition,
            const SessionHistoryInfo& info,
            const uint32_t& loadType,
            const uint32_t& updatedCacheKey,
            const nsID& changeID);

    bool
    SendReplaceActiveSessionHistoryEntry(
            const MaybeDiscardedBrowsingContext& context,
            const SessionHistoryInfo& info);

    bool
    SendRemoveDynEntriesFromActiveSessionHistoryEntry(const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendRemoveFromSessionHistory(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsID& changeID);

    bool
    SendCleanupPendingLoadState(const uint64_t& aLoadIdentifier);

    bool
    SendScriptError(
            const nsAString& message,
            const nsACString& sourceName,
            const uint32_t& lineNumber,
            const uint32_t& colNumber,
            const uint32_t& flags,
            const nsACString& category,
            const bool& isFromPrivateWindow,
            const uint64_t& innerWindowId,
            const bool& isFromChromeContext);

    bool
    SendReportFrameTimingData(
            const LoadInfoArgs& loadInfo,
            const nsAString& entryName,
            const nsAString& initiatorType,
            const UniquePtr<PerformanceTimingData>& aData);

    bool
    SendCommitBrowsingContextTransaction(
            const MaybeDiscardedBrowsingContext& aContext,
            const BrowsingContextTransaction& aTransaction,
            const uint64_t& aEpoch);

    bool
    SendAsyncMessage(
            const nsAString& aMessage,
            const ClonedMessageData& aData);

    bool
    SendNotifyPushSubscriptionModifiedObservers(
            const nsACString& scope,
            nsIPrincipal* principal);

    bool
    SendPushError(
            const nsACString& scope,
            nsIPrincipal* principal,
            const nsAString& message,
            const uint32_t& flags);

    bool
    SendCreateBrowsingContext(
            const uint64_t& aGroupId,
            const BrowsingContextInitializer& aInit);

    void
    SendDiscardBrowsingContext(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aDoDiscard,
            mozilla::ipc::ResolveCallback<uint64_t>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<DiscardBrowsingContextPromise>
    SendDiscardBrowsingContext(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aDoDiscard);

    bool
    SendAdjustWindowFocus(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aIsVisible,
            const uint64_t& aActionId,
            const bool& aShouldClearAncestorFocus,
            const MaybeDiscardedBrowsingContext& aAncestorBrowsingContextToFocus);

    bool
    SendWindowClose(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aTrustedCaller);

    bool
    SendWindowFocus(
            const MaybeDiscardedBrowsingContext& aContext,
            const CallerType& aCallerType,
            const uint64_t& aActionId);

    bool
    SendWindowBlur(
            const MaybeDiscardedBrowsingContext& aContext,
            const CallerType& aCallerType);

    bool
    SendRaiseWindow(
            const MaybeDiscardedBrowsingContext& aContext,
            const CallerType& aCallerType,
            const uint64_t& aActionId);

    bool
    SendClearFocus(const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendSetFocusedBrowsingContext(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint64_t& aActionId);

    bool
    SendSetActiveBrowsingContext(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint64_t& aActionId);

    bool
    SendUnsetActiveBrowsingContext(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint64_t& aActionId);

    bool
    SendSetFocusedElement(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aNeedsFocus);

    bool
    SendFinalizeFocusOuter(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aCanFocus,
            const CallerType& aCallerType);

    bool
    SendInsertNewFocusActionId(const uint64_t& aActionId);

    bool
    SendBlurToParent(
            const MaybeDiscardedBrowsingContext& aFocusedBrowsingContext,
            const MaybeDiscardedBrowsingContext& aBrowsingContextToClear,
            const MaybeDiscardedBrowsingContext& aAncestorBrowsingContextToFocus,
            const bool& aIsLeavingDocument,
            const bool& aAdjustWidget,
            const bool& aBrowsingContextToClearHandled,
            const bool& aAncestorBrowsingContextToFocusHandled,
            const uint64_t& aActionId);

    bool
    SendMaybeExitFullscreen(const MaybeDiscardedBrowsingContext& aContext);

    bool
    SendWindowPostMessage(
            const MaybeDiscardedBrowsingContext& aContext,
            const ClonedOrErrorMessageData& aMessage,
            const PostMessageData& aData);

    bool
    SendCommitWindowContextTransaction(
            const MaybeDiscardedWindowContext& aContext,
            const WindowContextTransaction& aTransaction,
            const uint64_t& aEpoch);

    bool
    SendFOGData(ByteBuf&& buf);

    bool
    SendGeckoTraceExport(ByteBuf&& aBuf);

    bool
    SendSetContainerFeaturePolicy(
            const MaybeDiscardedBrowsingContext& aContainerContext,
            const MaybeFeaturePolicyInfo& aContainerFeaturePolicyInfo);

    void
    SendGetSystemIcon(
            nsIURI* aURI,
            mozilla::ipc::ResolveCallback<std::tuple<nsresult, mozilla::Maybe<ByteBuf>>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<GetSystemIconPromise>
    SendGetSystemIcon(nsIURI* aURI);

    void
    SendGetSystemGeolocationPermissionBehavior(
            mozilla::ipc::ResolveCallback<SystemGeolocationPermissionBehavior>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<GetSystemGeolocationPermissionBehaviorPromise>
    SendGetSystemGeolocationPermissionBehavior();

    void
    SendRequestGeolocationPermissionFromUser(
            const MaybeDiscardedBrowsingContext& aBrowsingContext,
            mozilla::ipc::ResolveCallback<GeolocationPermissionStatus>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    RefPtr<RequestGeolocationPermissionFromUserPromise>
    SendRequestGeolocationPermissionFromUser(const MaybeDiscardedBrowsingContext& aBrowsingContext);

    bool
    SendAttributionEvent(
            const nsACString& aSourceHost,
            const PrivateAttributionImpressionType& aType,
            const uint32_t& aIndex,
            const nsAString& aAd,
            const nsACString& aTargetHost);

    bool
    SendAttributionConversion(
            const nsACString& aTargetHost,
            const nsAString& aTask,
            const uint32_t& aHistogramSize,
            const mozilla::Maybe<uint32_t>& aLookbackDays,
            const mozilla::Maybe<PrivateAttributionImpressionType>& aImpressionType,
            mozilla::Span<nsString const> aAds,
            mozilla::Span<nsCString const> aImpressionSourceHosts);

    void
    DeallocManagee(
            mozilla::ipc::ProtocolId aProtocolId,
            IProtocol* aListener) override;

    Result
    OnMessageReceived(const Message& msg__) override;

    Result
    OnMessageReceived(
            const Message& msg__,
            UniquePtr<Message>& reply__) override;

private:
    mozilla::ipc::IPDLAsyncReturnsCallbacks mAsyncCallbacks;

    ManagedContainer<PBrowserChild> mManagedPBrowserChild;
    ManagedContainer<PClipboardReadRequestChild> mManagedPClipboardReadRequestChild;
    ManagedContainer<PClipboardWriteRequestChild> mManagedPClipboardWriteRequestChild;
    ManagedContainer<PContentPermissionRequestChild> mManagedPContentPermissionRequestChild;
    ManagedContainer<PCycleCollectWithLogsChild> mManagedPCycleCollectWithLogsChild;
    ManagedContainer<PExtensionsChild> mManagedPExtensionsChild;
    ManagedContainer<PExternalHelperAppChild> mManagedPExternalHelperAppChild;
    ManagedContainer<PHalChild> mManagedPHalChild;
    ManagedContainer<PHandlerServiceChild> mManagedPHandlerServiceChild;
    ManagedContainer<PHeapSnapshotTempFileHelperChild> mManagedPHeapSnapshotTempFileHelperChild;
    ManagedContainer<PRemotePrintJobChild> mManagedPRemotePrintJobChild;
    ManagedContainer<PMediaChild> mManagedPMediaChild;
    ManagedContainer<PNeckoChild> mManagedPNeckoChild;
    ManagedContainer<PSpeechSynthesisChild> mManagedPSpeechSynthesisChild;
    ManagedContainer<PTestShellChild> mManagedPTestShellChild;
    ManagedContainer<PRemoteSpellcheckEngineChild> mManagedPRemoteSpellcheckEngineChild;
    ManagedContainer<PWebBrowserPersistDocumentChild> mManagedPWebBrowserPersistDocumentChild;
    ManagedContainer<PURLClassifierChild> mManagedPURLClassifierChild;
    ManagedContainer<PURLClassifierLocalChild> mManagedPURLClassifierLocalChild;
    ManagedContainer<PURLClassifierLocalByNameChild> mManagedPURLClassifierLocalByNameChild;
    ManagedContainer<PScriptCacheChild> mManagedPScriptCacheChild;
    ManagedContainer<PSessionStorageObserverChild> mManagedPSessionStorageObserverChild;
};


} // namespace dom
} // namespace mozilla
namespace IPC {
template<>
struct ParamTraits <::mozilla::dom::PContentChild*>
{
    typedef ::mozilla::dom::PContentChild* paramType;
    static void
    Write(
            IPC::MessageWriter* aWriter,
            const paramType& aVar);
    static IPC::ReadResult<paramType>
    Read(IPC::MessageReader* aReader);
};
} // namespace IPC

#endif // ifndef PContentChild_h
