/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_ipc_backgroundparentimpl_h__ #define mozilla_ipc_backgroundparentimpl_h__ #include "mozilla/Attributes.h" #include "mozilla/ipc/InputStreamUtils.h" #include "mozilla/ipc/PBackgroundParent.h" namespace mozilla { namespace ipc { // Instances of this class should never be created directly. This class is meant // to be inherited in BackgroundImpl. class BackgroundParentImpl : public PBackgroundParent, public ParentToChildStreamActorManager { public: PParentToChildStreamParent* SendPParentToChildStreamConstructor( PParentToChildStreamParent* aActor) override; PFileDescriptorSetParent* SendPFileDescriptorSetConstructor( const FileDescriptor& aFD) override; protected: BackgroundParentImpl(); virtual ~BackgroundParentImpl(); void ActorDestroy(ActorDestroyReason aWhy) override; PBackgroundTestParent* AllocPBackgroundTestParent( const nsCString& aTestArg) override; mozilla::ipc::IPCResult RecvPBackgroundTestConstructor( PBackgroundTestParent* aActor, const nsCString& aTestArg) override; bool DeallocPBackgroundTestParent(PBackgroundTestParent* aActor) override; already_AddRefed AllocPBackgroundIDBFactoryParent(const LoggingInfo& aLoggingInfo) override; already_AddRefed AllocPBackgroundDataBridgeParent(const uint64_t& aChannelID) override; mozilla::ipc::IPCResult RecvPBackgroundIDBFactoryConstructor( PBackgroundIDBFactoryParent* aActor, const LoggingInfo& aLoggingInfo) override; PBackgroundIndexedDBUtilsParent* AllocPBackgroundIndexedDBUtilsParent() override; bool DeallocPBackgroundIndexedDBUtilsParent( PBackgroundIndexedDBUtilsParent* aActor) override; mozilla::ipc::IPCResult RecvFlushPendingFileDeletions() override; PBackgroundSDBConnectionParent* AllocPBackgroundSDBConnectionParent( const PersistenceType& aPersistenceType, const PrincipalInfo& aPrincipalInfo) override; mozilla::ipc::IPCResult RecvPBackgroundSDBConnectionConstructor( PBackgroundSDBConnectionParent* aActor, const PersistenceType& aPersistenceType, const PrincipalInfo& aPrincipalInfo) override; bool DeallocPBackgroundSDBConnectionParent( PBackgroundSDBConnectionParent* aActor) override; PBackgroundLSDatabaseParent* AllocPBackgroundLSDatabaseParent( const PrincipalInfo& aPrincipalInfo, const uint32_t& aPrivateBrowsingId, const uint64_t& aDatastoreId) override; mozilla::ipc::IPCResult RecvPBackgroundLSDatabaseConstructor( PBackgroundLSDatabaseParent* aActor, const PrincipalInfo& aPrincipalInfo, const uint32_t& aPrivateBrowsingId, const uint64_t& aDatastoreId) override; bool DeallocPBackgroundLSDatabaseParent( PBackgroundLSDatabaseParent* aActor) override; PBackgroundLSObserverParent* AllocPBackgroundLSObserverParent( const uint64_t& aObserverId) override; mozilla::ipc::IPCResult RecvPBackgroundLSObserverConstructor( PBackgroundLSObserverParent* aActor, const uint64_t& aObserverId) override; bool DeallocPBackgroundLSObserverParent( PBackgroundLSObserverParent* aActor) override; PBackgroundLSRequestParent* AllocPBackgroundLSRequestParent( const LSRequestParams& aParams) override; mozilla::ipc::IPCResult RecvPBackgroundLSRequestConstructor( PBackgroundLSRequestParent* aActor, const LSRequestParams& aParams) override; bool DeallocPBackgroundLSRequestParent( PBackgroundLSRequestParent* aActor) override; PBackgroundLSSimpleRequestParent* AllocPBackgroundLSSimpleRequestParent( const LSSimpleRequestParams& aParams) override; mozilla::ipc::IPCResult RecvPBackgroundLSSimpleRequestConstructor( PBackgroundLSSimpleRequestParent* aActor, const LSSimpleRequestParams& aParams) override; bool DeallocPBackgroundLSSimpleRequestParent( PBackgroundLSSimpleRequestParent* aActor) override; mozilla::ipc::IPCResult RecvLSClearPrivateBrowsing() override; PBackgroundLocalStorageCacheParent* AllocPBackgroundLocalStorageCacheParent( const PrincipalInfo& aPrincipalInfo, const nsCString& aOriginKey, const uint32_t& aPrivateBrowsingId) override; mozilla::ipc::IPCResult RecvPBackgroundLocalStorageCacheConstructor( PBackgroundLocalStorageCacheParent* aActor, const PrincipalInfo& aPrincipalInfo, const nsCString& aOriginKey, const uint32_t& aPrivateBrowsingId) override; bool DeallocPBackgroundLocalStorageCacheParent( PBackgroundLocalStorageCacheParent* aActor) override; PBackgroundStorageParent* AllocPBackgroundStorageParent( const nsString& aProfilePath, const uint32_t& aPrivateBrowsingId) override; mozilla::ipc::IPCResult RecvPBackgroundStorageConstructor( PBackgroundStorageParent* aActor, const nsString& aProfilePath, const uint32_t& aPrivateBrowsingId) override; bool DeallocPBackgroundStorageParent( PBackgroundStorageParent* aActor) override; already_AddRefed AllocPBackgroundSessionStorageManagerParent( const uint64_t& aTopContextId) override; already_AddRefed AllocPIdleSchedulerParent() override; already_AddRefed AllocPRemoteLazyInputStreamParent(const nsID& aID, const uint64_t& aSize) override; mozilla::ipc::IPCResult RecvPRemoteLazyInputStreamConstructor( PRemoteLazyInputStreamParent* aActor, const nsID& aID, const uint64_t& aSize) override; PTemporaryIPCBlobParent* AllocPTemporaryIPCBlobParent() override; mozilla::ipc::IPCResult RecvPTemporaryIPCBlobConstructor( PTemporaryIPCBlobParent* actor) override; bool DeallocPTemporaryIPCBlobParent(PTemporaryIPCBlobParent* aActor) override; PFileCreatorParent* AllocPFileCreatorParent( const nsString& aFullPath, const nsString& aType, const nsString& aName, const Maybe& aLastModified, const bool& aExistenceCheck, const bool& aIsFromNsIFile) override; mozilla::ipc::IPCResult RecvPFileCreatorConstructor( PFileCreatorParent* actor, const nsString& aFullPath, const nsString& aType, const nsString& aName, const Maybe& aLastModified, const bool& aExistenceCheck, const bool& aIsFromNsIFile) override; bool DeallocPFileCreatorParent(PFileCreatorParent* aActor) override; mozilla::dom::PRemoteWorkerParent* AllocPRemoteWorkerParent( const RemoteWorkerData& aData) override; bool DeallocPRemoteWorkerParent(PRemoteWorkerParent* aActor) override; mozilla::dom::PRemoteWorkerControllerParent* AllocPRemoteWorkerControllerParent( const mozilla::dom::RemoteWorkerData& aRemoteWorkerData) override; mozilla::ipc::IPCResult RecvPRemoteWorkerControllerConstructor( mozilla::dom::PRemoteWorkerControllerParent* aActor, const mozilla::dom::RemoteWorkerData& aRemoteWorkerData) override; bool DeallocPRemoteWorkerControllerParent( mozilla::dom::PRemoteWorkerControllerParent* aActor) override; mozilla::dom::PRemoteWorkerServiceParent* AllocPRemoteWorkerServiceParent() override; mozilla::ipc::IPCResult RecvPRemoteWorkerServiceConstructor( PRemoteWorkerServiceParent* aActor) override; bool DeallocPRemoteWorkerServiceParent( PRemoteWorkerServiceParent* aActor) override; mozilla::dom::PSharedWorkerParent* AllocPSharedWorkerParent( const mozilla::dom::RemoteWorkerData& aData, const uint64_t& aWindowID, const mozilla::dom::MessagePortIdentifier& aPortIdentifier) override; mozilla::ipc::IPCResult RecvPSharedWorkerConstructor( PSharedWorkerParent* aActor, const mozilla::dom::RemoteWorkerData& aData, const uint64_t& aWindowID, const mozilla::dom::MessagePortIdentifier& aPortIdentifier) override; bool DeallocPSharedWorkerParent(PSharedWorkerParent* aActor) override; PFileDescriptorSetParent* AllocPFileDescriptorSetParent( const FileDescriptor& aFileDescriptor) override; bool DeallocPFileDescriptorSetParent( PFileDescriptorSetParent* aActor) override; PVsyncParent* AllocPVsyncParent() override; bool DeallocPVsyncParent(PVsyncParent* aActor) override; already_AddRefed AllocPVerifySSLServerCertParent( const ByteArray& aServerCert, const nsTArray& aPeerCertChain, const nsCString& aHostName, const int32_t& aPort, const OriginAttributes& aOriginAttributes, const Maybe& aStapledOCSPResponse, const Maybe& aSctsFromTLSExtension, const Maybe& aDcInfo, const uint32_t& aProviderFlags, const uint32_t& aCertVerifierFlags) override; mozilla::ipc::IPCResult RecvPVerifySSLServerCertConstructor( PVerifySSLServerCertParent* aActor, const ByteArray& aServerCert, nsTArray&& aPeerCertChain, const nsCString& aHostName, const int32_t& aPort, const OriginAttributes& aOriginAttributes, const Maybe& aStapledOCSPResponse, const Maybe& aSctsFromTLSExtension, const Maybe& aDcInfo, const uint32_t& aProviderFlags, const uint32_t& aCertVerifierFlags) override; PBroadcastChannelParent* AllocPBroadcastChannelParent( const PrincipalInfo& aPrincipalInfo, const nsCString& aOrigin, const nsString& aChannel) override; mozilla::ipc::IPCResult RecvPBroadcastChannelConstructor( PBroadcastChannelParent* actor, const PrincipalInfo& aPrincipalInfo, const nsCString& origin, const nsString& channel) override; bool DeallocPBroadcastChannelParent(PBroadcastChannelParent* aActor) override; PChildToParentStreamParent* AllocPChildToParentStreamParent() override; bool DeallocPChildToParentStreamParent( PChildToParentStreamParent* aActor) override; PParentToChildStreamParent* AllocPParentToChildStreamParent() override; bool DeallocPParentToChildStreamParent( PParentToChildStreamParent* aActor) override; PServiceWorkerManagerParent* AllocPServiceWorkerManagerParent() override; bool DeallocPServiceWorkerManagerParent( PServiceWorkerManagerParent* aActor) override; PCamerasParent* AllocPCamerasParent() override; bool DeallocPCamerasParent(PCamerasParent* aActor) override; mozilla::ipc::IPCResult RecvShutdownServiceWorkerRegistrar() override; dom::cache::PCacheStorageParent* AllocPCacheStorageParent( const dom::cache::Namespace& aNamespace, const PrincipalInfo& aPrincipalInfo) override; bool DeallocPCacheStorageParent( dom::cache::PCacheStorageParent* aActor) override; dom::cache::PCacheParent* AllocPCacheParent() override; bool DeallocPCacheParent(dom::cache::PCacheParent* aActor) override; already_AddRefed AllocPCacheStreamControlParent(); PUDPSocketParent* AllocPUDPSocketParent(const Maybe& pInfo, const nsCString& aFilter) override; mozilla::ipc::IPCResult RecvPUDPSocketConstructor( PUDPSocketParent*, const Maybe& aPrincipalInfo, const nsCString& aFilter) override; bool DeallocPUDPSocketParent(PUDPSocketParent*) override; PMessagePortParent* AllocPMessagePortParent( const nsID& aUUID, const nsID& aDestinationUUID, const uint32_t& aSequenceID) override; mozilla::ipc::IPCResult RecvPMessagePortConstructor( PMessagePortParent* aActor, const nsID& aUUID, const nsID& aDestinationUUID, const uint32_t& aSequenceID) override; bool DeallocPMessagePortParent(PMessagePortParent* aActor) override; mozilla::ipc::IPCResult RecvMessagePortForceClose( const nsID& aUUID, const nsID& aDestinationUUID, const uint32_t& aSequenceID) override; PQuotaParent* AllocPQuotaParent() override; bool DeallocPQuotaParent(PQuotaParent* aActor) override; mozilla::ipc::IPCResult RecvShutdownQuotaManager() override; mozilla::ipc::IPCResult RecvShutdownBackgroundSessionStorageManagers() override; mozilla::ipc::IPCResult RecvPropagateBackgroundSessionStorageManager( const uint64_t& aCurrentTopContextId, const uint64_t& aTargetTopContextId) override; mozilla::ipc::IPCResult RecvRemoveBackgroundSessionStorageManager( const uint64_t& aTopContextId) override; already_AddRefed AllocPFileSystemRequestParent( const FileSystemParams&) override; mozilla::ipc::IPCResult RecvPFileSystemRequestConstructor( PFileSystemRequestParent* actor, const FileSystemParams& params) override; // Gamepad API Background IPC already_AddRefed AllocPGamepadEventChannelParent() override; already_AddRefed AllocPGamepadTestChannelParent() override; PWebAuthnTransactionParent* AllocPWebAuthnTransactionParent() override; bool DeallocPWebAuthnTransactionParent( PWebAuthnTransactionParent* aActor) override; already_AddRefed AllocPHttpBackgroundChannelParent(const uint64_t& aChannelId) override; mozilla::ipc::IPCResult RecvPHttpBackgroundChannelConstructor( PHttpBackgroundChannelParent* aActor, const uint64_t& aChannelId) override; PClientManagerParent* AllocPClientManagerParent() override; bool DeallocPClientManagerParent(PClientManagerParent* aActor) override; mozilla::ipc::IPCResult RecvPClientManagerConstructor( PClientManagerParent* aActor) override; PMIDIPortParent* AllocPMIDIPortParent(const MIDIPortInfo& aPortInfo, const bool& aSysexEnabled) override; bool DeallocPMIDIPortParent(PMIDIPortParent* aActor) override; PMIDIManagerParent* AllocPMIDIManagerParent() override; bool DeallocPMIDIManagerParent(PMIDIManagerParent* aActor) override; mozilla::ipc::IPCResult RecvStorageActivity( const PrincipalInfo& aPrincipalInfo) override; already_AddRefed AllocPServiceWorkerParent( const IPCServiceWorkerDescriptor&) final; mozilla::ipc::IPCResult RecvPServiceWorkerConstructor( PServiceWorkerParent* aActor, const IPCServiceWorkerDescriptor& aDescriptor) override; already_AddRefed AllocPServiceWorkerContainerParent() final; mozilla::ipc::IPCResult RecvPServiceWorkerContainerConstructor( PServiceWorkerContainerParent* aActor) override; already_AddRefed AllocPServiceWorkerRegistrationParent( const IPCServiceWorkerRegistrationDescriptor&) final; mozilla::ipc::IPCResult RecvPServiceWorkerRegistrationConstructor( PServiceWorkerRegistrationParent* aActor, const IPCServiceWorkerRegistrationDescriptor& aDescriptor) override; PEndpointForReportParent* AllocPEndpointForReportParent( const nsString& aGroupName, const PrincipalInfo& aPrincipalInfo) override; mozilla::ipc::IPCResult RecvPEndpointForReportConstructor( PEndpointForReportParent* actor, const nsString& aGroupName, const PrincipalInfo& aPrincipalInfo) override; mozilla::ipc::IPCResult RecvEnsureRDDProcessAndCreateBridge( EnsureRDDProcessAndCreateBridgeResolver&& aResolver) override; bool DeallocPEndpointForReportParent( PEndpointForReportParent* aActor) override; mozilla::ipc::IPCResult RecvRemoveEndpoint( const nsString& aGroupName, const nsCString& aEndpointURL, const PrincipalInfo& aPrincipalInfo) override; dom::PMediaTransportParent* AllocPMediaTransportParent() override; bool DeallocPMediaTransportParent( dom::PMediaTransportParent* aActor) override; }; } // namespace ipc } // namespace mozilla #endif // mozilla_ipc_backgroundparentimpl_h__