123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /* -*- 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);
- };
|