/* -*- 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" %}