summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/storage/nsIStorageActivityService.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/storage/nsIStorageActivityService.idl')
-rw-r--r--dom/interfaces/storage/nsIStorageActivityService.idl42
1 files changed, 42 insertions, 0 deletions
diff --git a/dom/interfaces/storage/nsIStorageActivityService.idl b/dom/interfaces/storage/nsIStorageActivityService.idl
new file mode 100644
index 0000000000..f33fcfc222
--- /dev/null
+++ b/dom/interfaces/storage/nsIStorageActivityService.idl
@@ -0,0 +1,42 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* 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 "domstubs.idl"
+
+interface nsIArray;
+interface nsIPrincipal;
+
+/**
+ * nsIStorageActivityService is a service that can be used to know which
+ * origins have been active in a time range. This information can be used to
+ * implement "Clear Recent History" or similar features.
+ *
+ * If you are implementing a new Storage component, you should use
+ * QuotaManager. But if you don't do it, remember to call
+ * StorageActivityService methods in order to inform this service about
+ * 'writing' operations executed by origins.
+ */
+[scriptable, builtinclass, uuid(fd1310ba-d1be-4327-988e-92b39fcff6f4)]
+interface nsIStorageActivityService : nsISupports
+{
+ // This returns an array of nsIPrincipals, active between |from| and |to|
+ // timestamps. Note activities older than 1 day are forgotten.
+ // Activity details are not persisted, so this only covers activity since
+ // Firefox was started. All content principals are logged, which includes
+ // non-system principals like "moz-extension://ID", "moz-safe-about:home",
+ // "about:newtab", so principals may need to be filtered before being used.
+ nsIArray getActiveOrigins(in PRTime from, in PRTime to);
+
+ // NOTE: This method is meant to be used for testing only.
+ // The activity of |origin| is moved to the specified timestamp |when|.
+ void moveOriginInTime(in nsIPrincipal origin, in PRTime when);
+
+ // TEST-ONLY method to support clearing all previously known activity.
+ void testOnlyReset();
+};
+
+%{ C++
+#define STORAGE_ACTIVITY_SERVICE_CONTRACTID "@mozilla.org/storage/activity-service;1"
+%}