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

#ifndef PBackgroundParent_h
#define PBackgroundParent_h

#include "mozilla/ipc/PBackground.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 "Units.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/HalIPCUtils.h"
#include "mozilla/OriginTrialsIPCUtils.h"
#include "mozilla/RemoteMediaManagerChild.h"
#include "mozilla/ScrollbarPreferences.h"
#include "mozilla/StorageAccess.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/IDBCursor.h"
#include "mozilla/dom/IndexedDatabase.h"
#include "mozilla/dom/IntegrityPolicy.h"
#include "mozilla/dom/LSValue.h"
#include "mozilla/dom/LoadURIOptionsBinding.h"
#include "mozilla/dom/NavigationBinding.h"
#include "mozilla/dom/NotificationBinding.h"
#include "mozilla/dom/ServiceWorkerBinding.h"
#include "mozilla/dom/ServiceWorkerRegistrationBinding.h"
#include "mozilla/dom/UserNavigationInvolvement.h"
#include "mozilla/dom/WorkerBinding.h"
#include "mozilla/dom/cache/Types.h"
#include "mozilla/dom/quota/PersistenceType.h"
#include "mozilla/gfx/Types.h"
#include "mozilla/ipc/BackgroundUtils.h"
#include "mozilla/ipc/SerializedStructuredCloneBuffer.h"
#include "mozilla/media/CamerasTypes.h"
#include "mozilla/net/ClassOfService.h"
#include "nsIClassifiedChannel.h"
#include "nsIContentSecurityPolicy.h"
#include "nsILoadInfo.h"
#include "nsIWidgetListener.h"
#include "nsRFPService.h"

