OriginOperations.h (7862B)
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_ORIGINOPERATIONS_H_ 8 #define DOM_QUOTA_ORIGINOPERATIONS_H_ 9 10 #include <cstdint> 11 12 #include "mozilla/dom/quota/Client.h" 13 #include "mozilla/dom/quota/PersistenceType.h" 14 #include "nsTArrayForwardDeclare.h" 15 16 template <class T> 17 class RefPtr; 18 19 namespace mozilla { 20 21 template <class T> 22 class Maybe; 23 template <typename T> 24 class MovingNotNull; 25 class OriginAttributesPattern; 26 27 namespace dom::quota { 28 29 struct ClientMetadata; 30 class EstimateParams; 31 class GetFullOriginMetadataParams; 32 class NormalOriginOperationBase; 33 class OriginDirectoryLock; 34 struct OriginMetadata; 35 class OriginOperationBase; 36 class QuotaManager; 37 class QuotaRequestBase; 38 class QuotaUsageRequestBase; 39 class RequestParams; 40 template <typename ResolveValueT, bool IsExclusive = false> 41 class ResolvableNormalOriginOp; 42 class UniversalDirectoryLock; 43 class UsageRequestParams; 44 45 RefPtr<OriginOperationBase> CreateFinalizeOriginEvictionOp( 46 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 47 nsTArray<RefPtr<OriginDirectoryLock>>&& aLocks); 48 49 RefPtr<UniversalDirectoryLock> CreateSaveOriginAccessTimeLock( 50 QuotaManager& aQuotaManager, const OriginMetadata& aOriginMetadata); 51 52 RefPtr<ResolvableNormalOriginOp<bool>> CreateSaveOriginAccessTimeOp( 53 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 54 const OriginMetadata& aOriginMetadata, 55 RefPtr<UniversalDirectoryLock> aDirectoryLock); 56 57 RefPtr<ResolvableNormalOriginOp<bool>> CreateClearPrivateRepositoryOp( 58 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 59 60 RefPtr<ResolvableNormalOriginOp<bool>> CreateShutdownStorageOp( 61 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 62 63 RefPtr<ResolvableNormalOriginOp<OriginUsageMetadataArray, true>> 64 CreateGetUsageOp(MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 65 bool aGetAll); 66 67 RefPtr<ResolvableNormalOriginOp<UsageInfo>> CreateGetOriginUsageOp( 68 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 69 const mozilla::ipc::PrincipalInfo& aPrincipalInfo); 70 71 RefPtr<QuotaRequestBase> CreateStorageNameOp( 72 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 73 74 RefPtr<ResolvableNormalOriginOp<bool>> CreateStorageInitializedOp( 75 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 76 77 RefPtr<ResolvableNormalOriginOp<bool>> CreatePersistentStorageInitializedOp( 78 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 79 80 RefPtr<ResolvableNormalOriginOp<bool>> CreateTemporaryStorageInitializedOp( 81 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 82 83 RefPtr<ResolvableNormalOriginOp<bool>> CreateTemporaryGroupInitializedOp( 84 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 85 const PrincipalMetadata& aPrincipalMetadata); 86 87 RefPtr<ResolvableNormalOriginOp<bool>> CreatePersistentOriginInitializedOp( 88 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 89 const OriginMetadata& aOriginMetadata); 90 91 RefPtr<ResolvableNormalOriginOp<bool>> CreateTemporaryOriginInitializedOp( 92 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 93 const OriginMetadata& aOriginMetadata); 94 95 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitOp( 96 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 97 RefPtr<UniversalDirectoryLock> aDirectoryLock); 98 99 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitializePersistentStorageOp( 100 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 101 RefPtr<UniversalDirectoryLock> aDirectoryLock); 102 103 RefPtr<ResolvableNormalOriginOp<MaybePrincipalMetadataArray, true>> 104 CreateInitTemporaryStorageOp(MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 105 RefPtr<UniversalDirectoryLock> aDirectoryLock); 106 107 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitializeTemporaryGroupOp( 108 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 109 const PrincipalMetadata& aPrincipalMetadata, 110 RefPtr<UniversalDirectoryLock> aDirectoryLock); 111 112 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitializePersistentOriginOp( 113 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 114 const OriginMetadata& aOriginMetadata, 115 RefPtr<UniversalDirectoryLock> aDirectoryLock); 116 117 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitializeTemporaryOriginOp( 118 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 119 const OriginMetadata& aOriginMetadata, bool aCreateIfNonExistent, 120 RefPtr<UniversalDirectoryLock> aDirectoryLock); 121 122 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitializePersistentClientOp( 123 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 124 const ClientMetadata& aClientMetadata, 125 RefPtr<UniversalDirectoryLock> aDirectoryLock); 126 127 RefPtr<ResolvableNormalOriginOp<bool>> CreateInitializeTemporaryClientOp( 128 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 129 const ClientMetadata& aClientMetadata, bool aCreateIfNonExistent, 130 RefPtr<UniversalDirectoryLock> aDirectoryLock); 131 132 RefPtr<QuotaRequestBase> CreateGetFullOriginMetadataOp( 133 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 134 const GetFullOriginMetadataParams& aParams); 135 136 RefPtr<ResolvableNormalOriginOp<uint64_t>> CreateGetCachedOriginUsageOp( 137 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 138 const mozilla::ipc::PrincipalInfo& aPrincipalInfo); 139 140 RefPtr<ResolvableNormalOriginOp<CStringArray, true>> CreateListCachedOriginsOp( 141 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 142 143 RefPtr<ResolvableNormalOriginOp<bool>> CreateClearStorageOp( 144 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 145 146 RefPtr<ResolvableNormalOriginOp<OriginMetadataArray, true>> CreateClearOriginOp( 147 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 148 const Maybe<PersistenceType>& aPersistenceType, 149 const mozilla::ipc::PrincipalInfo& aPrincipalInfo); 150 151 RefPtr<ResolvableNormalOriginOp<ClientMetadataArray, true>> CreateClearClientOp( 152 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 153 Maybe<PersistenceType> aPersistenceType, 154 const mozilla::ipc::PrincipalInfo& aPrincipalInfo, 155 Client::Type aClientType); 156 157 RefPtr<ResolvableNormalOriginOp<OriginMetadataArray, true>> 158 CreateClearStoragesForOriginPrefixOp( 159 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 160 const Maybe<PersistenceType>& aPersistenceType, 161 const mozilla::ipc::PrincipalInfo& aPrincipalInfo); 162 163 RefPtr<ResolvableNormalOriginOp<OriginMetadataArray, true>> CreateClearDataOp( 164 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 165 const OriginAttributesPattern& aPattern); 166 167 RefPtr<ResolvableNormalOriginOp<OriginMetadataArray, true>> 168 CreateShutdownOriginOp(MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 169 Maybe<PersistenceType> aPersistenceType, 170 const mozilla::ipc::PrincipalInfo& aPrincipalInfo); 171 172 RefPtr<ResolvableNormalOriginOp<ClientMetadataArray, true>> 173 CreateShutdownClientOp(MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 174 Maybe<PersistenceType> aPersistenceType, 175 const mozilla::ipc::PrincipalInfo& aPrincipalInfo, 176 Client::Type aClientType); 177 178 RefPtr<QuotaRequestBase> CreatePersistedOp( 179 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 180 const RequestParams& aParams); 181 182 RefPtr<QuotaRequestBase> CreatePersistOp( 183 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 184 const RequestParams& aParams); 185 186 RefPtr<QuotaRequestBase> CreateEstimateOp( 187 MovingNotNull<RefPtr<QuotaManager>> aQuotaManager, 188 const EstimateParams& aParams); 189 190 RefPtr<ResolvableNormalOriginOp<CStringArray, /* IsExclusive */ true>> 191 CreateListOriginsOp(MovingNotNull<RefPtr<QuotaManager>> aQuotaManager); 192 193 } // namespace dom::quota 194 } // namespace mozilla 195 196 #endif // DOM_QUOTA_ORIGINOPERATIONS_H_