QuotaParent.h (6783B)
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 DOM_QUOTA_QUOTAPARENT_H_ 8 #define DOM_QUOTA_QUOTAPARENT_H_ 9 10 #include "mozilla/dom/quota/PQuotaParent.h" 11 #include "nsISupportsImpl.h" 12 13 namespace mozilla::dom::quota { 14 15 class Quota final : public PQuotaParent { 16 #ifdef DEBUG 17 bool mActorDestroyed; 18 #endif 19 20 public: 21 Quota(); 22 23 NS_INLINE_DECL_THREADSAFE_REFCOUNTING(mozilla::dom::quota::Quota, override) 24 25 private: 26 ~Quota(); 27 28 bool TrustParams() const; 29 30 bool VerifyRequestParams(const RequestParams& aParams) const; 31 32 // IPDL methods. 33 virtual void ActorDestroy(ActorDestroyReason aWhy) override; 34 35 virtual PQuotaRequestParent* AllocPQuotaRequestParent( 36 const RequestParams& aParams) override; 37 38 virtual mozilla::ipc::IPCResult RecvPQuotaRequestConstructor( 39 PQuotaRequestParent* aActor, const RequestParams& aParams) override; 40 41 virtual bool DeallocPQuotaRequestParent(PQuotaRequestParent* aActor) override; 42 43 virtual mozilla::ipc::IPCResult RecvStorageInitialized( 44 StorageInitializedResolver&& aResolver) override; 45 46 virtual mozilla::ipc::IPCResult RecvPersistentStorageInitialized( 47 PersistentStorageInitializedResolver&& aResolver) override; 48 49 virtual mozilla::ipc::IPCResult RecvTemporaryStorageInitialized( 50 TemporaryStorageInitializedResolver&& aResolver) override; 51 52 virtual mozilla::ipc::IPCResult RecvTemporaryGroupInitialized( 53 const PrincipalInfo& aPrincipalInfo, 54 TemporaryGroupInitializedResolver&& aResolve) override; 55 56 virtual mozilla::ipc::IPCResult RecvPersistentOriginInitialized( 57 const PrincipalInfo& aPrincipalInfo, 58 PersistentOriginInitializedResolver&& aResolve) override; 59 60 virtual mozilla::ipc::IPCResult RecvTemporaryOriginInitialized( 61 const PersistenceType& aPersistenceType, 62 const PrincipalInfo& aPrincipalInfo, 63 TemporaryOriginInitializedResolver&& aResolve) override; 64 65 virtual mozilla::ipc::IPCResult RecvInitializeStorage( 66 InitializeStorageResolver&& aResolver) override; 67 68 virtual mozilla::ipc::IPCResult RecvInitializePersistentStorage( 69 InitializePersistentStorageResolver&& aResolver) override; 70 71 virtual mozilla::ipc::IPCResult RecvInitializeAllTemporaryOrigins( 72 InitializeAllTemporaryOriginsResolver&& aResolver) override; 73 74 virtual mozilla::ipc::IPCResult RecvInitializeTemporaryGroup( 75 const PrincipalInfo& aPrincipalInfo, 76 InitializeTemporaryGroupResolver&& aResolve) override; 77 78 virtual mozilla::ipc::IPCResult RecvInitializePersistentOrigin( 79 const PrincipalInfo& aPrincipalInfo, 80 InitializePersistentOriginResolver&& aResolve) override; 81 82 virtual mozilla::ipc::IPCResult RecvInitializeTemporaryOrigin( 83 const PersistenceType& aPersistenceType, 84 const PrincipalInfo& aPrincipalInfo, const bool& aCreateIfNonExistent, 85 InitializeTemporaryOriginResolver&& aResolve) override; 86 87 virtual mozilla::ipc::IPCResult RecvInitializePersistentClient( 88 const PrincipalInfo& aPrincipalInfo, const Type& aClientType, 89 InitializePersistentClientResolver&& aResolve) override; 90 91 virtual mozilla::ipc::IPCResult RecvInitializeTemporaryClient( 92 const PersistenceType& aPersistenceType, 93 const PrincipalInfo& aPrincipalInfo, const Type& aClientType, 94 const bool& aCreateIfNonExistent, 95 InitializeTemporaryClientResolver&& aResolve) override; 96 97 virtual mozilla::ipc::IPCResult RecvInitializeTemporaryStorage( 98 InitializeTemporaryStorageResolver&& aResolver) override; 99 100 virtual mozilla::ipc::IPCResult RecvGetUsage( 101 const bool& aGetAll, 102 ManagedEndpoint<PQuotaUsageRequestParent>&& aParentEndpoint, 103 GetUsageResolver&& aResolve) override; 104 105 virtual mozilla::ipc::IPCResult RecvGetOriginUsage( 106 const PrincipalInfo& aPrincipalInfo, 107 ManagedEndpoint<PQuotaUsageRequestParent>&& aParentEndpoint, 108 GetOriginUsageResolver&& aResolve) override; 109 110 virtual mozilla::ipc::IPCResult RecvGetCachedOriginUsage( 111 const PrincipalInfo& aPrincipalInfo, 112 GetCachedOriginUsageResolver&& aResolve) override; 113 114 virtual mozilla::ipc::IPCResult RecvListOrigins( 115 ListOriginsResolver&& aResolver) override; 116 117 virtual mozilla::ipc::IPCResult RecvListCachedOrigins( 118 ListCachedOriginsResolver&& aResolver) override; 119 120 virtual mozilla::ipc::IPCResult RecvClearStoragesForOrigin( 121 const Maybe<PersistenceType>& aPersistenceType, 122 const PrincipalInfo& aPrincipalInfo, 123 ClearStoragesForOriginResolver&& aResolve) override; 124 125 virtual mozilla::ipc::IPCResult RecvClearStoragesForClient( 126 const Maybe<PersistenceType>& aPersistenceType, 127 const PrincipalInfo& aPrincipalInfo, const Type& aClientType, 128 ClearStoragesForClientResolver&& aResolve) override; 129 130 virtual mozilla::ipc::IPCResult RecvClearStoragesForOriginPrefix( 131 const Maybe<PersistenceType>& aPersistenceType, 132 const PrincipalInfo& aPrincipalInfo, 133 ClearStoragesForOriginPrefixResolver&& aResolve) override; 134 135 virtual mozilla::ipc::IPCResult RecvClearStoragesForOriginAttributesPattern( 136 const OriginAttributesPattern& aPattern, 137 ClearStoragesForOriginAttributesPatternResolver&& aResolver) override; 138 139 virtual mozilla::ipc::IPCResult RecvClearStoragesForPrivateBrowsing( 140 ClearStoragesForPrivateBrowsingResolver&& aResolver) override; 141 142 virtual mozilla::ipc::IPCResult RecvClearStorage( 143 ClearStorageResolver&& aResolver) override; 144 145 virtual mozilla::ipc::IPCResult RecvShutdownStoragesForOrigin( 146 const Maybe<PersistenceType>& aPersistenceType, 147 const PrincipalInfo& aPrincipalInfo, 148 ShutdownStoragesForOriginResolver&& aResolve) override; 149 150 virtual mozilla::ipc::IPCResult RecvShutdownStoragesForClient( 151 const Maybe<PersistenceType>& aPersistenceType, 152 const PrincipalInfo& aPrincipalInfo, const Type& aClientType, 153 ShutdownStoragesForClientResolver&& aResolve) override; 154 155 virtual mozilla::ipc::IPCResult RecvShutdownStorage( 156 ShutdownStorageResolver&& aResolver) override; 157 158 virtual mozilla::ipc::IPCResult RecvStartIdleMaintenance() override; 159 160 virtual mozilla::ipc::IPCResult RecvStopIdleMaintenance() override; 161 162 virtual mozilla::ipc::IPCResult RecvAbortOperationsForProcess( 163 const ContentParentId& aContentParentId) override; 164 165 virtual mozilla::ipc::IPCResult RecvSetThumbnailPrivateIdentityId( 166 const uint32_t& aThumbnailPrivateIdentityId) override; 167 }; 168 169 already_AddRefed<PQuotaParent> AllocPQuotaParent(); 170 171 } // namespace mozilla::dom::quota 172 173 #endif // DOM_QUOTA_QUOTAPARENT_H_