/* -*- Mode: C++; 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 "nsISupports.idl" interface nsIURI; interface imgIRequest; interface nsIProperties; /** * imgICache interface * * @author Stuart Parmenter * @version 0.1 * @see imagelib2 */ [scriptable, uuid(b06e0fa5-d6e2-4fa3-8fc0-7775aed96522)] interface imgICache : nsISupports { /** * Evict images from the cache. * * @param chrome If TRUE, evict only chrome images. * If FALSE, evict everything except chrome images. */ void clearCache(in boolean chrome); /** * Evict images from the cache. * * @param uri The URI to remove. * @return NS_OK if \a uri was removed from the cache. * NS_ERROR_NOT_AVAILABLE if \a uri was unable to be removed from the cache. */ void removeEntry(in nsIURI uri); /** * Find Properties * Used to get properties such as 'type' and 'content-disposition' * 'type' is a nsISupportsCString containing the images' mime type such as 'image/png' * 'content-disposition' will be a nsISupportsCString containing the header * If you call this before any data has been loaded from a URI, it will succeed, * but come back empty. * * @param uri The URI to look up. * @returns NULL if the URL was not found in the cache */ nsIProperties findEntryProperties(in nsIURI uri); /** * Make this cache instance respect private browsing notifications. This entails clearing * the chrome and content caches whenever the last-pb-context-exited notification is * observed. */ void respectPrivacyNotifications(); };