forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			138 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* 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;
 | |
| interface nsICacheStorageVisitor;
 | |
| 
 | |
| /**
 | |
|  * 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);
 | |
| 
 | |
|   /**
 | |
|    * Asynchronously visits all storages of the disk cache and memory cache.
 | |
|    * @see nsICacheStorageVisitor
 | |
|    * @param aVisitor
 | |
|    *   A visitor callback.
 | |
|    * @param aVisitEntries
 | |
|    *   A boolean indicates whether visits entries.
 | |
|    */
 | |
|   void asyncVisitAllStorages(in nsICacheStorageVisitor aVisitor,
 | |
|                              in boolean aVisitEntries);
 | |
| };
 | |
| 
 | |
| [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);
 | |
| };
 | 
