123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /* 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 nsICacheStorage;
- interface nsILoadContextInfo;
- interface nsIApplicationCache;
- interface nsIEventTarget;
- interface nsICacheStorageConsumptionObserver;
- /**
- * Provides access to particual cache storages of the network URI cache.
- */
- [scriptable, uuid(ae29c44b-fbc3-4552-afaf-0a157ce771e7)]
- interface nsICacheStorageService : nsISupports
- {
- /**
- * Get storage where entries will only remain in memory, never written
- * to the disk.
- *
- * NOTE: Any existing disk entry for [URL|id-extension] will be doomed
- * prior opening an entry using this memory-only storage. Result of
- * AsyncOpenURI will be a new and empty memory-only entry. Using
- * OPEN_READONLY open flag has no effect on this behavior.
- *
- * @param aLoadContextInfo
- * Information about the loading context, this focuses the storage JAR and
- * respects separate storage for private browsing.
- */
- nsICacheStorage memoryCacheStorage(in nsILoadContextInfo aLoadContextInfo);
- /**
- * Get storage where entries will be written to disk when not forbidden by
- * response headers.
- *
- * @param aLookupAppCache
- * When set true (for top level document loading channels) app cache will
- * be first to check on to find entries in.
- */
- nsICacheStorage diskCacheStorage(in nsILoadContextInfo aLoadContextInfo,
- in bool aLookupAppCache);
- /**
- * Get storage where entries will be written to disk and marked as pinned.
- * These pinned entries are immune to over limit eviction and call of clear()
- * on this service.
- */
- nsICacheStorage pinningCacheStorage(in nsILoadContextInfo aLoadContextInfo);
- /**
- * Get storage for a specified application cache obtained using some different
- * mechanism.
- *
- * @param aLoadContextInfo
- * Mandatory reference to a load context information.
- * @param aApplicationCache
- * Optional reference to an existing appcache. When left null, this will
- * work with offline cache as a whole.
- */
- nsICacheStorage appCacheStorage(in nsILoadContextInfo aLoadContextInfo,
- in nsIApplicationCache aApplicationCache);
- /**
- * Get storage for synthesized cache entries that we currently use for ServiceWorker interception in non-e10s mode.
- *
- * This cache storage has no limits on file size to allow the ServiceWorker to intercept large files.
- */
- nsICacheStorage synthesizedCacheStorage(in nsILoadContextInfo aLoadContextInfo);
- /**
- * Evict the whole cache.
- */
- void clear();
- /**
- * Purge only data of disk backed entries. Metadata are left for
- * performance purposes.
- */
- const uint32_t PURGE_DISK_DATA_ONLY = 1;
- /**
- * Purge whole disk backed entries from memory. Disk files will
- * be left unattended.
- */
- const uint32_t PURGE_DISK_ALL = 2;
- /**
- * Purge all entries we keep in memory, including memory-storage
- * entries. This may be dangerous to use.
- */
- const uint32_t PURGE_EVERYTHING = 3;
- /**
- * Purges data we keep warmed in memory. Use for tests and for
- * saving memory.
- */
- void purgeFromMemory(in uint32_t aWhat);
- /**
- * I/O thread target to use for any operations on disk
- */
- readonly attribute nsIEventTarget ioTarget;
- /**
- * Asynchronously determine how many bytes of the disk space the cache takes.
- * @see nsICacheStorageConsumptionObserver
- * @param aObserver
- * A mandatory (weak referred) observer. Documented at
- * nsICacheStorageConsumptionObserver.
- * NOTE: the observer MUST implement nsISupportsWeakReference.
- */
- void asyncGetDiskConsumption(in nsICacheStorageConsumptionObserver aObserver);
- };
- [scriptable, uuid(7728ab5b-4c01-4483-a606-32bf5b8136cb)]
- interface nsICacheStorageConsumptionObserver : nsISupports
- {
- /**
- * Callback invoked to answer asyncGetDiskConsumption call. Always triggered
- * on the main thread.
- * NOTE: implementers must also implement nsISupportsWeakReference.
- *
- * @param aDiskSize
- * The disk consumption in bytes.
- */
- void onNetworkCacheDiskConsumption(in int64_t aDiskSize);
- };
|