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/. */
7 #ifndef DOM_QUOTA_ORIGINOPERATIONS_H_
8 #define DOM_QUOTA_ORIGINOPERATIONS_H_
12 #include "mozilla/dom/quota/Client.h"
13 #include "mozilla/dom/quota/PersistenceType.h"
14 #include "nsTArrayForwardDeclare.h"
25 class OriginAttributesPattern
;
27 namespace dom::quota
{
30 class GetFullOriginMetadataParams
;
31 class NormalOriginOperationBase
;
32 class OriginDirectoryLock
;
33 struct OriginMetadata
;
34 class OriginOperationBase
;
36 class QuotaRequestBase
;
37 class QuotaUsageRequestBase
;
40 class ResolvableNormalOriginOp
;
41 class UniversalDirectoryLock
;
42 class UsageRequestParams
;
44 RefPtr
<OriginOperationBase
> CreateFinalizeOriginEvictionOp(
45 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
46 nsTArray
<RefPtr
<OriginDirectoryLock
>>&& aLocks
);
48 RefPtr
<NormalOriginOperationBase
> CreateSaveOriginAccessTimeOp(
49 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
50 const OriginMetadata
& aOriginMetadata
, int64_t aTimestamp
);
52 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateClearPrivateRepositoryOp(
53 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
55 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateShutdownStorageOp(
56 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
58 RefPtr
<QuotaUsageRequestBase
> CreateGetUsageOp(
59 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
60 const UsageRequestParams
& aParams
);
62 RefPtr
<QuotaUsageRequestBase
> CreateGetOriginUsageOp(
63 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
64 const UsageRequestParams
& aParams
);
66 RefPtr
<QuotaRequestBase
> CreateStorageNameOp(
67 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
69 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateStorageInitializedOp(
70 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
72 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateTemporaryStorageInitializedOp(
73 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
75 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateInitOp(
76 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
77 RefPtr
<UniversalDirectoryLock
> aDirectoryLock
);
79 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateInitTemporaryStorageOp(
80 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
81 RefPtr
<UniversalDirectoryLock
> aDirectoryLock
);
83 RefPtr
<QuotaRequestBase
> CreateInitializePersistentOriginOp(
84 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
85 const RequestParams
& aParams
);
87 RefPtr
<QuotaRequestBase
> CreateInitializeTemporaryOriginOp(
88 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
89 const RequestParams
& aParams
);
91 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateInitializePersistentClientOp(
92 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
93 const mozilla::ipc::PrincipalInfo
& aPrincipalInfo
,
94 const Client::Type aClientType
);
96 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateInitializeTemporaryClientOp(
97 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
98 const PersistenceType aPersistenceType
,
99 const mozilla::ipc::PrincipalInfo
& aPrincipalInfo
,
100 const Client::Type aClientType
);
102 RefPtr
<QuotaRequestBase
> CreateGetFullOriginMetadataOp(
103 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
104 const GetFullOriginMetadataParams
& aParams
);
106 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateClearStorageOp(
107 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
109 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateClearOriginOp(
110 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
111 const Maybe
<PersistenceType
>& aPersistenceType
,
112 const mozilla::ipc::PrincipalInfo
& aPrincipalInfo
,
113 const Maybe
<Client::Type
>& aClientType
);
115 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateClearStoragesForOriginPrefixOp(
116 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
117 const Maybe
<PersistenceType
>& aPersistenceType
,
118 const mozilla::ipc::PrincipalInfo
& aPrincipalInfo
);
120 RefPtr
<ResolvableNormalOriginOp
<bool>> CreateClearDataOp(
121 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
122 const OriginAttributesPattern
& aPattern
);
124 RefPtr
<QuotaRequestBase
> CreateResetOriginOp(
125 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
126 const RequestParams
& aParams
);
128 RefPtr
<QuotaRequestBase
> CreatePersistedOp(
129 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
130 const RequestParams
& aParams
);
132 RefPtr
<QuotaRequestBase
> CreatePersistOp(
133 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
134 const RequestParams
& aParams
);
136 RefPtr
<QuotaRequestBase
> CreateEstimateOp(
137 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
,
138 const EstimateParams
& aParams
);
140 RefPtr
<QuotaRequestBase
> CreateListOriginsOp(
141 MovingNotNull
<RefPtr
<QuotaManager
>> aQuotaManager
);
143 } // namespace dom::quota
144 } // namespace mozilla
146 #endif // DOM_QUOTA_ORIGINOPERATIONS_H_