1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 5 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef mozilla_ipc_backgroundparentimpl_h__ 8 #define mozilla_ipc_backgroundparentimpl_h__ 9 10 #include "mozilla/Attributes.h" 11 #include "mozilla/ipc/PBackgroundParent.h" 12 13 namespace mozilla { 14 15 namespace layout { 16 class VsyncParent; 17 } // namespace layout 18 19 namespace ipc { 20 21 // Instances of this class should never be created directly. This class is meant 22 // to be inherited in BackgroundImpl. 23 class BackgroundParentImpl : public PBackgroundParent { 24 protected: 25 BackgroundParentImpl(); 26 virtual ~BackgroundParentImpl(); 27 28 virtual void ActorDestroy(ActorDestroyReason aWhy) override; 29 30 virtual PBackgroundTestParent* AllocPBackgroundTestParent( 31 const nsCString& aTestArg) override; 32 33 virtual mozilla::ipc::IPCResult RecvPBackgroundTestConstructor( 34 PBackgroundTestParent* aActor, const nsCString& aTestArg) override; 35 36 virtual bool DeallocPBackgroundTestParent( 37 PBackgroundTestParent* aActor) override; 38 39 virtual PBackgroundIDBFactoryParent* AllocPBackgroundIDBFactoryParent( 40 const LoggingInfo& aLoggingInfo) override; 41 42 virtual mozilla::ipc::IPCResult RecvPBackgroundIDBFactoryConstructor( 43 PBackgroundIDBFactoryParent* aActor, 44 const LoggingInfo& aLoggingInfo) override; 45 46 virtual bool DeallocPBackgroundIDBFactoryParent( 47 PBackgroundIDBFactoryParent* aActor) override; 48 49 virtual PBackgroundIndexedDBUtilsParent* 50 AllocPBackgroundIndexedDBUtilsParent() override; 51 52 virtual bool DeallocPBackgroundIndexedDBUtilsParent( 53 PBackgroundIndexedDBUtilsParent* aActor) override; 54 55 virtual mozilla::ipc::IPCResult RecvFlushPendingFileDeletions() override; 56 57 virtual PBackgroundLocalStorageCacheParent* 58 AllocPBackgroundLocalStorageCacheParent( 59 const PrincipalInfo& aPrincipalInfo, const nsCString& aOriginKey, 60 const uint32_t& aPrivateBrowsingId) override; 61 62 virtual mozilla::ipc::IPCResult RecvPBackgroundLocalStorageCacheConstructor( 63 PBackgroundLocalStorageCacheParent* aActor, 64 const PrincipalInfo& aPrincipalInfo, const nsCString& aOriginKey, 65 const uint32_t& aPrivateBrowsingId) override; 66 67 virtual bool DeallocPBackgroundLocalStorageCacheParent( 68 PBackgroundLocalStorageCacheParent* aActor) override; 69 70 virtual PBackgroundStorageParent* AllocPBackgroundStorageParent( 71 const nsString& aProfilePath) override; 72 73 virtual mozilla::ipc::IPCResult RecvPBackgroundStorageConstructor( 74 PBackgroundStorageParent* aActor, const nsString& aProfilePath) override; 75 76 virtual bool DeallocPBackgroundStorageParent( 77 PBackgroundStorageParent* aActor) override; 78 79 virtual PPendingIPCBlobParent* AllocPPendingIPCBlobParent( 80 const IPCBlob& aBlob) override; 81 82 virtual bool DeallocPPendingIPCBlobParent( 83 PPendingIPCBlobParent* aActor) override; 84 85 virtual PIPCBlobInputStreamParent* AllocPIPCBlobInputStreamParent( 86 const nsID& aID, const uint64_t& aSize) override; 87 88 virtual mozilla::ipc::IPCResult RecvPIPCBlobInputStreamConstructor( 89 PIPCBlobInputStreamParent* aActor, const nsID& aID, 90 const uint64_t& aSize) override; 91 92 virtual bool DeallocPIPCBlobInputStreamParent( 93 PIPCBlobInputStreamParent* aActor) override; 94 95 virtual PTemporaryIPCBlobParent* AllocPTemporaryIPCBlobParent() override; 96 97 virtual mozilla::ipc::IPCResult RecvPTemporaryIPCBlobConstructor( 98 PTemporaryIPCBlobParent* actor) override; 99 100 virtual bool DeallocPTemporaryIPCBlobParent( 101 PTemporaryIPCBlobParent* aActor) override; 102 103 virtual PFileDescriptorSetParent* AllocPFileDescriptorSetParent( 104 const FileDescriptor& aFileDescriptor) override; 105 106 virtual bool DeallocPFileDescriptorSetParent( 107 PFileDescriptorSetParent* aActor) override; 108 109 virtual PVsyncParent* AllocPVsyncParent() override; 110 111 virtual bool DeallocPVsyncParent(PVsyncParent* aActor) override; 112 113 virtual PBroadcastChannelParent* AllocPBroadcastChannelParent( 114 const PrincipalInfo& aPrincipalInfo, const nsCString& aOrigin, 115 const nsString& aChannel) override; 116 117 virtual mozilla::ipc::IPCResult RecvPBroadcastChannelConstructor( 118 PBroadcastChannelParent* actor, const PrincipalInfo& aPrincipalInfo, 119 const nsCString& origin, const nsString& channel) override; 120 121 virtual bool DeallocPBroadcastChannelParent( 122 PBroadcastChannelParent* aActor) override; 123 124 virtual PChildToParentStreamParent* AllocPChildToParentStreamParent() 125 override; 126 127 virtual bool DeallocPChildToParentStreamParent( 128 PChildToParentStreamParent* aActor) override; 129 130 virtual PParentToChildStreamParent* AllocPParentToChildStreamParent() 131 override; 132 133 virtual bool DeallocPParentToChildStreamParent( 134 PParentToChildStreamParent* aActor) override; 135 136 virtual PServiceWorkerManagerParent* AllocPServiceWorkerManagerParent() 137 override; 138 139 virtual bool DeallocPServiceWorkerManagerParent( 140 PServiceWorkerManagerParent* aActor) override; 141 142 virtual PCamerasParent* AllocPCamerasParent() override; 143 144 virtual bool DeallocPCamerasParent(PCamerasParent* aActor) override; 145 146 virtual mozilla::ipc::IPCResult RecvShutdownServiceWorkerRegistrar() override; 147 148 virtual dom::cache::PCacheStorageParent* AllocPCacheStorageParent( 149 const dom::cache::Namespace& aNamespace, 150 const PrincipalInfo& aPrincipalInfo) override; 151 152 virtual bool DeallocPCacheStorageParent( 153 dom::cache::PCacheStorageParent* aActor) override; 154 155 virtual dom::cache::PCacheParent* AllocPCacheParent() override; 156 157 virtual bool DeallocPCacheParent(dom::cache::PCacheParent* aActor) override; 158 159 virtual dom::cache::PCacheStreamControlParent* 160 AllocPCacheStreamControlParent() override; 161 162 virtual bool DeallocPCacheStreamControlParent( 163 dom::cache::PCacheStreamControlParent* aActor) override; 164 165 virtual PUDPSocketParent* AllocPUDPSocketParent( 166 const OptionalPrincipalInfo& pInfo, const nsCString& aFilter) override; 167 virtual mozilla::ipc::IPCResult RecvPUDPSocketConstructor( 168 PUDPSocketParent*, const OptionalPrincipalInfo& aPrincipalInfo, 169 const nsCString& aFilter) override; 170 virtual bool DeallocPUDPSocketParent(PUDPSocketParent*) override; 171 172 virtual PMessagePortParent* AllocPMessagePortParent( 173 const nsID& aUUID, const nsID& aDestinationUUID, 174 const uint32_t& aSequenceID) override; 175 176 virtual mozilla::ipc::IPCResult RecvPMessagePortConstructor( 177 PMessagePortParent* aActor, const nsID& aUUID, 178 const nsID& aDestinationUUID, const uint32_t& aSequenceID) override; 179 180 virtual bool DeallocPMessagePortParent(PMessagePortParent* aActor) override; 181 182 virtual mozilla::ipc::IPCResult RecvMessagePortForceClose( 183 const nsID& aUUID, const nsID& aDestinationUUID, 184 const uint32_t& aSequenceID) override; 185 186 virtual PAsmJSCacheEntryParent* AllocPAsmJSCacheEntryParent( 187 const dom::asmjscache::OpenMode& aOpenMode, 188 const dom::asmjscache::WriteParams& aWriteParams, 189 const PrincipalInfo& aPrincipalInfo) override; 190 191 virtual bool DeallocPAsmJSCacheEntryParent( 192 PAsmJSCacheEntryParent* aActor) override; 193 194 virtual PQuotaParent* AllocPQuotaParent() override; 195 196 virtual bool DeallocPQuotaParent(PQuotaParent* aActor) override; 197 198 virtual PFileSystemRequestParent* AllocPFileSystemRequestParent( 199 const FileSystemParams&) override; 200 201 virtual mozilla::ipc::IPCResult RecvPFileSystemRequestConstructor( 202 PFileSystemRequestParent* actor, const FileSystemParams& params) override; 203 204 virtual bool DeallocPFileSystemRequestParent( 205 PFileSystemRequestParent*) override; 206 207 // Gamepad API Background IPC 208 virtual PGamepadEventChannelParent* AllocPGamepadEventChannelParent() 209 override; 210 211 virtual bool DeallocPGamepadEventChannelParent( 212 PGamepadEventChannelParent* aActor) override; 213 214 virtual PGamepadTestChannelParent* AllocPGamepadTestChannelParent() override; 215 216 virtual bool DeallocPGamepadTestChannelParent( 217 PGamepadTestChannelParent* aActor) override; 218 219 virtual PWebAuthnTransactionParent* AllocPWebAuthnTransactionParent() 220 override; 221 222 virtual bool DeallocPWebAuthnTransactionParent( 223 PWebAuthnTransactionParent* aActor) override; 224 225 virtual PHttpBackgroundChannelParent* AllocPHttpBackgroundChannelParent( 226 const uint64_t& aChannelId) override; 227 228 virtual mozilla::ipc::IPCResult RecvPHttpBackgroundChannelConstructor( 229 PHttpBackgroundChannelParent* aActor, 230 const uint64_t& aChannelId) override; 231 virtual bool DeallocPHttpBackgroundChannelParent( 232 PHttpBackgroundChannelParent* aActor) override; 233 234 virtual PClientManagerParent* AllocPClientManagerParent() override; 235 236 virtual bool DeallocPClientManagerParent( 237 PClientManagerParent* aActor) override; 238 239 virtual mozilla::ipc::IPCResult RecvPClientManagerConstructor( 240 PClientManagerParent* aActor) override; 241 242 virtual PMIDIPortParent* AllocPMIDIPortParent( 243 const MIDIPortInfo& aPortInfo, const bool& aSysexEnabled) override; 244 245 virtual bool DeallocPMIDIPortParent(PMIDIPortParent* aActor) override; 246 247 virtual PMIDIManagerParent* AllocPMIDIManagerParent() override; 248 249 virtual bool DeallocPMIDIManagerParent(PMIDIManagerParent* aActor) override; 250 }; 251 252 } // namespace ipc 253 } // namespace mozilla 254 255 #endif // mozilla_ipc_backgroundparentimpl_h__ 256