summaryrefslogtreecommitdiffstats
path: root/dom/quota/PQuota.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/quota/PQuota.ipdl')
-rw-r--r--dom/quota/PQuota.ipdl191
1 files changed, 191 insertions, 0 deletions
diff --git a/dom/quota/PQuota.ipdl b/dom/quota/PQuota.ipdl
new file mode 100644
index 0000000000..0eb6fb11ed
--- /dev/null
+++ b/dom/quota/PQuota.ipdl
@@ -0,0 +1,191 @@
+/* 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/. */
+
+include protocol PBackground;
+include protocol PQuotaRequest;
+include protocol PQuotaUsageRequest;
+
+include PBackgroundSharedTypes;
+
+include "mozilla/dom/quota/SerializationHelpers.h";
+
+using mozilla::OriginAttributesPattern
+ from "mozilla/OriginAttributes.h";
+
+using mozilla::dom::quota::PersistenceType
+ from "mozilla/dom/quota/PersistenceType.h";
+
+using mozilla::dom::quota::Client::Type
+ from "mozilla/dom/quota/Client.h";
+
+using mozilla::dom::ContentParentId
+ from "mozilla/dom/ipc/IdType.h";
+
+namespace mozilla {
+
+namespace ipc {
+
+union BoolResponse
+{
+ nsresult;
+ bool;
+};
+
+} // namespace ipc
+
+namespace dom {
+namespace quota {
+
+struct StorageNameParams
+{
+};
+
+struct InitializePersistentOriginParams
+{
+ PrincipalInfo principalInfo;
+};
+
+struct InitializeTemporaryOriginParams
+{
+ PersistenceType persistenceType;
+ PrincipalInfo principalInfo;
+};
+
+struct GetFullOriginMetadataParams
+{
+ PersistenceType persistenceType;
+ PrincipalInfo principalInfo;
+};
+
+struct AllUsageParams
+{
+ bool getAll;
+};
+
+struct OriginUsageParams
+{
+ PrincipalInfo principalInfo;
+ bool fromMemory;
+};
+
+union UsageRequestParams
+{
+ AllUsageParams;
+ OriginUsageParams;
+};
+
+struct ClearResetOriginParams
+{
+ PrincipalInfo principalInfo;
+ PersistenceType persistenceType;
+ bool persistenceTypeIsExplicit;
+ Type clientType;
+ bool clientTypeIsExplicit;
+};
+
+struct ResetOriginParams
+{
+ ClearResetOriginParams commonParams;
+};
+
+struct PersistedParams
+{
+ PrincipalInfo principalInfo;
+};
+
+struct PersistParams
+{
+ PrincipalInfo principalInfo;
+};
+
+struct EstimateParams
+{
+ PrincipalInfo principalInfo;
+};
+
+struct ListOriginsParams
+{
+};
+
+union RequestParams
+{
+ StorageNameParams;
+ InitializePersistentOriginParams;
+ InitializeTemporaryOriginParams;
+ GetFullOriginMetadataParams;
+ ResetOriginParams;
+ PersistedParams;
+ PersistParams;
+ EstimateParams;
+ ListOriginsParams;
+};
+
+[ChildImpl=virtual, ParentImpl=virtual]
+protocol PQuota
+{
+ manager PBackground;
+
+ manages PQuotaRequest;
+ manages PQuotaUsageRequest;
+
+parent:
+ async __delete__();
+
+ async PQuotaUsageRequest(UsageRequestParams params);
+
+ async PQuotaRequest(RequestParams params);
+
+ async StorageInitialized()
+ returns(BoolResponse response);
+
+ async TemporaryStorageInitialized()
+ returns(BoolResponse response);
+
+ async InitializeStorage()
+ returns(BoolResponse response);
+
+ async InitializePersistentClient(PrincipalInfo principalInfo,
+ Type clientType)
+ returns(BoolResponse response);
+
+ async InitializeTemporaryClient(PersistenceType persistenceType,
+ PrincipalInfo principalInfo,
+ Type clientType)
+ returns(BoolResponse response);
+
+ async InitializeTemporaryStorage()
+ returns(BoolResponse response);
+
+ async ClearStoragesForOrigin(PersistenceType? persistenceType,
+ PrincipalInfo principalInfo,
+ Type? clientType)
+ returns(BoolResponse response);
+
+ async ClearStoragesForOriginPrefix(PersistenceType? persistenceType,
+ PrincipalInfo principalInfo)
+ returns(BoolResponse response);
+
+ // This can only be called from some other thread in the parent process!
+ async ClearStoragesForOriginAttributesPattern(OriginAttributesPattern pattern)
+ returns(BoolResponse response);
+
+ async ClearStoragesForPrivateBrowsing()
+ returns(BoolResponse response);
+
+ async ClearStorage()
+ returns(BoolResponse response);
+
+ async ShutdownStorage()
+ returns(BoolResponse response);
+
+ async StartIdleMaintenance();
+
+ async StopIdleMaintenance();
+
+ async AbortOperationsForProcess(ContentParentId contentParentId);
+};
+
+} // namespace quota
+} // namespace dom
+} // namespace mozilla