summaryrefslogtreecommitdiffstats
path: root/dom/quota/nsIQuotaManagerService.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/quota/nsIQuotaManagerService.idl')
-rw-r--r--dom/quota/nsIQuotaManagerService.idl91
1 files changed, 91 insertions, 0 deletions
diff --git a/dom/quota/nsIQuotaManagerService.idl b/dom/quota/nsIQuotaManagerService.idl
new file mode 100644
index 000000000..f24ce2833
--- /dev/null
+++ b/dom/quota/nsIQuotaManagerService.idl
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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 "nsISupports.idl"
+
+interface nsIPrincipal;
+interface nsIQuotaRequest;
+interface nsIQuotaUsageCallback;
+interface nsIQuotaUsageRequest;
+
+[scriptable, builtinclass, uuid(1b3d0a38-8151-4cf9-89fa-4f92c2ef0e7e)]
+interface nsIQuotaManagerService : nsISupports
+{
+ /**
+ * Schedules an asynchronous callback that will inspect all origins and
+ * return the total amount of disk space being used by storages for each
+ * origin separately.
+ *
+ * @param aCallback
+ * The callback that will be called when the usage is available.
+ * @param aGetAll
+ * An optional boolean to indicate inspection of all origins,
+ * including internal ones.
+ */
+ [must_use] nsIQuotaUsageRequest
+ getUsage(in nsIQuotaUsageCallback aCallback,
+ [optional] in boolean aGetAll);
+
+ /**
+ * Schedules an asynchronous callback that will return the total amount of
+ * disk space being used by storages for the given origin.
+ *
+ * @param aPrincipal
+ * A principal for the origin whose usage is being queried.
+ * @param aCallback
+ * The callback that will be called when the usage is available.
+ * @param aGetGroupUsage
+ * An optional flag to indicate whether getting group usage and limit
+ * or origin usage and file usage. The default value is false.
+ * Note: Origin usage here represents total usage of an origin. However,
+ * group usage here represents only non-persistent usage of a group.
+ */
+ [must_use] nsIQuotaUsageRequest
+ getUsageForPrincipal(in nsIPrincipal aPrincipal,
+ in nsIQuotaUsageCallback aCallback,
+ [optional] in boolean aGetGroupUsage);
+
+ /**
+ * Removes all storages. The files may not be deleted immediately depending
+ * on prohibitive concurrent operations.
+ * Be careful, this removes *all* the data that has ever been stored!
+ *
+ * If the dom.quotaManager.testing preference is not true the call will be
+ * a no-op.
+ */
+ [must_use] nsIQuotaRequest
+ clear();
+
+ /**
+ * Removes all storages stored for the given URI. The files may not be
+ * deleted immediately depending on prohibitive concurrent operations.
+ *
+ * @param aPrincipal
+ * A principal for the origin whose storages are to be cleared.
+ * @param aPersistenceType
+ * An optional string that tells what persistence type of storages
+ * will be cleared.
+ * @param aClearAll
+ * An optional boolean to indicate clearing all storages under the
+ * given origin.
+ */
+ [must_use] nsIQuotaRequest
+ clearStoragesForPrincipal(in nsIPrincipal aPrincipal,
+ [optional] in ACString aPersistenceType,
+ [optional] in boolean aClearAll);
+
+ /**
+ * Resets quota and storage management. This can be used to force
+ * reinitialization of the temp storage, for example when the pref for
+ * overriding the temp storage limit has changed.
+ * Be carefull, this invalidates all live storages!
+ *
+ * If the dom.quotaManager.testing preference is not true the call will be
+ * a no-op.
+ */
+ [must_use] nsIQuotaRequest
+ reset();
+};