forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 | |
|  *
 | |
|  * 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 nsIApplicationCache;
 | |
| interface nsIFile;
 | |
| interface nsIURI;
 | |
| interface nsILoadContextInfo;
 | |
| 
 | |
| /**
 | |
|  * The application cache service manages the set of application cache
 | |
|  * groups.
 | |
|  */
 | |
| [scriptable, uuid(b8b6546c-6cec-4bda-82df-08e006a97b56)]
 | |
| interface nsIApplicationCacheService : nsISupports
 | |
| {
 | |
|     /**
 | |
|      * Create group string identifying cache group according the manifest
 | |
|      * URL and the given principal.
 | |
|      */
 | |
|     ACString buildGroupIDForInfo(in nsIURI aManifestURL,
 | |
|                                  in nsILoadContextInfo aLoadContextInfo);
 | |
|     ACString buildGroupIDForSuffix(in nsIURI aManifestURL,
 | |
|                                    in ACString aOriginSuffix);
 | |
| 
 | |
|     /**
 | |
|      * Create a new, empty application cache for the given cache
 | |
|      * group.
 | |
|      */
 | |
|     nsIApplicationCache createApplicationCache(in ACString group);
 | |
| 
 | |
|     /**
 | |
|      * Create a new, empty application cache for the given cache
 | |
|      * group residing in a custom directory with a custom quota.
 | |
|      *
 | |
|      * @param group
 | |
|      *    URL of the manifest
 | |
|      * @param directory
 | |
|      *    Actually a reference to a profile directory where to
 | |
|      *    create the OfflineCache sub-dir.
 | |
|      * @param quota
 | |
|      *    Optional override of the default quota.
 | |
|      */
 | |
|     nsIApplicationCache createCustomApplicationCache(in ACString group,
 | |
|                                                      in nsIFile profileDir,
 | |
|                                                      in int32_t quota);
 | |
| 
 | |
|     /**
 | |
|      * Get an application cache object for the given client ID.
 | |
|      */
 | |
|     nsIApplicationCache getApplicationCache(in ACString clientID);
 | |
| 
 | |
|     /**
 | |
|      * Get the currently active cache object for a cache group.
 | |
|      */
 | |
|     nsIApplicationCache getActiveCache(in ACString group);
 | |
| 
 | |
|     /**
 | |
|      * Deactivate the currently-active cache object for a cache group.
 | |
|      */
 | |
|     void deactivateGroup(in ACString group);
 | |
| 
 | |
|     /**
 | |
|      * Evict offline cache entries, either all of them or those belonging
 | |
|      * to the given origin.
 | |
|      */
 | |
|     void evict(in nsILoadContextInfo aLoadContextInfo);
 | |
| 
 | |
|     /**
 | |
|      * Delete caches whom origin attributes matches the given pattern.
 | |
|      */
 | |
|     void evictMatchingOriginAttributes(in AString aPattern);
 | |
| 
 | |
|     /**
 | |
|      * Try to find the best application cache to serve a resource.
 | |
|      */
 | |
|     nsIApplicationCache chooseApplicationCache(in ACString key,
 | |
|                                                [optional] in nsILoadContextInfo aLoadContextInfo);
 | |
| 
 | |
|     /**
 | |
|      * Flags the key as being opportunistically cached.
 | |
|      *
 | |
|      * This method should also propagate the entry to other
 | |
|      * application caches with the same opportunistic namespace, but
 | |
|      * this is not currently implemented.
 | |
|      *
 | |
|      * @param cache
 | |
|      *        The cache in which the entry is cached now.
 | |
|      * @param key
 | |
|      *        The cache entry key.
 | |
|      */
 | |
|     void cacheOpportunistically(in nsIApplicationCache cache, in ACString key);
 | |
| 
 | |
|     /**
 | |
|      * Get the list of application cache groups.
 | |
|      */
 | |
|     void getGroups([optional] out unsigned long count,
 | |
|                    [array, size_is(count), retval] out string groupIDs);
 | |
| 
 | |
|     /**
 | |
|      * Get the list of application cache groups in the order of
 | |
|      * activating time.
 | |
|      */
 | |
|     void getGroupsTimeOrdered([optional] out unsigned long count,
 | |
|                               [array, size_is(count), retval] out string groupIDs);
 | |
| };
 | 
