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

#ifndef PContentParent_h
#define PContentParent_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"
class nsIFile;

// 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 PBackgroundStarterParent;
} // namespace ipc
} // namespace mozilla
namespace mozilla {
namespace ipc {
class PBackgroundStarterChild;
} // namespace ipc
} // namespace mozilla

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

namespace mozilla {
class PClipboardReadRequestParent;
} // namespace mozilla

namespace mozilla {
class PClipboardWriteRequestParent;
} // namespace mozilla

namespace mozilla {
class PRemoteSpellcheckEngineParent;
} // namespace mozilla

namespace mozilla {
class PWebBrowserPersistDocumentParent;
} // namespace mozilla

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

namespace mozilla {
namespace net {
class PNeckoParent;
} // 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 PContentParent :
    public mozilla::ipc::IToplevelProtocol
{
private:
    friend class ::mozilla::PClipboardReadRequestParent;
    friend class ::mozilla::PClipboardWriteRequestParent;
    friend class ::mozilla::PRemoteSpellcheckEngineParent;
    friend class ::mozilla::PWebBrowserPersistDocumentParent;
    friend class ::mozilla::devtools::PHeapSnapshotTempFileHelperParent;
    friend class ::mozilla::dom::PBrowserParent;
    friend class ::mozilla::dom::PContentPermissionRequestParent;
    friend class ::mozilla::dom::PCycleCollectWithLogsParent;
    friend class ::mozilla::dom::PExternalHelperAppParent;
    friend class ::mozilla::dom::PHandlerServiceParent;
    friend class ::mozilla::dom::PSessionStorageObserverParent;
    friend class ::mozilla::dom::PSpeechSynthesisParent;
    friend class ::mozilla::dom::PURLClassifierParent;
    friend class ::mozilla::dom::PURLClassifierLocalParent;
    friend class ::mozilla::dom::PURLClassifierLocalByNameParent;
    friend class ::mozilla::extensions::PExtensionsParent;
    friend class ::mozilla::hal_sandbox::PHalParent;
    friend class ::mozilla::ipc::PTestShellParent;
    friend class ::mozilla::layout::PRemotePrintJobParent;
    friend class ::mozilla::loader::PScriptCacheParent;
    friend class ::mozilla::media::PMediaParent;
    friend class ::mozilla::net::PNeckoParent;
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 MozPromise<uint32_t, ResponseRejectReason, true> RequestMemoryReportPromise;
    typedef MozPromise<std::tuple<nsresult, mozilla::Maybe<IPCImage>>, ResponseRejectReason, true> DecodeImagePromise;
    typedef MozPromise<nsCString, ResponseRejectReason, true> CollectPerfStatsJSONPromise;
    typedef MozPromise<std::tuple<uint32_t, uint32_t>, ResponseRejectReason, true> CollectScrollingMetricsPromise;
    typedef MozPromise<bool, ResponseRejectReason, true> FlushCodeCoverageCountersPromise;
    typedef MozPromise<nsresult, ResponseRejectReason, true> CrossProcessRedirectPromise;
    typedef MozPromise<bool, ResponseRejectReason, true> LoadURIPromise;
    typedef MozPromise<std::tuple<RefPtr<nsILayoutHistoryState>, mozilla::Maybe<Wireframe>>, ResponseRejectReason, true> GetLayoutHistoryStatePromise;
    typedef MozPromise<PermitUnloadResult, ResponseRejectReason, true> DispatchBeforeUnloadToSubtreePromise;
    typedef MozPromise<PermitUnloadResult, ResponseRejectReason, true> DispatchNavigateToTraversablePromise;
    typedef std::function<void(const mozilla::Maybe<LoadingSessionHistoryInfo>&)> GetLoadingSessionHistoryInfoFromParentResolver;
    typedef std::function<void(Endpoint<::mozilla::extensions::PStreamFilterChild>&&)> InitStreamFilterResolver;
    typedef std::function<void(const FileDescOrError&)> CreateAudioIPCConnectionResolver;
    typedef std::function<void(ClipboardReadRequestOrError&&)> GetClipboardDataSnapshotResolver;
    typedef std::function<void(const TextRecognitionResultOrError&)> FindImageTextResolver;
    typedef std::function<void(const CreatedWindowInfo&)> CreateWindowResolver;
    typedef std::function<void(const nsresult&)> AddCertExceptionResolver;
    typedef std::function<void(const bool&)> AutomaticStorageAccessPermissionCanBeGrantedResolver;
    typedef std::function<void(const bool&)> StorageAccessPermissionGrantedForOriginResolver;
    typedef std::function<void(const mozilla::Maybe<StorageAccessPromptChoices>&)> CompleteAllowAccessForResolver;
    typedef std::function<void(const bool&)> SetAllowStorageAccessRequestFlagResolver;
    typedef std::function<void(const bool&)> TestAllowStorageAccessRequestFlagResolver;
    typedef std::function<void(const mozilla::Maybe<bool>&)> TestCookiePermissionDecidedResolver;
    typedef std::function<void(const mozilla::Maybe<bool>&)> TestStorageAccessPermissionResolver;
    typedef std::function<void(std::tuple<const bool&, const mozilla::Maybe<mozilla::NotNull<RefPtr<nsDocShellLoadState>>>&, const mozilla::Maybe<bool>&>)> NotifyOnHistoryReloadResolver;
    typedef std::function<void(const mozilla::Maybe<int32_t>&)> HistoryGoResolver;
    typedef std::function<void(const nsresult&)> NavigationTraverseResolver;
    typedef std::function<void(const BlobURLDataRequestResult&)> BlobURLDataRequestResolver;
    typedef MozPromise<uint64_t, ResponseRejectReason, true> DiscardBrowsingContextPromise;
    typedef std::function<void(const uint64_t&)> DiscardBrowsingContextResolver;
    typedef MozPromise<bool, ResponseRejectReason, true> DiscardWindowContextPromise;
    typedef MozPromise<ByteBuf, ResponseRejectReason, true> FlushFOGDataPromise;
    typedef std::function<void(std::tuple<const nsresult&, mozilla::Maybe<ByteBuf>&&>)> GetSystemIconResolver;
    typedef std::function<void(const SystemGeolocationPermissionBehavior&)> GetSystemGeolocationPermissionBehaviorResolver;
    typedef std::function<void(const GeolocationPermissionStatus&)> RequestGeolocationPermissionFromUserResolver;

protected:
    virtual mozilla::ipc::IPCResult
    RecvPExtensionsConstructor(PExtensionsParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPWebBrowserPersistDocumentConstructor(
            PWebBrowserPersistDocumentParent* actor,
            PBrowserParent* aBrowser,
            const MaybeDiscardedBrowsingContext& aContext);
    virtual mozilla::ipc::IPCResult
    RecvPRemoteSpellcheckEngineConstructor(PRemoteSpellcheckEngineParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPHalConstructor(PHalParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPHeapSnapshotTempFileHelperConstructor(PHeapSnapshotTempFileHelperParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPNeckoConstructor(PNeckoParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPSpeechSynthesisConstructor(PSpeechSynthesisParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPMediaConstructor(PMediaParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPURLClassifierConstructor(
            PURLClassifierParent* actor,
            nsIPrincipal* principal,
            bool* success);
    virtual mozilla::ipc::IPCResult
    RecvPURLClassifierLocalConstructor(
            PURLClassifierLocalParent* actor,
            nsIURI* uri,
            nsTArray<IPCURLClassifierFeature>&& features);
    virtual mozilla::ipc::IPCResult
    RecvPURLClassifierLocalByNameConstructor(
            PURLClassifierLocalByNameParent* actor,
            nsIURI* uri,
            nsTArray<nsCString>&& featureNames,
            const listType& aListType);
    virtual mozilla::ipc::IPCResult
    RecvPSessionStorageObserverConstructor(PSessionStorageObserverParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPExternalHelperAppConstructor(
            PExternalHelperAppParent* 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);
    virtual mozilla::ipc::IPCResult
    RecvPHandlerServiceConstructor(PHandlerServiceParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPClipboardWriteRequestConstructor(
            PClipboardWriteRequestParent* actor,
            const ClipboardType& aClipboardType,
            const MaybeDiscardedWindowContext& aSettingWindowContext);
    virtual mozilla::ipc::IPCResult
    RecvPContentPermissionRequestConstructor(
            PContentPermissionRequestParent* actor,
            nsTArray<PermissionRequest>&& aRequests,
            nsIPrincipal* aPrincipal,
            nsIPrincipal* aTopLevelPrincipal,
            const bool& aIsHandlingUserInput,
            const bool& aMaybeUnsafePermissionDelegate,
            const TabId& tabId);
    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 PContentParent();

    virtual ~PContentParent();

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

    void
    ManagedPBrowserParent(nsTArray<PBrowserParent*>& aArr) const;
    const ManagedContainer<PBrowserParent>&
    ManagedPBrowserParent() const;

    void
    ManagedPClipboardReadRequestParent(nsTArray<PClipboardReadRequestParent*>& aArr) const;
    const ManagedContainer<PClipboardReadRequestParent>&
    ManagedPClipboardReadRequestParent() const;

    void
    ManagedPClipboardWriteRequestParent(nsTArray<PClipboardWriteRequestParent*>& aArr) const;
    const ManagedContainer<PClipboardWriteRequestParent>&
    ManagedPClipboardWriteRequestParent() const;

    void
    ManagedPContentPermissionRequestParent(nsTArray<PContentPermissionRequestParent*>& aArr) const;
    const ManagedContainer<PContentPermissionRequestParent>&
    ManagedPContentPermissionRequestParent() const;

    void
    ManagedPCycleCollectWithLogsParent(nsTArray<PCycleCollectWithLogsParent*>& aArr) const;
    const ManagedContainer<PCycleCollectWithLogsParent>&
    ManagedPCycleCollectWithLogsParent() const;

    void
    ManagedPExtensionsParent(nsTArray<PExtensionsParent*>& aArr) const;
    const ManagedContainer<PExtensionsParent>&
    ManagedPExtensionsParent() const;

    void
    ManagedPExternalHelperAppParent(nsTArray<PExternalHelperAppParent*>& aArr) const;
    const ManagedContainer<PExternalHelperAppParent>&
    ManagedPExternalHelperAppParent() const;

    void
    ManagedPHalParent(nsTArray<PHalParent*>& aArr) const;
    const ManagedContainer<PHalParent>&
    ManagedPHalParent() const;

    void
    ManagedPHandlerServiceParent(nsTArray<PHandlerServiceParent*>& aArr) const;
    const ManagedContainer<PHandlerServiceParent>&
    ManagedPHandlerServiceParent() const;

    void
    ManagedPHeapSnapshotTempFileHelperParent(nsTArray<PHeapSnapshotTempFileHelperParent*>& aArr) const;
    const ManagedContainer<PHeapSnapshotTempFileHelperParent>&
    ManagedPHeapSnapshotTempFileHelperParent() const;

    void
    ManagedPRemotePrintJobParent(nsTArray<PRemotePrintJobParent*>& aArr) const;
    const ManagedContainer<PRemotePrintJobParent>&
    ManagedPRemotePrintJobParent() const;

    void
    ManagedPMediaParent(nsTArray<PMediaParent*>& aArr) const;
    const ManagedContainer<PMediaParent>&
    ManagedPMediaParent() const;

    void
    ManagedPNeckoParent(nsTArray<PNeckoParent*>& aArr) const;
    const ManagedContainer<PNeckoParent>&
    ManagedPNeckoParent() const;

    void
    ManagedPSpeechSynthesisParent(nsTArray<PSpeechSynthesisParent*>& aArr) const;
    const ManagedContainer<PSpeechSynthesisParent>&
    ManagedPSpeechSynthesisParent() const;

    void
    ManagedPTestShellParent(nsTArray<PTestShellParent*>& aArr) const;
    const ManagedContainer<PTestShellParent>&
    ManagedPTestShellParent() const;

    void
    ManagedPRemoteSpellcheckEngineParent(nsTArray<PRemoteSpellcheckEngineParent*>& aArr) const;
    const ManagedContainer<PRemoteSpellcheckEngineParent>&
    ManagedPRemoteSpellcheckEngineParent() const;

    void
    ManagedPWebBrowserPersistDocumentParent(nsTArray<PWebBrowserPersistDocumentParent*>& aArr) const;
    const ManagedContainer<PWebBrowserPersistDocumentParent>&
    ManagedPWebBrowserPersistDocumentParent() const;

    void
    ManagedPURLClassifierParent(nsTArray<PURLClassifierParent*>& aArr) const;
    const ManagedContainer<PURLClassifierParent>&
    ManagedPURLClassifierParent() const;

    void
    ManagedPURLClassifierLocalParent(nsTArray<PURLClassifierLocalParent*>& aArr) const;
    const ManagedContainer<PURLClassifierLocalParent>&
    ManagedPURLClassifierLocalParent() const;

    void
    ManagedPURLClassifierLocalByNameParent(nsTArray<PURLClassifierLocalByNameParent*>& aArr) const;
    const ManagedContainer<PURLClassifierLocalByNameParent>&
    ManagedPURLClassifierLocalByNameParent() const;

    void
    ManagedPScriptCacheParent(nsTArray<PScriptCacheParent*>& aArr) const;
    const ManagedContainer<PScriptCacheParent>&
    ManagedPScriptCacheParent() const;

    void
    ManagedPSessionStorageObserverParent(nsTArray<PSessionStorageObserverParent*>& aArr) const;
    const ManagedContainer<PSessionStorageObserverParent>&
    ManagedPSessionStorageObserverParent() const;

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

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

    void
    RejectPendingResponses(ResponseRejectReason aReason) final;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [[nodiscard]] bool
    SendConstructBrowser(
            ManagedEndpoint<::mozilla::dom::PBrowserChild>&& browserEp,
            ManagedEndpoint<::mozilla::dom::PWindowGlobalChild>&& windowEp,
            const TabId& tabId,
            const IPCTabContext& context,
            const WindowGlobalInit& windowInit,
            const uint32_t& chromeFlags,
            const ContentParentId& cpId,
            const bool& isForBrowser,
            const bool& isTopLevel);

    [[nodiscard]] PWebBrowserPersistDocumentParent*
    SendPWebBrowserPersistDocumentConstructor(
            PWebBrowserPersistDocumentParent* actor,
            PBrowserParent* aBrowser,
            const MaybeDiscardedBrowsingContext& aContext);

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

    [[nodiscard]] bool
    SendInitGMPService(Endpoint<::mozilla::gmp::PGMPServiceChild>&& service);

    [[nodiscard]] bool
    SendInitProcessHangMonitor(Endpoint<::mozilla::PProcessHangMonitorChild>&& hangMonitor);

    [[nodiscard]] bool
    SendInitProfiler(Endpoint<::mozilla::PProfilerChild>&& aEndpoint);

    [[nodiscard]] bool
    SendInitRendering(
            Endpoint<::mozilla::layers::PCompositorManagerChild>&& compositor,
            Endpoint<::mozilla::layers::PImageBridgeChild>&& imageBridge,
            Endpoint<::mozilla::gfx::PVRManagerChild>&& vr,
            Endpoint<::mozilla::PRemoteMediaManagerChild>&& video,
            mozilla::Span<uint32_t const> namespaces);

    [[nodiscard]] bool
    SendReinitRendering(
            Endpoint<::mozilla::layers::PCompositorManagerChild>&& compositor,
            Endpoint<::mozilla::layers::PImageBridgeChild>&& bridge,
            Endpoint<::mozilla::gfx::PVRManagerChild>&& vr,
            Endpoint<::mozilla::PRemoteMediaManagerChild>&& video,
            mozilla::Span<uint32_t const> namespaces);

    [[nodiscard]] bool
    SendNetworkLinkTypeChange(const uint32_t& type);

    [[nodiscard]] bool
    SendSocketProcessCrashed();

    [[nodiscard]] bool
    SendReinitRenderingForDeviceReset();

    [[nodiscard]] bool
    SendSetProcessSandbox(const mozilla::Maybe<FileDescriptor>& aBroker);

    void
    SendRequestMemoryReport(
            const uint32_t& generation,
            const bool& anonymize,
            const bool& minimizeMemoryUsage,
            const mozilla::Maybe<FileDescriptor>& DMDFile,
            mozilla::ipc::ResolveCallback<uint32_t>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<RequestMemoryReportPromise>
    SendRequestMemoryReport(
            const uint32_t& generation,
            const bool& anonymize,
            const bool& minimizeMemoryUsage,
            const mozilla::Maybe<FileDescriptor>& DMDFile);

    void
    SendDecodeImage(
            mozilla::NotNull<nsIURI*> aURI,
            const ImageIntSize& aSize,
            mozilla::ipc::ResolveCallback<std::tuple<nsresult, mozilla::Maybe<IPCImage>>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<DecodeImagePromise>
    SendDecodeImage(
            mozilla::NotNull<nsIURI*> aURI,
            const ImageIntSize& aSize);

    [[nodiscard]] bool
    SendBidiKeyboardNotify(
            const bool& isLangRTL,
            const bool& haveBidiKeyboards);

    [[nodiscard]] PCycleCollectWithLogsParent*
    SendPCycleCollectWithLogsConstructor(
            const bool& dumpAllTraces,
            const FileDescriptor& gcLog,
            const FileDescriptor& ccLog);

    [[nodiscard]] PCycleCollectWithLogsParent*
    SendPCycleCollectWithLogsConstructor(
            PCycleCollectWithLogsParent* actor,
            const bool& dumpAllTraces,
            const FileDescriptor& gcLog,
            const FileDescriptor& ccLog);

    [[nodiscard]] PTestShellParent*
    SendPTestShellConstructor(PTestShellParent* actor);

    [[nodiscard]] PScriptCacheParent*
    SendPScriptCacheConstructor(
            const FileDescOrError& cacheFile,
            const bool& wantCacheData);

    [[nodiscard]] PScriptCacheParent*
    SendPScriptCacheConstructor(
            PScriptCacheParent* actor,
            const FileDescOrError& cacheFile,
            const bool& wantCacheData);

    [[nodiscard]] bool
    SendRegisterChrome(
            mozilla::Span<ChromePackage const> packages,
            mozilla::Span<SubstitutionMapping const> substitutions,
            mozilla::Span<OverrideMapping const> overrides,
            const nsACString& locale,
            const bool& reset);

    [[nodiscard]] bool
    SendRegisterChromeItem(const ChromeRegistryItem& item);

    [[nodiscard]] bool
    SendClearImageCache(
            const mozilla::Maybe<bool>& privateLoader,
            const mozilla::Maybe<bool>& aChrome,
            const mozilla::Maybe<RefPtr<nsIPrincipal>>& aPrincipal,
            const mozilla::Maybe<nsCString>& aSchemelessSite,
            const mozilla::Maybe<OriginAttributesPattern>& aPattern,
            const mozilla::Maybe<nsCString>& aURL);

    [[nodiscard]] bool
    SendClearStyleSheetCache(
            const mozilla::Maybe<bool>& aChrome,
            const mozilla::Maybe<RefPtr<nsIPrincipal>>& aPrincipal,
            const mozilla::Maybe<nsCString>& aSchemelessSite,
            const mozilla::Maybe<OriginAttributesPattern>& aPattern,
            const mozilla::Maybe<nsCString>& aURL);

    [[nodiscard]] bool
    SendClearScriptCache(
            const mozilla::Maybe<bool>& aChrome,
            const mozilla::Maybe<RefPtr<nsIPrincipal>>& aPrincipal,
            const mozilla::Maybe<nsCString>& aSchemelessSite,
            const mozilla::Maybe<OriginAttributesPattern>& aPattern,
            const mozilla::Maybe<nsCString>& aURL);

    [[nodiscard]] bool
    SendInvalidateScriptCache();

    [[nodiscard]] bool
    SendSetOffline(const bool& offline);

    [[nodiscard]] bool
    SendSetConnectivity(const bool& connectivity);

    [[nodiscard]] bool
    SendSetCaptivePortalState(const int32_t& aState);

    [[nodiscard]] bool
    SendSetTRRMode(
            const ResolverMode& aMode,
            const ResolverMode& aModeFromPref);

    [[nodiscard]] bool
    SendNotifyVisited(mozilla::Span<VisitedQueryResult const> uri);

    [[nodiscard]] bool
    SendThemeChanged(
            const FullLookAndFeel& lookAndFeelData,
            const ThemeChangeKind& aKind);

    [[nodiscard]] bool
    SendPreferenceUpdate(const Pref& pref);

    [[nodiscard]] bool
    SendVarUpdate(mozilla::Span<GfxVarUpdate const> var);

    [[nodiscard]] bool
    SendUpdatePerfStatsCollectionMask(const uint64_t& aMask);

    void
    SendCollectPerfStatsJSON(
            mozilla::ipc::ResolveCallback<nsCString>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<CollectPerfStatsJSONPromise>
    SendCollectPerfStatsJSON();

    void
    SendCollectScrollingMetrics(
            mozilla::ipc::ResolveCallback<std::tuple<uint32_t, uint32_t>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<CollectScrollingMetricsPromise>
    SendCollectScrollingMetrics();

    [[nodiscard]] bool
    SendGeolocationUpdate(nsIDOMGeoPosition* aPosition);

    [[nodiscard]] bool
    SendGeolocationError(const uint16_t& errorCode);

    [[nodiscard]] bool
    SendUpdateDictionaryList(mozilla::Span<nsCString const> dictionaries);

    [[nodiscard]] bool
    SendUpdateFontList(const SystemFontList& fontList);

    [[nodiscard]] bool
    SendRebuildFontList(const bool& aFullRebuild);

    [[nodiscard]] bool
    SendForceGlobalReflow(const GlobalReflowFlags& aFlags);

    [[nodiscard]] bool
    SendFontListShmBlockAdded(
            const uint32_t& aGeneration,
            const uint32_t& aIndex,
            ReadOnlySharedMemoryHandle&& aHandle);

    [[nodiscard]] bool
    SendUpdateAppLocales(mozilla::Span<nsCString const> appLocales);

    [[nodiscard]] bool
    SendUpdateRequestedLocales(mozilla::Span<nsCString const> requestedLocales);

    [[nodiscard]] bool
    SendSystemTimezoneChanged();

    [[nodiscard]] bool
    SendUpdateL10nFileSources(mozilla::Span<L10nFileSourceDescriptor const> sources);

    [[nodiscard]] bool
    SendRegisterStringBundles(nsTArray<StringBundleDescriptor>&& stringBundles);

    [[nodiscard]] bool
    SendSimpleURIUnknownRemoteSchemes(mozilla::Span<nsCString const> remoteSchemes);

    [[nodiscard]] bool
    SendUpdateSharedData(
            ReadOnlySharedMemoryHandle&& aMapHandle,
            mozilla::Span<IPCBlob const> blobs,
            mozilla::Span<nsCString const> changedKeys);

    [[nodiscard]] bool
    SendAddPermission(const Permission& permission);

    [[nodiscard]] bool
    SendRemoveAllPermissions();

    [[nodiscard]] bool
    SendFlushMemory(const nsAString& reason);

    [[nodiscard]] bool
    SendApplicationBackground();

    [[nodiscard]] bool
    SendApplicationForeground();

    [[nodiscard]] bool
    SendGarbageCollect();

    [[nodiscard]] bool
    SendCycleCollect();

    [[nodiscard]] bool
    SendUnlinkGhosts();

    [[nodiscard]] bool
    SendActivateA11y(const uint64_t& aDomains);

    [[nodiscard]] bool
    SendShutdownA11y();

    [[nodiscard]] bool
    SendSetCacheDomains(const uint64_t& aCacheDomains);

    [[nodiscard]] bool
    SendAppInfo(
            const nsACString& version,
            const nsACString& buildID,
            const nsACString& name,
            const nsACString& UAName,
            const nsACString& ID,
            const nsACString& vendor,
            const nsACString& sourceURL,
            const nsACString& updateURL);

    [[nodiscard]] bool
    SendRemoteType(
            const nsACString& aRemoteType,
            const nsACString& aProfile);

    [[nodiscard]] bool
    SendInitRemoteWorkerService(
            Endpoint<::mozilla::dom::PRemoteWorkerServiceChild>&& aEndpoint,
            Endpoint<::mozilla::dom::PRemoteWorkerDebuggerManagerChild>&& aDebuggerChildEp);

    [[nodiscard]] bool
    SendInitBlobURLs(mozilla::Span<BlobURLRegistrationData const> registrations);

    [[nodiscard]] bool
    SendInitJSActorInfos(
            mozilla::Span<JSProcessActorInfo const> aContentInfos,
            mozilla::Span<JSWindowActorInfo const> aWindowInfos);

    [[nodiscard]] bool
    SendUnregisterJSWindowActor(const nsACString& name);

    [[nodiscard]] bool
    SendUnregisterJSProcessActor(const nsACString& name);

    [[nodiscard]] bool
    SendSetXPCOMProcessAttributes(
            const XPCOMInitData& xpcomInit,
            const UniquePtr<StructuredCloneData>& initialData,
            const FullLookAndFeel& lookAndFeeldata,
            const SystemFontList& systemFontList,
            mozilla::Maybe<ReadOnlySharedMemoryHandle>&& sharedUASheetHandle,
            const uintptr_t& sharedUASheetAddress,
            nsTArray<ReadOnlySharedMemoryHandle>&& sharedFontListBlocks,
            const bool& aIsStartingUp);

    [[nodiscard]] bool
    SendLastPrivateDocShellDestroyed();

    [[nodiscard]] bool
    SendNotifyProcessPriorityChanged(const ProcessPriority& priority);

    [[nodiscard]] bool
    SendMinimizeMemoryUsage();

    [[nodiscard]] bool
    SendLoadAndRegisterSheet(
            nsIURI* uri,
            const uint32_t& type);

    [[nodiscard]] bool
    SendUnregisterSheet(
            nsIURI* uri,
            const uint32_t& type);

    [[nodiscard]] bool
    SendNotifyIdleObserver(
            const uint64_t& observerId,
            const nsACString& topic,
            const nsAString& str);

    [[nodiscard]] bool
    SendDomainSetChanged(
            const uint32_t& aSetType,
            const uint32_t& aChangeType,
            nsIURI* aDomain);

    [[nodiscard]] bool
    SendShutdown();

    [[nodiscard]] bool
    SendLoadProcessScript(const nsAString& url);

    [[nodiscard]] bool
    SendUpdateWindow(const uintptr_t& aChildId);

    [[nodiscard]] bool
    SendNotifyEmptyHTTPCache();

    [[nodiscard]] bool
    SendPush(
            const nsACString& scope,
            nsIPrincipal* principal,
            const nsAString& messageId);

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

    [[nodiscard]] bool
    SendGetFilesResponse(
            const nsID& aID,
            const GetFilesResponseResult& aResult);

    [[nodiscard]] bool
    SendBlobURLRegistration(
            const nsACString& aURI,
            const IPCBlob& aBlob,
            nsIPrincipal* aPrincipal,
            const nsACString& aPartitionKey);

    [[nodiscard]] bool
    SendBlobURLUnregistration(mozilla::Span<nsCString const> aURIs);

    [[nodiscard]] bool
    SendGMPsChanged(mozilla::Span<GMPCapabilityData const> capabilities);

    [[nodiscard]] bool
    SendProvideAnonymousTemporaryFile(
            const uint64_t& aID,
            const FileDescOrError& aFD);

    [[nodiscard]] bool
    SendSetPermissionsWithKey(
            const nsACString& aPermissionKey,
            mozilla::Span<Permission const> aPermissions);

    [[nodiscard]] bool
    SendRefreshScreens(mozilla::Span<ScreenDetails const> aScreens);

    [[nodiscard]] bool
    SendShareCodeCoverageMutex(CrossProcessMutexHandle&& handle);

    void
    SendFlushCodeCoverageCounters(
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<FlushCodeCoverageCountersPromise>
    SendFlushCodeCoverageCounters();

    [[nodiscard]] bool
    SendSetInputEventQueueEnabled();

    [[nodiscard]] bool
    SendFlushInputEventQueue();

    [[nodiscard]] bool
    SendResumeInputEventQueue();

    [[nodiscard]] bool
    SendSuspendInputEventQueue();

    [[nodiscard]] bool
    SendAddDynamicScalars(mozilla::Span<DynamicScalarDefinition const> definitions);

    void
    SendCrossProcessRedirect(
            const RedirectToRealChannelArgs& args,
            nsTArray<Endpoint<::mozilla::extensions::PStreamFilterParent>>&& aEndpoint,
            mozilla::ipc::ResolveCallback<nsresult>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<CrossProcessRedirectPromise>
    SendCrossProcessRedirect(
            const RedirectToRealChannelArgs& args,
            nsTArray<Endpoint<::mozilla::extensions::PStreamFilterParent>>&& aEndpoint);

    [[nodiscard]] bool
    SendStartDelayedAutoplayMediaComponents(const MaybeDiscardedBrowsingContext& aContext);

    [[nodiscard]] bool
    SendUpdateMediaControlAction(
            const MaybeDiscardedBrowsingContext& aContext,
            const MediaControlAction& aAction);

    [[nodiscard]] bool
    SendRegisterBrowsingContextGroup(
            const uint64_t& aGroupId,
            mozilla::Span<SyncedContextInitializer const> aInits,
            mozilla::Span<OriginAgentClusterInitializer const> aUseOriginAgentCluster);

    [[nodiscard]] bool
    SendDestroyBrowsingContextGroup(const uint64_t& aGroupId);

    [[nodiscard]] bool
    SendSetUseOriginAgentCluster(
            const uint64_t& aGroupId,
            mozilla::NotNull<nsIPrincipal*> aPrincipal,
            const bool& aUseOriginAgentCluster);

    void
    SendLoadURI(
            const MaybeDiscardedBrowsingContext& aContext,
            mozilla::NotNull<nsDocShellLoadState*> aLoadState,
            const bool& aSetNavigating,
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<LoadURIPromise>
    SendLoadURI(
            const MaybeDiscardedBrowsingContext& aContext,
            mozilla::NotNull<nsDocShellLoadState*> aLoadState,
            const bool& aSetNavigating);

    [[nodiscard]] bool
    SendInternalLoad(mozilla::NotNull<nsDocShellLoadState*> aLoadState);

    [[nodiscard]] bool
    SendDisplayLoadError(
            const MaybeDiscardedBrowsingContext& aContext,
            const nsAString& aURI);

    [[nodiscard]] bool
    SendGoBack(
            const MaybeDiscardedBrowsingContext& aContext,
            const mozilla::Maybe<int32_t>& aCancelContentJSEpoch,
            const bool& aRequireUserInteraction,
            const bool& aUserActivation);

    [[nodiscard]] bool
    SendGoForward(
            const MaybeDiscardedBrowsingContext& aContext,
            const mozilla::Maybe<int32_t>& aCancelContentJSEpoch,
            const bool& aRequireUserInteraction,
            const bool& aUserActivation);

    [[nodiscard]] bool
    SendGoToIndex(
            const MaybeDiscardedBrowsingContext& aContext,
            const int32_t& aIndex,
            const mozilla::Maybe<int32_t>& aCancelContentJSEpoch,
            const bool& aUserActivation);

    [[nodiscard]] bool
    SendReload(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint32_t& aReloadFlags);

    [[nodiscard]] bool
    SendStopLoad(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint32_t& aStopFlags);

    [[nodiscard]] bool
    SendOnAllowAccessFor(
            const MaybeDiscardedBrowsingContext& aParentContext,
            const nsACString& aTrackingOrigin,
            const uint32_t& aCookieBehavior,
            const StorageAccessPermissionGrantedReason& aReason);

    [[nodiscard]] bool
    SendOnContentBlockingDecision(
            const MaybeDiscardedBrowsingContext& aContext,
            const BlockingDecision& aReason,
            const uint32_t& aRejectedReason);

    [[nodiscard]] bool
    SendAbortOrientationPendingPromises(const MaybeDiscardedBrowsingContext& aContext);

    [[nodiscard]] bool
    SendHistoryCommitIndexAndLength(
            const MaybeDiscardedBrowsingContext& aContext,
            const uint32_t& aIndex,
            const uint32_t& aLength,
            const nsID& aChangeID);

    void
    SendGetLayoutHistoryState(
            const MaybeDiscardedBrowsingContext& aContext,
            mozilla::ipc::ResolveCallback<std::tuple<RefPtr<nsILayoutHistoryState>, mozilla::Maybe<Wireframe>>>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<GetLayoutHistoryStatePromise>
    SendGetLayoutHistoryState(const MaybeDiscardedBrowsingContext& aContext);

    [[nodiscard]] bool
    SendDispatchLocationChangeEvent(const MaybeDiscardedBrowsingContext& aContext);

    void
    SendDispatchBeforeUnloadToSubtree(
            const MaybeDiscardedBrowsingContext& aStartingAt,
            const mozilla::Maybe<SessionHistoryInfo>& info,
            mozilla::ipc::ResolveCallback<PermitUnloadResult>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<DispatchBeforeUnloadToSubtreePromise>
    SendDispatchBeforeUnloadToSubtree(
            const MaybeDiscardedBrowsingContext& aStartingAt,
            const mozilla::Maybe<SessionHistoryInfo>& info);

    void
    SendDispatchNavigateToTraversable(
            const MaybeDiscardedBrowsingContext& aTraversable,
            const mozilla::Maybe<SessionHistoryInfo>& info,
            mozilla::ipc::ResolveCallback<PermitUnloadResult>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<DispatchNavigateToTraversablePromise>
    SendDispatchNavigateToTraversable(
            const MaybeDiscardedBrowsingContext& aTraversable,
            const mozilla::Maybe<SessionHistoryInfo>& info);

    [[nodiscard]] bool
    SendUpdateMediaCodecsSupported(
            const RemoteMediaIn& aLocation,
            const MediaCodecsSupported& aSupported);

    [[nodiscard]] bool
    SendInitNextGenLocalStorageEnabled(const bool& enabled);

    [[nodiscard]] PRemotePrintJobParent*
    SendPRemotePrintJobConstructor(PRemotePrintJobParent* actor);

    [[nodiscard]] bool
    SendConsumeHistoryActivation(const MaybeDiscardedBrowsingContext& aTop);

    [[nodiscard]] 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);

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

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

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

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

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

    [[nodiscard]] 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);

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

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

    [[nodiscard]] bool
    SendWindowClose(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aTrustedCaller);

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

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

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

    [[nodiscard]] bool
    SendClearFocus(const MaybeDiscardedBrowsingContext& aContext);

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

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

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

    [[nodiscard]] bool
    SendSetFocusedElement(
            const MaybeDiscardedBrowsingContext& aContext,
            const bool& aNeedsFocus);

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

    [[nodiscard]] bool
    SendBlurToChild(
            const MaybeDiscardedBrowsingContext& aFocusedBrowsingContext,
            const MaybeDiscardedBrowsingContext& aBrowsingContextToClear,
            const MaybeDiscardedBrowsingContext& aAncestorBrowsingContextToFocus,
            const bool& aIsLeavingDocument,
            const bool& aAdjustWidget,
            const uint64_t& aActionId);

    [[nodiscard]] bool
    SendSetupFocusedAndActive(
            const MaybeDiscardedBrowsingContext& aFocusedBrowsingContext,
            const uint64_t& aActionIdForFocused,
            const MaybeDiscardedBrowsingContext& aActiveBrowsingContext,
            const uint64_t& aActionId);

    [[nodiscard]] bool
    SendReviseActiveBrowsingContext(
            const uint64_t& aOldActionId,
            const MaybeDiscardedBrowsingContext& aActiveBrowsingContext,
            const uint64_t& aNewActionId);

    [[nodiscard]] bool
    SendReviseFocusedBrowsingContext(
            const uint64_t& aOldActionId,
            const MaybeDiscardedBrowsingContext& aFocusedBrowsingContext,
            const uint64_t& aNewActionId);

    [[nodiscard]] bool
    SendMaybeExitFullscreen(const MaybeDiscardedBrowsingContext& aContext);

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

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

    [[nodiscard]] bool
    SendCreateWindowContext(const WindowContextInitializer& aInit);

    void
    SendDiscardWindowContext(
            const uint64_t& aContextId,
            mozilla::ipc::ResolveCallback<bool>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<DiscardWindowContextPromise>
    SendDiscardWindowContext(const uint64_t& aContextId);

    void
    SendFlushFOGData(
            mozilla::ipc::ResolveCallback<ByteBuf>&& aResolve,
            mozilla::ipc::RejectCallback&& aReject);

    [[nodiscard]] RefPtr<FlushFOGDataPromise>
    SendFlushFOGData();

    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<PBrowserParent> mManagedPBrowserParent;
    ManagedContainer<PClipboardReadRequestParent> mManagedPClipboardReadRequestParent;
    ManagedContainer<PClipboardWriteRequestParent> mManagedPClipboardWriteRequestParent;
    ManagedContainer<PContentPermissionRequestParent> mManagedPContentPermissionRequestParent;
    ManagedContainer<PCycleCollectWithLogsParent> mManagedPCycleCollectWithLogsParent;
    ManagedContainer<PExtensionsParent> mManagedPExtensionsParent;
    ManagedContainer<PExternalHelperAppParent> mManagedPExternalHelperAppParent;
    ManagedContainer<PHalParent> mManagedPHalParent;
    ManagedContainer<PHandlerServiceParent> mManagedPHandlerServiceParent;
    ManagedContainer<PHeapSnapshotTempFileHelperParent> mManagedPHeapSnapshotTempFileHelperParent;
    ManagedContainer<PRemotePrintJobParent> mManagedPRemotePrintJobParent;
    ManagedContainer<PMediaParent> mManagedPMediaParent;
    ManagedContainer<PNeckoParent> mManagedPNeckoParent;
    ManagedContainer<PSpeechSynthesisParent> mManagedPSpeechSynthesisParent;
    ManagedContainer<PTestShellParent> mManagedPTestShellParent;
    ManagedContainer<PRemoteSpellcheckEngineParent> mManagedPRemoteSpellcheckEngineParent;
    ManagedContainer<PWebBrowserPersistDocumentParent> mManagedPWebBrowserPersistDocumentParent;
    ManagedContainer<PURLClassifierParent> mManagedPURLClassifierParent;
    ManagedContainer<PURLClassifierLocalParent> mManagedPURLClassifierLocalParent;
    ManagedContainer<PURLClassifierLocalByNameParent> mManagedPURLClassifierLocalByNameParent;
    ManagedContainer<PScriptCacheParent> mManagedPScriptCacheParent;
    ManagedContainer<PSessionStorageObserverParent> mManagedPSessionStorageObserverParent;
};


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

#endif // ifndef PContentParent_h