namespace mozilla {
namespace net {
class PBackgroundDataBridgeParent;
} // namespace net
} // namespace mozilla
namespace mozilla {
namespace net {
class PBackgroundDataBridgeChild;
} // namespace net
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace indexedDB {
class PBackgroundIDBFactoryParent;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace indexedDB {
class PBackgroundIDBFactoryChild;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace indexedDB {
class PBackgroundIndexedDBUtilsParent;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace indexedDB {
class PBackgroundIndexedDBUtilsChild;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundSDBConnectionParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundSDBConnectionChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundLSObserverParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundLSObserverChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundLSRequestParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundLSRequestChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundLSSimpleRequestParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundLSSimpleRequestChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundLocalStorageCacheParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundLocalStorageCacheChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundSessionStorageManagerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundSessionStorageManagerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundSessionStorageServiceParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundSessionStorageServiceChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBackgroundStorageParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBackgroundStorageChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace ipc {
class PBackgroundTestParent;
} // namespace ipc
} // namespace mozilla
namespace mozilla {
namespace ipc {
class PBackgroundTestChild;
} // namespace ipc
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace cache {
class PBoundStorageKeyParent;
} // namespace cache
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace cache {
class PBoundStorageKeyChild;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PBroadcastChannelParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PBroadcastChannelChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace cache {
class PCacheParent;
} // namespace cache
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace cache {
class PCacheChild;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace cache {
class PCacheStorageParent;
} // namespace cache
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace cache {
class PCacheStorageChild;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace cache {
class PCacheStreamControlParent;
} // namespace cache
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace cache {
class PCacheStreamControlChild;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PClientManagerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PClientManagerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PCookieStoreParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PCookieStoreChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PEndpointForReportParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PEndpointForReportChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PFileSystemManagerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PFileSystemManagerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PFileSystemRequestParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PFileSystemRequestChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PGamepadEventChannelParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PGamepadEventChannelChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PGamepadTestChannelParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PGamepadTestChannelChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace net {
class PHttpBackgroundChannelParent;
} // namespace net
} // namespace mozilla
namespace mozilla {
namespace net {
class PHttpBackgroundChannelChild;
} // namespace net
} // namespace mozilla

namespace mozilla {
namespace ipc {
class PIdleSchedulerParent;
} // namespace ipc
} // namespace mozilla
namespace mozilla {
namespace ipc {
class PIdleSchedulerChild;
} // namespace ipc
} // namespace mozilla

namespace mozilla {
namespace dom {
class PRemoteWorkerControllerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PRemoteWorkerControllerChild;
} // 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 {
namespace dom {
class PSharedWorkerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PSharedWorkerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PTemporaryIPCBlobParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PTemporaryIPCBlobChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PFileCreatorParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PFileCreatorChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PMessagePortParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PMessagePortChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace camera {
class PCamerasParent;
} // namespace camera
} // namespace mozilla
namespace mozilla {
namespace camera {
class PCamerasChild;
} // namespace camera
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace locks {
class PLockManagerParent;
} // namespace locks
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace locks {
class PLockManagerChild;
} // namespace locks
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PMIDIManagerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PMIDIManagerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PMIDIPortParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PMIDIPortChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PMLSTransactionParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PMLSTransactionChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace quota {
class PQuotaParent;
} // namespace quota
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace quota {
class PQuotaChild;
} // namespace quota
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PServiceWorkerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PServiceWorkerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PServiceWorkerContainerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PServiceWorkerContainerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PServiceWorkerManagerParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PServiceWorkerManagerChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PServiceWorkerRegistrationParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PServiceWorkerRegistrationChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace net {
class PUDPSocketParent;
} // namespace net
} // namespace mozilla
namespace mozilla {
namespace net {
class PUDPSocketChild;
} // namespace net
} // namespace mozilla

namespace mozilla {
namespace dom {
class PVsyncParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PVsyncChild;
} // namespace dom
} // namespace mozilla

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

namespace mozilla {
namespace dom {
class PWebTransportParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PWebTransportChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class PFetchParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PFetchChild;
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace notification {
class PNotificationParent;
} // namespace notification
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
namespace notification {
class PNotificationChild;
} // namespace notification
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace camera {
class PCamerasParent;
} // namespace camera
} // namespace mozilla

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

namespace mozilla {
namespace dom {
namespace cache {
class PCacheParent;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace cache {
class PCacheStorageParent;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace cache {
class PCacheStreamControlParent;
} // namespace cache
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace indexedDB {
class PBackgroundIDBFactoryParent;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace indexedDB {
class PBackgroundIndexedDBUtilsParent;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace locks {
class PLockManagerParent;
} // namespace locks
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace quota {
class PQuotaParent;
} // namespace quota
} // namespace dom
} // namespace mozilla

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

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

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

namespace mozilla {
namespace net {
class PUDPSocketParent;
} // 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

namespace mozilla {
struct void_t;
} // namespace mozilla

namespace mozilla {
class RemoteLazyInputStream;
} // namespace mozilla

namespace mozilla {
struct void_t;
} // namespace mozilla

namespace mozilla {
struct null_t;
} // namespace mozilla

namespace mozilla {
struct void_t;
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace indexedDB {
class Key;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
namespace indexedDB {
class KeyPath;
} // namespace indexedDB
} // namespace dom
} // namespace mozilla

struct nsID;

namespace mozilla {
struct void_t;
} // namespace mozilla

class nsIPrincipal;

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

namespace mozilla {
namespace ipc {


class PBackgroundParent :
    public mozilla::ipc::IToplevelProtocol
{
private:
    friend class ::mozilla::camera::PCamerasParent;
    friend class ::mozilla::dom::PBackgroundLSObserverParent;
    friend class ::mozilla::dom::PBackgroundLSRequestParent;
    friend class ::mozilla::dom::PBackgroundLSSimpleRequestParent;
    friend class ::mozilla::dom::PBackgroundLocalStorageCacheParent;
    friend class ::mozilla::dom::PBackgroundSDBConnectionParent;
    friend class ::mozilla::dom::PBackgroundSessionStorageManagerParent;
    friend class ::mozilla::dom::PBackgroundSessionStorageServiceParent;
    friend class ::mozilla::dom::PBackgroundStorageParent;
    friend class ::mozilla::dom::PBroadcastChannelParent;
    friend class ::mozilla::dom::PClientManagerParent;
    friend class ::mozilla::dom::PCookieStoreParent;
    friend class ::mozilla::dom::PEndpointForReportParent;
    friend class ::mozilla::dom::PFetchParent;
    friend class ::mozilla::dom::PFileCreatorParent;
    friend class ::mozilla::dom::PFileSystemRequestParent;
    friend class ::mozilla::dom::PGamepadEventChannelParent;
    friend class ::mozilla::dom::PGamepadTestChannelParent;
    friend class ::mozilla::dom::PMessagePortParent;
    friend class ::mozilla::dom::PRemoteWorkerControllerParent;
    friend class ::mozilla::dom::PServiceWorkerParent;
    friend class ::mozilla::dom::PServiceWorkerContainerParent;
    friend class ::mozilla::dom::PServiceWorkerManagerParent;
    friend class ::mozilla::dom::PServiceWorkerRegistrationParent;
    friend class ::mozilla::dom::PSharedWorkerParent;
    friend class ::mozilla::dom::PTemporaryIPCBlobParent;
    friend class ::mozilla::dom::PVsyncParent;
    friend class ::mozilla::dom::cache::PCacheParent;
    friend class ::mozilla::dom::cache::PCacheStorageParent;
    friend class ::mozilla::dom::cache::PCacheStreamControlParent;
    friend class ::mozilla::dom::indexedDB::PBackgroundIDBFactoryParent;
    friend class ::mozilla::dom::indexedDB::PBackgroundIndexedDBUtilsParent;
    friend class ::mozilla::dom::locks::PLockManagerParent;
    friend class ::mozilla::dom::quota::PQuotaParent;
    friend class ::mozilla::ipc::PBackgroundTestParent;
    friend class ::mozilla::ipc::PIdleSchedulerParent;
    friend class ::mozilla::net::PHttpBackgroundChannelParent;
    friend class ::mozilla::net::PUDPSocketParent;
public:
    static constexpr ::mozilla::ipc::ProtocolId kProtocolId = PBackgroundMsgStart;
protected:
    typedef mozilla::ipc::ActorId ActorId;
    typedef ::mozilla::ipc::BigBuffer BigBuffer;
    typedef ::mozilla::ipc::ByteBuf ByteBuf;
    typedef ::mozilla::ipc::CSPInfo CSPInfo;
    typedef ::mozilla::dom::CSPViolation CSPViolation;
    typedef ::mozilla::CSSRect CSSRect;
    typedef ::mozilla::CSSSize CSSSize;
    typedef ::mozilla::CSSToLayoutDeviceScale CSSToLayoutDeviceScale;
    typedef ::mozilla::dom::CallerType CallerType;
    typedef ::mozilla::camera::CamerasAccessStatus CamerasAccessStatus;
    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::ClonedMessageData ClonedMessageData;
    typedef ::mozilla::dom::ClonedOrErrorMessageData ClonedOrErrorMessageData;
    typedef ::mozilla::dom::indexedDB::CommonIndexOpenCursorParams CommonIndexOpenCursorParams;
    typedef ::mozilla::dom::indexedDB::CommonOpenCursorParams CommonOpenCursorParams;
    typedef ::mozilla::ipc::ContentPrincipalInfo ContentPrincipalInfo;
    typedef ::mozilla::ipc::ContentSecurityPolicy ContentSecurityPolicy;
    typedef ::mozilla::CopyableErrorResult CopyableErrorResult;
    typedef ::mozilla::dom::CreatedWindowInfo CreatedWindowInfo;
    typedef ::mozilla::dom::indexedDB::DatabaseMetadata DatabaseMetadata;
    typedef ::mozilla::dom::indexedDB::DatabaseSpec DatabaseSpec;
    typedef ::mozilla::DesktopIntRect DesktopIntRect;
    typedef ::mozilla::DesktopToLayoutDeviceScale DesktopToLayoutDeviceScale;
    typedef ::mozilla::dom::IntegrityPolicy::Destinations Destinations;
    typedef ::mozilla::dom::DimensionInfo DimensionInfo;
    typedef ::mozilla::dom::IDBCursor::Direction Direction;
    typedef ::mozilla::dom::DocShellLoadStateInit DocShellLoadStateInit;
    template<class FooSide> using Endpoint = mozilla::ipc::Endpoint<FooSide>;
    typedef ::mozilla::dom::ErrorData ErrorData;
    typedef ::mozilla::dom::ErrorDataNote ErrorDataNote;
    typedef ::mozilla::dom::ErrorMessageData ErrorMessageData;
    typedef ::mozilla::dom::ErrorMismatchOptions ErrorMismatchOptions;
    typedef ::mozilla::dom::ErrorValue ErrorValue;
    typedef ::mozilla::ipc::ExpandedPrincipalInfo ExpandedPrincipalInfo;
    typedef ::mozilla::dom::indexedDB::FileAddInfo FileAddInfo;
    typedef ::mozilla::ipc::FileDescriptor FileDescriptor;
    typedef ::mozilla::dom::FileSystemGetDirectoryListingParams FileSystemGetDirectoryListingParams;
    typedef ::mozilla::dom::FileSystemGetFileOrDirectoryParams FileSystemGetFileOrDirectoryParams;
    typedef ::mozilla::dom::FileSystemGetFilesParams FileSystemGetFilesParams;
    typedef ::mozilla::dom::FileSystemParams FileSystemParams;
    typedef ::mozilla::dom::indexedDB::StructuredCloneFileBase::FileType FileType;
    typedef ::mozilla::dom::ForceMediaDocument ForceMediaDocument;
    typedef ::mozilla::dom::FrameScriptInfo FrameScriptInfo;
    typedef ::mozilla::dom::FrameType FrameType;
    typedef ::nsILoadInfo::HTTPSUpgradeTelemetryType HTTPSUpgradeTelemetryType;
    typedef ::mozilla::dom::IDPLVariant IDPLVariant;
    typedef ::mozilla::dom::IPCBlob IPCBlob;
    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::dom::IPCServiceWorkerDescriptor IPCServiceWorkerDescriptor;
    typedef ::mozilla::dom::IPCServiceWorkerRegistrationDescriptor IPCServiceWorkerRegistrationDescriptor;
    typedef ::mozilla::dom::IPCServiceWorkerRegistrationDescriptorList IPCServiceWorkerRegistrationDescriptorList;
    typedef ::mozilla::dom::IPCServiceWorkerRegistrationDescriptorListOrCopyableErrorResult IPCServiceWorkerRegistrationDescriptorListOrCopyableErrorResult;
    typedef ::mozilla::dom::IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult;
    typedef ::mozilla::dom::IPDLProperty IPDLProperty;
    typedef ::mozilla::dom::IPDLVariantValue IPDLVariantValue;
    typedef ::mozilla::ImageIntSize ImageIntSize;
    typedef ::mozilla::dom::indexedDB::IndexCountParams IndexCountParams;
    typedef ::mozilla::dom::indexedDB::IndexGetAllKeysParams IndexGetAllKeysParams;
    typedef ::mozilla::dom::indexedDB::IndexGetAllParams IndexGetAllParams;
    typedef ::mozilla::dom::indexedDB::IndexGetKeyParams IndexGetKeyParams;
    typedef ::mozilla::dom::indexedDB::IndexGetParams IndexGetParams;
    typedef ::mozilla::dom::indexedDB::IndexMetadata IndexMetadata;
    typedef ::mozilla::dom::indexedDB::IndexOpenCursorParams IndexOpenCursorParams;
    typedef ::mozilla::dom::indexedDB::IndexOpenKeyCursorParams IndexOpenKeyCursorParams;
    typedef ::mozilla::dom::indexedDB::IndexUpdateInfo IndexUpdateInfo;
    typedef ::mozilla::ipc::IntegrityPolicyArgs IntegrityPolicyArgs;
    typedef ::mozilla::ipc::IntegrityPolicyEntry IntegrityPolicyEntry;
    typedef ::mozilla::dom::indexedDB::Key Key;
    typedef ::mozilla::dom::indexedDB::KeyPath KeyPath;
    typedef ::mozilla::dom::LSItemInfo LSItemInfo;
    typedef ::mozilla::dom::LSRequestCommonParams LSRequestCommonParams;
    typedef ::mozilla::dom::LSRequestParams LSRequestParams;
    typedef ::mozilla::dom::LSRequestPreloadDatastoreParams LSRequestPreloadDatastoreParams;
    typedef ::mozilla::dom::LSRequestPrepareDatastoreParams LSRequestPrepareDatastoreParams;
    typedef ::mozilla::dom::LSRequestPrepareObserverParams LSRequestPrepareObserverParams;
    typedef ::mozilla::dom::LSSimpleRequestGetStateParams LSSimpleRequestGetStateParams;
    typedef ::mozilla::dom::LSSimpleRequestParams LSSimpleRequestParams;
    typedef ::mozilla::dom::LSSimpleRequestPreloadedParams LSSimpleRequestPreloadedParams;
    typedef ::mozilla::dom::LSValue LSValue;
    typedef ::mozilla::LayoutDeviceIntPoint LayoutDeviceIntPoint;
    typedef ::mozilla::LayoutDeviceIntRect LayoutDeviceIntRect;
    typedef ::mozilla::LayoutDeviceIntSize LayoutDeviceIntSize;
    typedef ::mozilla::dom::LoadingSessionHistoryInfo LoadingSessionHistoryInfo;
    typedef ::mozilla::dom::indexedDB::LoggingInfo LoggingInfo;
    typedef ::mozilla::dom::MIDIMessage MIDIMessage;
    typedef ::mozilla::dom::MIDIPortInfo MIDIPortInfo;
    typedef ::mozilla::dom::MIDIPortList MIDIPortList;
    template<class FooSide> using ManagedEndpoint = mozilla::ipc::ManagedEndpoint<FooSide>;
    typedef ::mozilla::dom::MaybeDiscardedBrowsingContext MaybeDiscardedBrowsingContext;
    typedef ::mozilla::dom::MessageData MessageData;
    typedef ::mozilla::dom::MessageDataType MessageDataType;
    typedef ::mozilla::dom::MessagePortIdentifier MessagePortIdentifier;
    typedef ::mozilla::dom::cache::Namespace Namespace;
    typedef ::mozilla::dom::NavigationHistoryBehavior NavigationHistoryBehavior;
    typedef ::mozilla::dom::NotificationDirection NotificationDirection;
    typedef ::mozilla::ipc::NullPrincipalInfo NullPrincipalInfo;
    typedef ::mozilla::dom::indexedDB::NullableBlob NullableBlob;
    typedef ::mozilla::dom::indexedDB::ObjectStoreAddParams ObjectStoreAddParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreAddPutParams ObjectStoreAddPutParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreClearParams ObjectStoreClearParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreCountParams ObjectStoreCountParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreDeleteParams ObjectStoreDeleteParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreGetAllKeysParams ObjectStoreGetAllKeysParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreGetAllParams ObjectStoreGetAllParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreGetKeyParams ObjectStoreGetKeyParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreGetParams ObjectStoreGetParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreMetadata ObjectStoreMetadata;
    typedef ::mozilla::dom::indexedDB::ObjectStoreOpenCursorParams ObjectStoreOpenCursorParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreOpenKeyCursorParams ObjectStoreOpenKeyCursorParams;
    typedef ::mozilla::dom::indexedDB::ObjectStorePutParams ObjectStorePutParams;
    typedef ::mozilla::dom::indexedDB::ObjectStoreSpec ObjectStoreSpec;
    typedef ::mozilla::dom::indexedDB::OpenCursorParams OpenCursorParams;
    typedef ::mozilla::dom::OptionalServiceWorkerData OptionalServiceWorkerData;
    typedef ::mozilla::OriginAttributes OriginAttributes;
    typedef ::mozilla::OriginTrials OriginTrials;
    typedef ::mozilla::dom::OwnerShowInfo OwnerShowInfo;
    typedef ::mozilla::net::PBackgroundDataBridgeChild PBackgroundDataBridgeChild;
    typedef ::mozilla::net::PBackgroundDataBridgeParent PBackgroundDataBridgeParent;
    typedef ::mozilla::dom::indexedDB::PBackgroundIDBFactoryChild PBackgroundIDBFactoryChild;
    typedef ::mozilla::dom::indexedDB::PBackgroundIDBFactoryParent PBackgroundIDBFactoryParent;
    typedef ::mozilla::dom::indexedDB::PBackgroundIndexedDBUtilsChild PBackgroundIndexedDBUtilsChild;
    typedef ::mozilla::dom::indexedDB::PBackgroundIndexedDBUtilsParent PBackgroundIndexedDBUtilsParent;
    typedef ::mozilla::dom::PBackgroundLSObserverChild PBackgroundLSObserverChild;
    typedef ::mozilla::dom::PBackgroundLSObserverParent PBackgroundLSObserverParent;
    typedef ::mozilla::dom::PBackgroundLSRequestChild PBackgroundLSRequestChild;
    typedef ::mozilla::dom::PBackgroundLSRequestParent PBackgroundLSRequestParent;
    typedef ::mozilla::dom::PBackgroundLSSimpleRequestChild PBackgroundLSSimpleRequestChild;
    typedef ::mozilla::dom::PBackgroundLSSimpleRequestParent PBackgroundLSSimpleRequestParent;
    typedef ::mozilla::dom::PBackgroundLocalStorageCacheChild PBackgroundLocalStorageCacheChild;
    typedef ::mozilla::dom::PBackgroundLocalStorageCacheParent PBackgroundLocalStorageCacheParent;
    typedef ::mozilla::dom::PBackgroundSDBConnectionChild PBackgroundSDBConnectionChild;
    typedef ::mozilla::dom::PBackgroundSDBConnectionParent PBackgroundSDBConnectionParent;
    typedef ::mozilla::dom::PBackgroundSessionStorageManagerChild PBackgroundSessionStorageManagerChild;
    typedef ::mozilla::dom::PBackgroundSessionStorageManagerParent PBackgroundSessionStorageManagerParent;
    typedef ::mozilla::dom::PBackgroundSessionStorageServiceChild PBackgroundSessionStorageServiceChild;
    typedef ::mozilla::dom::PBackgroundSessionStorageServiceParent PBackgroundSessionStorageServiceParent;
    typedef ::mozilla::dom::PBackgroundStorageChild PBackgroundStorageChild;
    typedef ::mozilla::dom::PBackgroundStorageParent PBackgroundStorageParent;
    typedef ::mozilla::ipc::PBackgroundTestChild PBackgroundTestChild;
    typedef ::mozilla::ipc::PBackgroundTestParent PBackgroundTestParent;
    typedef ::mozilla::dom::cache::PBoundStorageKeyChild PBoundStorageKeyChild;
    typedef ::mozilla::dom::cache::PBoundStorageKeyParent PBoundStorageKeyParent;
    typedef ::mozilla::dom::PBroadcastChannelChild PBroadcastChannelChild;
    typedef ::mozilla::dom::PBroadcastChannelParent PBroadcastChannelParent;
    typedef ::mozilla::dom::cache::PCacheChild PCacheChild;
    typedef ::mozilla::dom::cache::PCacheParent PCacheParent;
    typedef ::mozilla::dom::cache::PCacheStorageChild PCacheStorageChild;
    typedef ::mozilla::dom::cache::PCacheStorageParent PCacheStorageParent;
    typedef ::mozilla::dom::cache::PCacheStreamControlChild PCacheStreamControlChild;
    typedef ::mozilla::dom::cache::PCacheStreamControlParent PCacheStreamControlParent;
    typedef ::mozilla::camera::PCamerasChild PCamerasChild;
    typedef ::mozilla::camera::PCamerasParent PCamerasParent;
    typedef ::mozilla::dom::PClientManagerChild PClientManagerChild;
    typedef ::mozilla::dom::PClientManagerParent PClientManagerParent;
    typedef ::mozilla::dom::PCookieStoreChild PCookieStoreChild;
    typedef ::mozilla::dom::PCookieStoreParent PCookieStoreParent;
    typedef ::mozilla::dom::PEndpointForReportChild PEndpointForReportChild;
    typedef ::mozilla::dom::PEndpointForReportParent PEndpointForReportParent;
    typedef ::mozilla::dom::PFetchChild PFetchChild;
    typedef ::mozilla::dom::PFetchParent PFetchParent;
    typedef ::mozilla::dom::PFileCreatorChild PFileCreatorChild;
    typedef ::mozilla::dom::PFileCreatorParent PFileCreatorParent;
    typedef ::mozilla::dom::PFileSystemManagerChild PFileSystemManagerChild;
    typedef ::mozilla::dom::PFileSystemManagerParent PFileSystemManagerParent;
    typedef ::mozilla::dom::PFileSystemRequestChild PFileSystemRequestChild;
    typedef ::mozilla::dom::PFileSystemRequestParent PFileSystemRequestParent;
    typedef ::mozilla::dom::PGamepadEventChannelChild PGamepadEventChannelChild;
    typedef ::mozilla::dom::PGamepadEventChannelParent PGamepadEventChannelParent;
    typedef ::mozilla::dom::PGamepadTestChannelChild PGamepadTestChannelChild;
    typedef ::mozilla::dom::PGamepadTestChannelParent PGamepadTestChannelParent;
    typedef ::mozilla::net::PHttpBackgroundChannelChild PHttpBackgroundChannelChild;
    typedef ::mozilla::net::PHttpBackgroundChannelParent PHttpBackgroundChannelParent;
    typedef ::mozilla::ipc::PIdleSchedulerChild PIdleSchedulerChild;
    typedef ::mozilla::ipc::PIdleSchedulerParent PIdleSchedulerParent;
    typedef ::mozilla::dom::locks::PLockManagerChild PLockManagerChild;
    typedef ::mozilla::dom::locks::PLockManagerParent PLockManagerParent;
    typedef ::mozilla::dom::PMIDIManagerChild PMIDIManagerChild;
    typedef ::mozilla::dom::PMIDIManagerParent PMIDIManagerParent;
    typedef ::mozilla::dom::PMIDIPortChild PMIDIPortChild;
    typedef ::mozilla::dom::PMIDIPortParent PMIDIPortParent;
    typedef ::mozilla::dom::PMLSTransactionChild PMLSTransactionChild;
    typedef ::mozilla::dom::PMLSTransactionParent PMLSTransactionParent;
    typedef ::mozilla::dom::PMessagePortChild PMessagePortChild;
    typedef ::mozilla::dom::PMessagePortParent PMessagePortParent;
    typedef ::mozilla::dom::notification::PNotificationChild PNotificationChild;
    typedef ::mozilla::dom::notification::PNotificationParent PNotificationParent;
    typedef ::mozilla::dom::quota::PQuotaChild PQuotaChild;
    typedef ::mozilla::dom::quota::PQuotaParent PQuotaParent;
    typedef ::mozilla::PRemoteMediaManagerChild PRemoteMediaManagerChild;
    typedef ::mozilla::PRemoteMediaManagerParent PRemoteMediaManagerParent;
    typedef ::mozilla::dom::PRemoteWorkerControllerChild PRemoteWorkerControllerChild;
    typedef ::mozilla::dom::PRemoteWorkerControllerParent PRemoteWorkerControllerParent;
    typedef ::mozilla::dom::PRemoteWorkerServiceChild PRemoteWorkerServiceChild;
    typedef ::mozilla::dom::PRemoteWorkerServiceParent PRemoteWorkerServiceParent;
    typedef ::mozilla::dom::PServiceWorkerChild PServiceWorkerChild;
    typedef ::mozilla::dom::PServiceWorkerContainerChild PServiceWorkerContainerChild;
    typedef ::mozilla::dom::PServiceWorkerContainerParent PServiceWorkerContainerParent;
    typedef ::mozilla::dom::PServiceWorkerManagerChild PServiceWorkerManagerChild;
    typedef ::mozilla::dom::PServiceWorkerManagerParent PServiceWorkerManagerParent;
    typedef ::mozilla::dom::PServiceWorkerParent PServiceWorkerParent;
    typedef ::mozilla::dom::PServiceWorkerRegistrationChild PServiceWorkerRegistrationChild;
    typedef ::mozilla::dom::PServiceWorkerRegistrationParent PServiceWorkerRegistrationParent;
    typedef ::mozilla::dom::PSharedWorkerChild PSharedWorkerChild;
    typedef ::mozilla::dom::PSharedWorkerParent PSharedWorkerParent;
    typedef ::mozilla::dom::PTemporaryIPCBlobChild PTemporaryIPCBlobChild;
    typedef ::mozilla::dom::PTemporaryIPCBlobParent PTemporaryIPCBlobParent;
    typedef ::mozilla::net::PUDPSocketChild PUDPSocketChild;
    typedef ::mozilla::net::PUDPSocketParent PUDPSocketParent;
    typedef ::mozilla::dom::PVsyncChild PVsyncChild;
    typedef ::mozilla::dom::PVsyncParent PVsyncParent;
    typedef ::mozilla::dom::PWebTransportChild PWebTransportChild;
    typedef ::mozilla::dom::PWebTransportParent PWebTransportParent;
    typedef ::mozilla::dom::ParentShowInfo ParentShowInfo;
    typedef ::mozilla::dom::quota::PersistenceType PersistenceType;
    typedef ::mozilla::ipc::PolicyContainerArgs PolicyContainerArgs;
    typedef ::mozilla::dom::PostMessageSource PostMessageSource;
    typedef ::mozilla::ipc::PrincipalInfo PrincipalInfo;
    typedef base::ProcessId ProcessId;
    typedef ::mozilla::ipc::ProtocolFdMapping ProtocolFdMapping;
    typedef mozilla::ipc::ProtocolId ProtocolId;
    typedef ::mozilla::RFPTargetSet RFPTargetSet;
    typedef ::mozilla::dom::RefMessageData RefMessageData;
    typedef ::mozilla::RemoteLazyInputStream RemoteLazyInputStream;
    typedef ::mozilla::RemoteLazyStream RemoteLazyStream;
    typedef ::mozilla::RemoteMediaIn RemoteMediaIn;
    typedef ::mozilla::dom::RemoteWorkerData RemoteWorkerData;
    typedef ::mozilla::dom::RemoteWorkerDebuggerErrorInfo RemoteWorkerDebuggerErrorInfo;
    typedef ::mozilla::dom::RemoteWorkerDebuggerInfo RemoteWorkerDebuggerInfo;
    typedef ::mozilla::dom::ReplacementChannelConfigInit ReplacementChannelConfigInit;
    typedef ::mozilla::dom::indexedDB::RequestParams RequestParams;
    typedef ::nsIContentSecurityPolicy::RequireTrustedTypesForDirectiveState RequireTrustedTypesForDirectiveState;
    typedef mozilla::ipc::ResponseRejectReason ResponseRejectReason;
    typedef ::mozilla::dom::SSCacheCopy SSCacheCopy;
    typedef ::nsILoadInfo::SchemelessInputType SchemelessInputType;
    typedef ::mozilla::dom::ScreenDetails ScreenDetails;
    typedef ::mozilla::hal::ScreenOrientation ScreenOrientation;
    typedef ::mozilla::ScrollbarPreference ScrollbarPreference;
    typedef ::mozilla::dom::indexedDB::SerializedKeyRange SerializedKeyRange;
    typedef ::mozilla::SerializedStructuredCloneBuffer SerializedStructuredCloneBuffer;
    typedef ::mozilla::dom::indexedDB::SerializedStructuredCloneFile SerializedStructuredCloneFile;
    typedef ::mozilla::dom::indexedDB::SerializedStructuredCloneReadInfo SerializedStructuredCloneReadInfo;
    typedef ::mozilla::dom::indexedDB::SerializedStructuredCloneWriteInfo SerializedStructuredCloneWriteInfo;
    typedef ::mozilla::dom::ServiceWorkerData ServiceWorkerData;
    typedef ::mozilla::dom::ServiceWorkerState ServiceWorkerState;
    typedef ::mozilla::dom::ServiceWorkerUpdateViaCache ServiceWorkerUpdateViaCache;
    typedef ::mozilla::ipc::Shmem Shmem;
    typedef ::mozilla::dom::IntegrityPolicy::Sources Sources;
    typedef ::mozilla::StorageAccess StorageAccess;
    typedef ::mozilla::gfx::SurfaceFormat SurfaceFormat;
    typedef ::mozilla::ipc::SystemPrincipalInfo SystemPrincipalInfo;
    typedef ::mozilla::TimeStamp TimeStamp;
    typedef ::mozilla::dom::TimedChannelInfo TimedChannelInfo;
    template<class T> using UniquePtr = mozilla::UniquePtr<T>;
    typedef ::mozilla::dom::UserNavigationInvolvement UserNavigationInvolvement;
    typedef ::mozilla::dom::VisibilityState VisibilityState;
    typedef ::mozilla::ipc::WebTransportHash WebTransportHash;
    typedef ::mozilla::dom::WorkerOptions WorkerOptions;
    typedef ::mozilla::dom::WorkerType WorkerType;
    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 ::nsCString nsCString;
    typedef ::nsID nsID;
    typedef ::nsIInputStream nsIInputStream;
    typedef ::nsIPolicyContainer nsIPolicyContainer;
    typedef ::nsIPrincipal nsIPrincipal;
    typedef ::nsIReferrerInfo nsIReferrerInfo;
    typedef ::nsIURI nsIURI;
    typedef ::nsIVariant nsIVariant;
    typedef ::nsSizeMode nsSizeMode;
    typedef ::nsString nsString;
    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 nsresult&)> CreateFileSystemManagerParentResolver;
    typedef std::function<void(std::tuple<const nsresult&, const uint8_t&>)> CreateWebTransportParentResolver;
    typedef std::function<void(const bool&)> CreateNotificationParentResolver;
    typedef std::function<void(mozilla::Span<SSCacheCopy const>)> GetSessionStorageManagerDataResolver;
    typedef std::function<void(const bool&)> HasMIDIDeviceResolver;
    typedef std::function<void(std::tuple<const nsresult&, Endpoint<::mozilla::PRemoteMediaManagerChild>&&>)> EnsureRDDProcessAndCreateBridgeResolver;
    typedef std::function<void(std::tuple<const nsresult&, Endpoint<::mozilla::PRemoteMediaManagerChild>&&>)> EnsureUtilityProcessAndCreateBridgeResolver;
    typedef std::function<void(const CamerasAccessStatus&)> RequestCameraAccessResolver;

protected:
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundTestConstructor(
            PBackgroundTestParent* actor,
            const nsACString& testArg);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundIDBFactoryConstructor(
            PBackgroundIDBFactoryParent* actor,
            const LoggingInfo& loggingInfo,
            const nsACString& systemLocale);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundIndexedDBUtilsConstructor(PBackgroundIndexedDBUtilsParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvFlushPendingFileDeletions() = 0;
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundSDBConnectionConstructor(
            PBackgroundSDBConnectionParent* actor,
            const PersistenceType& persistenceType,
            const PrincipalInfo& principalInfo);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundLSObserverConstructor(
            PBackgroundLSObserverParent* actor,
            const uint64_t& observerId);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundLSRequestConstructor(
            PBackgroundLSRequestParent* actor,
            const LSRequestParams& params);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundLSSimpleRequestConstructor(
            PBackgroundLSSimpleRequestParent* actor,
            const LSSimpleRequestParams& params);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundLocalStorageCacheConstructor(
            PBackgroundLocalStorageCacheParent* actor,
            const PrincipalInfo& principalInfo,
            const nsACString& originKey,
            const uint32_t& privateBrowsingId);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundSessionStorageManagerConstructor(
            PBackgroundSessionStorageManagerParent* actor,
            const uint64_t& aTopContextId);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundSessionStorageServiceConstructor(PBackgroundSessionStorageServiceParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPBackgroundStorageConstructor(
            PBackgroundStorageParent* actor,
            const nsAString& profilePath,
            const uint32_t& privateBrowsingId);
    virtual mozilla::ipc::IPCResult
    RecvCreateFileSystemManagerParent(
            const PrincipalInfo& principalInfo,
            Endpoint<::mozilla::dom::PFileSystemManagerParent>&& aParentEndpoint,
            CreateFileSystemManagerParentResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvCreateWebTransportParent(
            const nsAString& aURL,
            nsIPrincipal* aPrincipal,
            const mozilla::Maybe<IPCClientInfo>& aClientInfo,
            const bool& aDedicated,
            const bool& aRequireUnreliable,
            const uint32_t& aCongestionControl,
            nsTArray<WebTransportHash>&& aServerCertHashes,
            Endpoint<::mozilla::dom::PWebTransportParent>&& aParentEndpoint,
            CreateWebTransportParentResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvCreateNotificationParent(
            Endpoint<::mozilla::dom::notification::PNotificationParent>&& aParentEndpoint,
            mozilla::NotNull<nsIPrincipal*> aPrincipal,
            mozilla::NotNull<nsIPrincipal*> aEffectiveStoragePrincipal,
            const bool& aIsSecureContext,
            const nsAString& aScope,
            const IPCNotification& aNotification,
            CreateNotificationParentResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvPVsyncConstructor(PVsyncParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPCamerasConstructor(PCamerasParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPUDPSocketConstructor(
            PUDPSocketParent* actor,
            const mozilla::Maybe<PrincipalInfo>& pInfo,
            const nsACString& filter);
    virtual mozilla::ipc::IPCResult
    RecvPBroadcastChannelConstructor(
            PBroadcastChannelParent* actor,
            const PrincipalInfo& pInfo,
            const nsACString& origin,
            const nsAString& channel);
    virtual mozilla::ipc::IPCResult
    RecvPCookieStoreConstructor(PCookieStoreParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPServiceWorkerManagerConstructor(PServiceWorkerManagerParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvShutdownServiceWorkerRegistrar() = 0;
    virtual mozilla::ipc::IPCResult
    RecvPCacheStorageConstructor(
            PCacheStorageParent* actor,
            const Namespace& aNamespace,
            const PrincipalInfo& aPrincipalInfo);
    virtual mozilla::ipc::IPCResult
    RecvPMessagePortConstructor(
            PMessagePortParent* actor,
            const nsID& uuid,
            const nsID& destinationUuid,
            const uint32_t& sequenceId);
    virtual mozilla::ipc::IPCResult
    RecvMessagePortForceClose(
            const nsID& uuid,
            const nsID& destinationUuid,
            const uint32_t& sequenceId) = 0;
    virtual mozilla::ipc::IPCResult
    RecvPQuotaConstructor(PQuotaParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvShutdownQuotaManager() = 0;
    virtual mozilla::ipc::IPCResult
    RecvShutdownBackgroundSessionStorageManagers() = 0;
    virtual mozilla::ipc::IPCResult
    RecvPropagateBackgroundSessionStorageManager(
            const uint64_t& currentTopContextId,
            const uint64_t& targetTopContextId) = 0;
    virtual mozilla::ipc::IPCResult
    RecvRemoveBackgroundSessionStorageManager(const uint64_t& topContextId) = 0;
    virtual mozilla::ipc::IPCResult
    RecvGetSessionStorageManagerData(
            const uint64_t& aTopContextId,
            const uint32_t& aSizeLimit,
            const bool& aCancelSessionStoreTimer,
            GetSessionStorageManagerDataResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvLoadSessionStorageManagerData(
            const uint64_t& aTopContextId,
            nsTArray<SSCacheCopy>&& aOriginCacheCopy) = 0;
    virtual mozilla::ipc::IPCResult
    RecvPFileSystemRequestConstructor(
            PFileSystemRequestParent* actor,
            const FileSystemParams& params);
    virtual mozilla::ipc::IPCResult
    RecvPGamepadEventChannelConstructor(PGamepadEventChannelParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPGamepadTestChannelConstructor(PGamepadTestChannelParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPHttpBackgroundChannelConstructor(
            PHttpBackgroundChannelParent* actor,
            const uint64_t& channelId);
    virtual mozilla::ipc::IPCResult
    RecvPSharedWorkerConstructor(
            PSharedWorkerParent* actor,
            const RemoteWorkerData& data,
            const uint64_t& windowID,
            const MessagePortIdentifier& portIdentifier);
    virtual mozilla::ipc::IPCResult
    RecvPTemporaryIPCBlobConstructor(PTemporaryIPCBlobParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPFileCreatorConstructor(
            PFileCreatorParent* actor,
            const nsAString& aFullPath,
            const nsAString& aType,
            const nsAString& aName,
            const mozilla::Maybe<int64_t>& lastModified,
            const bool& aExistenceCheck,
            const bool& aIsFromNsIFile);
    virtual mozilla::ipc::IPCResult
    RecvPClientManagerConstructor(PClientManagerParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvCreateBoundStorageKeyParent(
            Endpoint<::mozilla::dom::cache::PBoundStorageKeyParent>&& aEndPoint,
            const Namespace& aNamespace,
            const PrincipalInfo& aPrincipalInfo) = 0;
    virtual mozilla::ipc::IPCResult
    RecvCreateMIDIManager(Endpoint<::mozilla::dom::PMIDIManagerParent>&& aEndpoint) = 0;
    virtual mozilla::ipc::IPCResult
    RecvCreateMIDIPort(
            Endpoint<::mozilla::dom::PMIDIPortParent>&& aEndpoint,
            const MIDIPortInfo& portInfo,
            const bool& sysexEnabled) = 0;
    virtual mozilla::ipc::IPCResult
    RecvHasMIDIDevice(HasMIDIDeviceResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvCreateMLSTransaction(
            Endpoint<::mozilla::dom::PMLSTransactionParent>&& aEndpoint,
            mozilla::NotNull<nsIPrincipal*> aPrincipal) = 0;
    virtual mozilla::ipc::IPCResult
    RecvStorageActivity(const PrincipalInfo& principalInfo) = 0;
    virtual mozilla::ipc::IPCResult
    RecvPServiceWorkerConstructor(
            PServiceWorkerParent* actor,
            const IPCServiceWorkerDescriptor& aDescriptor);
    virtual mozilla::ipc::IPCResult
    RecvPRemoteWorkerControllerConstructor(
            PRemoteWorkerControllerParent* actor,
            const RemoteWorkerData& aData);
    virtual mozilla::ipc::IPCResult
    RecvPServiceWorkerContainerConstructor(PServiceWorkerContainerParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvPServiceWorkerRegistrationConstructor(
            PServiceWorkerRegistrationParent* actor,
            const IPCServiceWorkerRegistrationDescriptor& aDescriptor,
            const IPCClientInfo& aForClient);
    virtual mozilla::ipc::IPCResult
    RecvPEndpointForReportConstructor(
            PEndpointForReportParent* actor,
            const nsAString& aGroupName,
            const PrincipalInfo& aPrincipalInfo);
    virtual mozilla::ipc::IPCResult
    RecvRemoveEndpoint(
            const nsAString& aGroupName,
            const nsACString& aEndpointURL,
            const PrincipalInfo& aPrincipalInfo) = 0;
    virtual mozilla::ipc::IPCResult
    RecvPIdleSchedulerConstructor(PIdleSchedulerParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvEnsureRDDProcessAndCreateBridge(EnsureRDDProcessAndCreateBridgeResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvEnsureUtilityProcessAndCreateBridge(
            const RemoteMediaIn& aLocation,
            EnsureUtilityProcessAndCreateBridgeResolver&& aResolve) = 0;
    virtual mozilla::ipc::IPCResult
    RecvPLockManagerConstructor(
            PLockManagerParent* actor,
            mozilla::NotNull<nsIPrincipal*> aPrincipalInfo,
            const mozilla::Maybe<nsID>& aClientId);
    virtual mozilla::ipc::IPCResult
    RecvPFetchConstructor(PFetchParent* actor);
    virtual mozilla::ipc::IPCResult
    RecvRequestCameraAccess(
            const bool& aAllowPermissionRequest,
            RequestCameraAccessResolver&& aResolve) = 0;
    virtual PBackgroundTestParent*
    AllocPBackgroundTestParent(const nsACString& testArg) = 0;
    virtual already_AddRefed<PBackgroundIDBFactoryParent>
    AllocPBackgroundIDBFactoryParent(
            const LoggingInfo& loggingInfo,
            const nsACString& systemLocale) = 0;
    virtual PBackgroundIndexedDBUtilsParent*
    AllocPBackgroundIndexedDBUtilsParent() = 0;
    virtual already_AddRefed<PBackgroundSDBConnectionParent>
    AllocPBackgroundSDBConnectionParent(
            const PersistenceType& persistenceType,
            const PrincipalInfo& principalInfo) = 0;
    virtual PBackgroundLSObserverParent*
    AllocPBackgroundLSObserverParent(const uint64_t& observerId) = 0;
    virtual PBackgroundLSRequestParent*
    AllocPBackgroundLSRequestParent(const LSRequestParams& params) = 0;
    virtual PBackgroundLSSimpleRequestParent*
    AllocPBackgroundLSSimpleRequestParent(const LSSimpleRequestParams& params) = 0;
    virtual PBackgroundLocalStorageCacheParent*
    AllocPBackgroundLocalStorageCacheParent(
            const PrincipalInfo& principalInfo,
            const nsACString& originKey,
            const uint32_t& privateBrowsingId) = 0;
    virtual already_AddRefed<PBackgroundSessionStorageManagerParent>
    AllocPBackgroundSessionStorageManagerParent(const uint64_t& aTopContextId) = 0;
    virtual already_AddRefed<PBackgroundSessionStorageServiceParent>
    AllocPBackgroundSessionStorageServiceParent() = 0;
    virtual PBackgroundStorageParent*
    AllocPBackgroundStorageParent(
            const nsAString& profilePath,
            const uint32_t& privateBrowsingId) = 0;
    virtual already_AddRefed<PVsyncParent>
    AllocPVsyncParent() = 0;
    virtual PCamerasParent*
    AllocPCamerasParent() = 0;
    virtual PUDPSocketParent*
    AllocPUDPSocketParent(
            const mozilla::Maybe<PrincipalInfo>& pInfo,
            const nsACString& filter) = 0;
    virtual PBroadcastChannelParent*
    AllocPBroadcastChannelParent(
            const PrincipalInfo& pInfo,
            const nsACString& origin,
            const nsAString& channel) = 0;
    virtual PCookieStoreParent*
    AllocPCookieStoreParent() = 0;
    virtual PServiceWorkerManagerParent*
    AllocPServiceWorkerManagerParent() = 0;
    virtual already_AddRefed<PCacheStorageParent>
    AllocPCacheStorageParent(
            const Namespace& aNamespace,
            const PrincipalInfo& aPrincipalInfo) = 0;
    virtual PMessagePortParent*
    AllocPMessagePortParent(
            const nsID& uuid,
            const nsID& destinationUuid,
            const uint32_t& sequenceId) = 0;
    virtual already_AddRefed<PQuotaParent>
    AllocPQuotaParent() = 0;
    virtual already_AddRefed<PFileSystemRequestParent>
    AllocPFileSystemRequestParent(const FileSystemParams& params) = 0;
    virtual already_AddRefed<PGamepadEventChannelParent>
    AllocPGamepadEventChannelParent() = 0;
    virtual already_AddRefed<PGamepadTestChannelParent>
    AllocPGamepadTestChannelParent() = 0;
    virtual already_AddRefed<PHttpBackgroundChannelParent>
    AllocPHttpBackgroundChannelParent(const uint64_t& channelId) = 0;
    virtual PSharedWorkerParent*
    AllocPSharedWorkerParent(
            const RemoteWorkerData& data,
            const uint64_t& windowID,
            const MessagePortIdentifier& portIdentifier) = 0;
    virtual PTemporaryIPCBlobParent*
    AllocPTemporaryIPCBlobParent() = 0;
    virtual PFileCreatorParent*
    AllocPFileCreatorParent(
            const nsAString& aFullPath,
            const nsAString& aType,
            const nsAString& aName,
            const mozilla::Maybe<int64_t>& lastModified,
            const bool& aExistenceCheck,
            const bool& aIsFromNsIFile) = 0;
    virtual already_AddRefed<PClientManagerParent>
    AllocPClientManagerParent() = 0;
    virtual already_AddRefed<PServiceWorkerParent>
    AllocPServiceWorkerParent(const IPCServiceWorkerDescriptor& aDescriptor) = 0;
    virtual already_AddRefed<PRemoteWorkerControllerParent>
    AllocPRemoteWorkerControllerParent(const RemoteWorkerData& aData) = 0;
    virtual already_AddRefed<PServiceWorkerContainerParent>
    AllocPServiceWorkerContainerParent() = 0;
    virtual already_AddRefed<PServiceWorkerRegistrationParent>
    AllocPServiceWorkerRegistrationParent(
            const IPCServiceWorkerRegistrationDescriptor& aDescriptor,
            const IPCClientInfo& aForClient) = 0;
    virtual PEndpointForReportParent*
    AllocPEndpointForReportParent(
            const nsAString& aGroupName,
            const PrincipalInfo& aPrincipalInfo) = 0;
    virtual already_AddRefed<PIdleSchedulerParent>
    AllocPIdleSchedulerParent() = 0;
    virtual already_AddRefed<PLockManagerParent>
    AllocPLockManagerParent(
            mozilla::NotNull<nsIPrincipal*> aPrincipalInfo,
            const mozilla::Maybe<nsID>& aClientId) = 0;
    virtual already_AddRefed<PFetchParent>
    AllocPFetchParent() = 0;
    virtual bool
    DeallocPBackgroundIndexedDBUtilsParent(PBackgroundIndexedDBUtilsParent* aActor) = 0;
    virtual bool
    DeallocPBackgroundLSObserverParent(PBackgroundLSObserverParent* aActor) = 0;
    virtual bool
    DeallocPBackgroundLSRequestParent(PBackgroundLSRequestParent* aActor) = 0;
    virtual bool
    DeallocPBackgroundLSSimpleRequestParent(PBackgroundLSSimpleRequestParent* aActor) = 0;
    virtual bool
    DeallocPBackgroundLocalStorageCacheParent(PBackgroundLocalStorageCacheParent* aActor) = 0;
    virtual bool
    DeallocPBackgroundStorageParent(PBackgroundStorageParent* aActor) = 0;
    virtual bool
    DeallocPBackgroundTestParent(PBackgroundTestParent* aActor) = 0;
    virtual bool
    DeallocPBroadcastChannelParent(PBroadcastChannelParent* aActor) = 0;
    virtual bool
    DeallocPCookieStoreParent(PCookieStoreParent* aActor) = 0;
    virtual bool
    DeallocPEndpointForReportParent(PEndpointForReportParent* aActor) = 0;
    virtual bool
    DeallocPSharedWorkerParent(PSharedWorkerParent* aActor) = 0;
    virtual bool
    DeallocPTemporaryIPCBlobParent(PTemporaryIPCBlobParent* aActor) = 0;
    virtual bool
    DeallocPFileCreatorParent(PFileCreatorParent* aActor) = 0;
    virtual bool
    DeallocPMessagePortParent(PMessagePortParent* aActor) = 0;
    virtual bool
    DeallocPCamerasParent(PCamerasParent* aActor) = 0;
    virtual bool
    DeallocPServiceWorkerManagerParent(PServiceWorkerManagerParent* aActor) = 0;
    virtual bool
    DeallocPUDPSocketParent(PUDPSocketParent* aActor) = 0;
    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 PBackgroundParent();

    virtual ~PBackgroundParent();

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

    void
    ManagedPBackgroundIDBFactoryParent(nsTArray<PBackgroundIDBFactoryParent*>& aArr) const;
    const ManagedContainer<PBackgroundIDBFactoryParent>&
    ManagedPBackgroundIDBFactoryParent() const;

    void
    ManagedPBackgroundIndexedDBUtilsParent(nsTArray<PBackgroundIndexedDBUtilsParent*>& aArr) const;
    const ManagedContainer<PBackgroundIndexedDBUtilsParent>&
    ManagedPBackgroundIndexedDBUtilsParent() const;

    void
    ManagedPBackgroundSDBConnectionParent(nsTArray<PBackgroundSDBConnectionParent*>& aArr) const;
    const ManagedContainer<PBackgroundSDBConnectionParent>&
    ManagedPBackgroundSDBConnectionParent() const;

    void
    ManagedPBackgroundLSObserverParent(nsTArray<PBackgroundLSObserverParent*>& aArr) const;
    const ManagedContainer<PBackgroundLSObserverParent>&
    ManagedPBackgroundLSObserverParent() const;

    void
    ManagedPBackgroundLSRequestParent(nsTArray<PBackgroundLSRequestParent*>& aArr) const;
    const ManagedContainer<PBackgroundLSRequestParent>&
    ManagedPBackgroundLSRequestParent() const;

    void
    ManagedPBackgroundLSSimpleRequestParent(nsTArray<PBackgroundLSSimpleRequestParent*>& aArr) const;
    const ManagedContainer<PBackgroundLSSimpleRequestParent>&
    ManagedPBackgroundLSSimpleRequestParent() const;

    void
    ManagedPBackgroundLocalStorageCacheParent(nsTArray<PBackgroundLocalStorageCacheParent*>& aArr) const;
    const ManagedContainer<PBackgroundLocalStorageCacheParent>&
    ManagedPBackgroundLocalStorageCacheParent() const;

    void
    ManagedPBackgroundSessionStorageManagerParent(nsTArray<PBackgroundSessionStorageManagerParent*>& aArr) const;
    const ManagedContainer<PBackgroundSessionStorageManagerParent>&
    ManagedPBackgroundSessionStorageManagerParent() const;

    void
    ManagedPBackgroundSessionStorageServiceParent(nsTArray<PBackgroundSessionStorageServiceParent*>& aArr) const;
    const ManagedContainer<PBackgroundSessionStorageServiceParent>&
    ManagedPBackgroundSessionStorageServiceParent() const;

    void
    ManagedPBackgroundStorageParent(nsTArray<PBackgroundStorageParent*>& aArr) const;
    const ManagedContainer<PBackgroundStorageParent>&
    ManagedPBackgroundStorageParent() const;

    void
    ManagedPBackgroundTestParent(nsTArray<PBackgroundTestParent*>& aArr) const;
    const ManagedContainer<PBackgroundTestParent>&
    ManagedPBackgroundTestParent() const;

    void
    ManagedPBroadcastChannelParent(nsTArray<PBroadcastChannelParent*>& aArr) const;
    const ManagedContainer<PBroadcastChannelParent>&
    ManagedPBroadcastChannelParent() const;

    void
    ManagedPCacheParent(nsTArray<PCacheParent*>& aArr) const;
    const ManagedContainer<PCacheParent>&
    ManagedPCacheParent() const;

    void
    ManagedPCacheStorageParent(nsTArray<PCacheStorageParent*>& aArr) const;
    const ManagedContainer<PCacheStorageParent>&
    ManagedPCacheStorageParent() const;

    void
    ManagedPCacheStreamControlParent(nsTArray<PCacheStreamControlParent*>& aArr) const;
    const ManagedContainer<PCacheStreamControlParent>&
    ManagedPCacheStreamControlParent() const;

    void
    ManagedPClientManagerParent(nsTArray<PClientManagerParent*>& aArr) const;
    const ManagedContainer<PClientManagerParent>&
    ManagedPClientManagerParent() const;

    void
    ManagedPCookieStoreParent(nsTArray<PCookieStoreParent*>& aArr) const;
    const ManagedContainer<PCookieStoreParent>&
    ManagedPCookieStoreParent() const;

    void
    ManagedPEndpointForReportParent(nsTArray<PEndpointForReportParent*>& aArr) const;
    const ManagedContainer<PEndpointForReportParent>&
    ManagedPEndpointForReportParent() const;

    void
    ManagedPFileSystemRequestParent(nsTArray<PFileSystemRequestParent*>& aArr) const;
    const ManagedContainer<PFileSystemRequestParent>&
    ManagedPFileSystemRequestParent() const;

    void
    ManagedPGamepadEventChannelParent(nsTArray<PGamepadEventChannelParent*>& aArr) const;
    const ManagedContainer<PGamepadEventChannelParent>&
    ManagedPGamepadEventChannelParent() const;

    void
    ManagedPGamepadTestChannelParent(nsTArray<PGamepadTestChannelParent*>& aArr) const;
    const ManagedContainer<PGamepadTestChannelParent>&
    ManagedPGamepadTestChannelParent() const;

    void
    ManagedPHttpBackgroundChannelParent(nsTArray<PHttpBackgroundChannelParent*>& aArr) const;
    const ManagedContainer<PHttpBackgroundChannelParent>&
    ManagedPHttpBackgroundChannelParent() const;

    void
    ManagedPIdleSchedulerParent(nsTArray<PIdleSchedulerParent*>& aArr) const;
    const ManagedContainer<PIdleSchedulerParent>&
    ManagedPIdleSchedulerParent() const;

    void
    ManagedPLockManagerParent(nsTArray<PLockManagerParent*>& aArr) const;
    const ManagedContainer<PLockManagerParent>&
    ManagedPLockManagerParent() const;

    void
    ManagedPRemoteWorkerControllerParent(nsTArray<PRemoteWorkerControllerParent*>& aArr) const;
    const ManagedContainer<PRemoteWorkerControllerParent>&
    ManagedPRemoteWorkerControllerParent() const;

    void
    ManagedPSharedWorkerParent(nsTArray<PSharedWorkerParent*>& aArr) const;
    const ManagedContainer<PSharedWorkerParent>&
    ManagedPSharedWorkerParent() const;

    void
    ManagedPTemporaryIPCBlobParent(nsTArray<PTemporaryIPCBlobParent*>& aArr) const;
    const ManagedContainer<PTemporaryIPCBlobParent>&
    ManagedPTemporaryIPCBlobParent() const;

    void
    ManagedPFileCreatorParent(nsTArray<PFileCreatorParent*>& aArr) const;
    const ManagedContainer<PFileCreatorParent>&
    ManagedPFileCreatorParent() const;

    void
    ManagedPMessagePortParent(nsTArray<PMessagePortParent*>& aArr) const;
    const ManagedContainer<PMessagePortParent>&
    ManagedPMessagePortParent() const;

    void
    ManagedPCamerasParent(nsTArray<PCamerasParent*>& aArr) const;
    const ManagedContainer<PCamerasParent>&
    ManagedPCamerasParent() const;

    void
    ManagedPQuotaParent(nsTArray<PQuotaParent*>& aArr) const;
    const ManagedContainer<PQuotaParent>&
    ManagedPQuotaParent() const;

    void
    ManagedPServiceWorkerParent(nsTArray<PServiceWorkerParent*>& aArr) const;
    const ManagedContainer<PServiceWorkerParent>&
    ManagedPServiceWorkerParent() const;

    void
    ManagedPServiceWorkerContainerParent(nsTArray<PServiceWorkerContainerParent*>& aArr) const;
    const ManagedContainer<PServiceWorkerContainerParent>&
    ManagedPServiceWorkerContainerParent() const;

    void
    ManagedPServiceWorkerManagerParent(nsTArray<PServiceWorkerManagerParent*>& aArr) const;
    const ManagedContainer<PServiceWorkerManagerParent>&
    ManagedPServiceWorkerManagerParent() const;

    void
    ManagedPServiceWorkerRegistrationParent(nsTArray<PServiceWorkerRegistrationParent*>& aArr) const;
    const ManagedContainer<PServiceWorkerRegistrationParent>&
    ManagedPServiceWorkerRegistrationParent() const;

    void
    ManagedPUDPSocketParent(nsTArray<PUDPSocketParent*>& aArr) const;
    const ManagedContainer<PUDPSocketParent>&
    ManagedPUDPSocketParent() const;

    void
    ManagedPVsyncParent(nsTArray<PVsyncParent*>& aArr) const;
    const ManagedContainer<PVsyncParent>&
    ManagedPVsyncParent() const;

    void
    ManagedPFetchParent(nsTArray<PFetchParent*>& aArr) const;
    const ManagedContainer<PFetchParent>&
    ManagedPFetchParent() const;

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

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

    void
    RejectPendingResponses(ResponseRejectReason aReason) final;

    ManagedEndpoint<PBackgroundIDBFactoryChild>
    OpenPBackgroundIDBFactoryEndpoint(PBackgroundIDBFactoryParent* aActor);
    bool
    BindPBackgroundIDBFactoryEndpoint(
            ManagedEndpoint<PBackgroundIDBFactoryParent> aEndpoint,
            PBackgroundIDBFactoryParent* aActor);

    ManagedEndpoint<PBackgroundIndexedDBUtilsChild>
    OpenPBackgroundIndexedDBUtilsEndpoint(PBackgroundIndexedDBUtilsParent* aActor);
    bool
    BindPBackgroundIndexedDBUtilsEndpoint(
            ManagedEndpoint<PBackgroundIndexedDBUtilsParent> aEndpoint,
            PBackgroundIndexedDBUtilsParent* aActor);

    ManagedEndpoint<PBackgroundSDBConnectionChild>
    OpenPBackgroundSDBConnectionEndpoint(PBackgroundSDBConnectionParent* aActor);
    bool
    BindPBackgroundSDBConnectionEndpoint(
            ManagedEndpoint<PBackgroundSDBConnectionParent> aEndpoint,
            PBackgroundSDBConnectionParent* aActor);

    ManagedEndpoint<PBackgroundLSObserverChild>
    OpenPBackgroundLSObserverEndpoint(PBackgroundLSObserverParent* aActor);
    bool
    BindPBackgroundLSObserverEndpoint(
            ManagedEndpoint<PBackgroundLSObserverParent> aEndpoint,
            PBackgroundLSObserverParent* aActor);

    ManagedEndpoint<PBackgroundLSRequestChild>
    OpenPBackgroundLSRequestEndpoint(PBackgroundLSRequestParent* aActor);
    bool
    BindPBackgroundLSRequestEndpoint(
            ManagedEndpoint<PBackgroundLSRequestParent> aEndpoint,
            PBackgroundLSRequestParent* aActor);

    ManagedEndpoint<PBackgroundLSSimpleRequestChild>
    OpenPBackgroundLSSimpleRequestEndpoint(PBackgroundLSSimpleRequestParent* aActor);
    bool
    BindPBackgroundLSSimpleRequestEndpoint(
            ManagedEndpoint<PBackgroundLSSimpleRequestParent> aEndpoint,
            PBackgroundLSSimpleRequestParent* aActor);

    ManagedEndpoint<PBackgroundLocalStorageCacheChild>
    OpenPBackgroundLocalStorageCacheEndpoint(PBackgroundLocalStorageCacheParent* aActor);
    bool
    BindPBackgroundLocalStorageCacheEndpoint(
            ManagedEndpoint<PBackgroundLocalStorageCacheParent> aEndpoint,
            PBackgroundLocalStorageCacheParent* aActor);

    ManagedEndpoint<PBackgroundSessionStorageManagerChild>
    OpenPBackgroundSessionStorageManagerEndpoint(PBackgroundSessionStorageManagerParent* aActor);
    bool
    BindPBackgroundSessionStorageManagerEndpoint(
            ManagedEndpoint<PBackgroundSessionStorageManagerParent> aEndpoint,
            PBackgroundSessionStorageManagerParent* aActor);

    ManagedEndpoint<PBackgroundSessionStorageServiceChild>
    OpenPBackgroundSessionStorageServiceEndpoint(PBackgroundSessionStorageServiceParent* aActor);
    bool
    BindPBackgroundSessionStorageServiceEndpoint(
            ManagedEndpoint<PBackgroundSessionStorageServiceParent> aEndpoint,
            PBackgroundSessionStorageServiceParent* aActor);

    ManagedEndpoint<PBackgroundStorageChild>
    OpenPBackgroundStorageEndpoint(PBackgroundStorageParent* aActor);
    bool
    BindPBackgroundStorageEndpoint(
            ManagedEndpoint<PBackgroundStorageParent> aEndpoint,
            PBackgroundStorageParent* aActor);

    ManagedEndpoint<PBackgroundTestChild>
    OpenPBackgroundTestEndpoint(PBackgroundTestParent* aActor);
    bool
    BindPBackgroundTestEndpoint(
            ManagedEndpoint<PBackgroundTestParent> aEndpoint,
            PBackgroundTestParent* aActor);

    ManagedEndpoint<PBroadcastChannelChild>
    OpenPBroadcastChannelEndpoint(PBroadcastChannelParent* aActor);
    bool
    BindPBroadcastChannelEndpoint(
            ManagedEndpoint<PBroadcastChannelParent> aEndpoint,
            PBroadcastChannelParent* aActor);

    ManagedEndpoint<PCacheChild>
    OpenPCacheEndpoint(PCacheParent* aActor);
    bool
    BindPCacheEndpoint(
            ManagedEndpoint<PCacheParent> aEndpoint,
            PCacheParent* aActor);

    ManagedEndpoint<PCacheStorageChild>
    OpenPCacheStorageEndpoint(PCacheStorageParent* aActor);
    bool
    BindPCacheStorageEndpoint(
            ManagedEndpoint<PCacheStorageParent> aEndpoint,
            PCacheStorageParent* aActor);

    ManagedEndpoint<PCacheStreamControlChild>
    OpenPCacheStreamControlEndpoint(PCacheStreamControlParent* aActor);
    bool
    BindPCacheStreamControlEndpoint(
            ManagedEndpoint<PCacheStreamControlParent> aEndpoint,
            PCacheStreamControlParent* aActor);

    ManagedEndpoint<PClientManagerChild>
    OpenPClientManagerEndpoint(PClientManagerParent* aActor);
    bool
    BindPClientManagerEndpoint(
            ManagedEndpoint<PClientManagerParent> aEndpoint,
            PClientManagerParent* aActor);

    ManagedEndpoint<PCookieStoreChild>
    OpenPCookieStoreEndpoint(PCookieStoreParent* aActor);
    bool
    BindPCookieStoreEndpoint(
            ManagedEndpoint<PCookieStoreParent> aEndpoint,
            PCookieStoreParent* aActor);

    ManagedEndpoint<PEndpointForReportChild>
    OpenPEndpointForReportEndpoint(PEndpointForReportParent* aActor);
    bool
    BindPEndpointForReportEndpoint(
            ManagedEndpoint<PEndpointForReportParent> aEndpoint,
            PEndpointForReportParent* aActor);

    ManagedEndpoint<PFileSystemRequestChild>
    OpenPFileSystemRequestEndpoint(PFileSystemRequestParent* aActor);
    bool
    BindPFileSystemRequestEndpoint(
            ManagedEndpoint<PFileSystemRequestParent> aEndpoint,
            PFileSystemRequestParent* aActor);

    ManagedEndpoint<PGamepadEventChannelChild>
    OpenPGamepadEventChannelEndpoint(PGamepadEventChannelParent* aActor);
    bool
    BindPGamepadEventChannelEndpoint(
            ManagedEndpoint<PGamepadEventChannelParent> aEndpoint,
            PGamepadEventChannelParent* aActor);

    ManagedEndpoint<PGamepadTestChannelChild>
    OpenPGamepadTestChannelEndpoint(PGamepadTestChannelParent* aActor);
    bool
    BindPGamepadTestChannelEndpoint(
            ManagedEndpoint<PGamepadTestChannelParent> aEndpoint,
            PGamepadTestChannelParent* aActor);

    ManagedEndpoint<PHttpBackgroundChannelChild>
    OpenPHttpBackgroundChannelEndpoint(PHttpBackgroundChannelParent* aActor);
    bool
    BindPHttpBackgroundChannelEndpoint(
            ManagedEndpoint<PHttpBackgroundChannelParent> aEndpoint,
            PHttpBackgroundChannelParent* aActor);

    ManagedEndpoint<PIdleSchedulerChild>
    OpenPIdleSchedulerEndpoint(PIdleSchedulerParent* aActor);
    bool
    BindPIdleSchedulerEndpoint(
            ManagedEndpoint<PIdleSchedulerParent> aEndpoint,
            PIdleSchedulerParent* aActor);

    ManagedEndpoint<PLockManagerChild>
    OpenPLockManagerEndpoint(PLockManagerParent* aActor);
    bool
    BindPLockManagerEndpoint(
            ManagedEndpoint<PLockManagerParent> aEndpoint,
            PLockManagerParent* aActor);

    ManagedEndpoint<PRemoteWorkerControllerChild>
    OpenPRemoteWorkerControllerEndpoint(PRemoteWorkerControllerParent* aActor);
    bool
    BindPRemoteWorkerControllerEndpoint(
            ManagedEndpoint<PRemoteWorkerControllerParent> aEndpoint,
            PRemoteWorkerControllerParent* aActor);

    ManagedEndpoint<PSharedWorkerChild>
    OpenPSharedWorkerEndpoint(PSharedWorkerParent* aActor);
    bool
    BindPSharedWorkerEndpoint(
            ManagedEndpoint<PSharedWorkerParent> aEndpoint,
            PSharedWorkerParent* aActor);

    ManagedEndpoint<PTemporaryIPCBlobChild>
    OpenPTemporaryIPCBlobEndpoint(PTemporaryIPCBlobParent* aActor);
    bool
    BindPTemporaryIPCBlobEndpoint(
            ManagedEndpoint<PTemporaryIPCBlobParent> aEndpoint,
            PTemporaryIPCBlobParent* aActor);

    ManagedEndpoint<PFileCreatorChild>
    OpenPFileCreatorEndpoint(PFileCreatorParent* aActor);
    bool
    BindPFileCreatorEndpoint(
            ManagedEndpoint<PFileCreatorParent> aEndpoint,
            PFileCreatorParent* aActor);

    ManagedEndpoint<PMessagePortChild>
    OpenPMessagePortEndpoint(PMessagePortParent* aActor);
    bool
    BindPMessagePortEndpoint(
            ManagedEndpoint<PMessagePortParent> aEndpoint,
            PMessagePortParent* aActor);

    ManagedEndpoint<PCamerasChild>
    OpenPCamerasEndpoint(PCamerasParent* aActor);
    bool
    BindPCamerasEndpoint(
            ManagedEndpoint<PCamerasParent> aEndpoint,
            PCamerasParent* aActor);

    ManagedEndpoint<PQuotaChild>
    OpenPQuotaEndpoint(PQuotaParent* aActor);
    bool
    BindPQuotaEndpoint(
            ManagedEndpoint<PQuotaParent> aEndpoint,
            PQuotaParent* aActor);

    ManagedEndpoint<PServiceWorkerChild>
    OpenPServiceWorkerEndpoint(PServiceWorkerParent* aActor);
    bool
    BindPServiceWorkerEndpoint(
            ManagedEndpoint<PServiceWorkerParent> aEndpoint,
            PServiceWorkerParent* aActor);

    ManagedEndpoint<PServiceWorkerContainerChild>
    OpenPServiceWorkerContainerEndpoint(PServiceWorkerContainerParent* aActor);
    bool
    BindPServiceWorkerContainerEndpoint(
            ManagedEndpoint<PServiceWorkerContainerParent> aEndpoint,
            PServiceWorkerContainerParent* aActor);

    ManagedEndpoint<PServiceWorkerManagerChild>
    OpenPServiceWorkerManagerEndpoint(PServiceWorkerManagerParent* aActor);
    bool
    BindPServiceWorkerManagerEndpoint(
            ManagedEndpoint<PServiceWorkerManagerParent> aEndpoint,
            PServiceWorkerManagerParent* aActor);

    ManagedEndpoint<PServiceWorkerRegistrationChild>
    OpenPServiceWorkerRegistrationEndpoint(PServiceWorkerRegistrationParent* aActor);
    bool
    BindPServiceWorkerRegistrationEndpoint(
            ManagedEndpoint<PServiceWorkerRegistrationParent> aEndpoint,
            PServiceWorkerRegistrationParent* aActor);

    ManagedEndpoint<PUDPSocketChild>
    OpenPUDPSocketEndpoint(PUDPSocketParent* aActor);
    bool
    BindPUDPSocketEndpoint(
            ManagedEndpoint<PUDPSocketParent> aEndpoint,
            PUDPSocketParent* aActor);

    ManagedEndpoint<PVsyncChild>
    OpenPVsyncEndpoint(PVsyncParent* aActor);
    bool
    BindPVsyncEndpoint(
            ManagedEndpoint<PVsyncParent> aEndpoint,
            PVsyncParent* aActor);

    ManagedEndpoint<PFetchChild>
    OpenPFetchEndpoint(PFetchParent* aActor);
    bool
    BindPFetchEndpoint(
            ManagedEndpoint<PFetchParent> aEndpoint,
            PFetchParent* aActor);

    [[nodiscard]] PCacheParent*
    SendPCacheConstructor(PCacheParent* actor);

    [[nodiscard]] PCacheStreamControlParent*
    SendPCacheStreamControlConstructor(PCacheStreamControlParent* actor);

    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<PBackgroundIDBFactoryParent> mManagedPBackgroundIDBFactoryParent;
    ManagedContainer<PBackgroundIndexedDBUtilsParent> mManagedPBackgroundIndexedDBUtilsParent;
    ManagedContainer<PBackgroundSDBConnectionParent> mManagedPBackgroundSDBConnectionParent;
    ManagedContainer<PBackgroundLSObserverParent> mManagedPBackgroundLSObserverParent;
    ManagedContainer<PBackgroundLSRequestParent> mManagedPBackgroundLSRequestParent;
    ManagedContainer<PBackgroundLSSimpleRequestParent> mManagedPBackgroundLSSimpleRequestParent;
    ManagedContainer<PBackgroundLocalStorageCacheParent> mManagedPBackgroundLocalStorageCacheParent;
    ManagedContainer<PBackgroundSessionStorageManagerParent> mManagedPBackgroundSessionStorageManagerParent;
    ManagedContainer<PBackgroundSessionStorageServiceParent> mManagedPBackgroundSessionStorageServiceParent;
    ManagedContainer<PBackgroundStorageParent> mManagedPBackgroundStorageParent;
    ManagedContainer<PBackgroundTestParent> mManagedPBackgroundTestParent;
    ManagedContainer<PBroadcastChannelParent> mManagedPBroadcastChannelParent;
    ManagedContainer<PCacheParent> mManagedPCacheParent;
    ManagedContainer<PCacheStorageParent> mManagedPCacheStorageParent;
    ManagedContainer<PCacheStreamControlParent> mManagedPCacheStreamControlParent;
    ManagedContainer<PClientManagerParent> mManagedPClientManagerParent;
    ManagedContainer<PCookieStoreParent> mManagedPCookieStoreParent;
    ManagedContainer<PEndpointForReportParent> mManagedPEndpointForReportParent;
    ManagedContainer<PFileSystemRequestParent> mManagedPFileSystemRequestParent;
    ManagedContainer<PGamepadEventChannelParent> mManagedPGamepadEventChannelParent;
    ManagedContainer<PGamepadTestChannelParent> mManagedPGamepadTestChannelParent;
    ManagedContainer<PHttpBackgroundChannelParent> mManagedPHttpBackgroundChannelParent;
    ManagedContainer<PIdleSchedulerParent> mManagedPIdleSchedulerParent;
    ManagedContainer<PLockManagerParent> mManagedPLockManagerParent;
    ManagedContainer<PRemoteWorkerControllerParent> mManagedPRemoteWorkerControllerParent;
    ManagedContainer<PSharedWorkerParent> mManagedPSharedWorkerParent;
    ManagedContainer<PTemporaryIPCBlobParent> mManagedPTemporaryIPCBlobParent;
    ManagedContainer<PFileCreatorParent> mManagedPFileCreatorParent;
    ManagedContainer<PMessagePortParent> mManagedPMessagePortParent;
    ManagedContainer<PCamerasParent> mManagedPCamerasParent;
    ManagedContainer<PQuotaParent> mManagedPQuotaParent;
    ManagedContainer<PServiceWorkerParent> mManagedPServiceWorkerParent;
    ManagedContainer<PServiceWorkerContainerParent> mManagedPServiceWorkerContainerParent;
    ManagedContainer<PServiceWorkerManagerParent> mManagedPServiceWorkerManagerParent;
    ManagedContainer<PServiceWorkerRegistrationParent> mManagedPServiceWorkerRegistrationParent;
    ManagedContainer<PUDPSocketParent> mManagedPUDPSocketParent;
    ManagedContainer<PVsyncParent> mManagedPVsyncParent;
    ManagedContainer<PFetchParent> mManagedPFetchParent;
};


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

#endif // ifndef PBackgroundParent_h
