Source code

Revision control

Copy as Markdown

Other Tools

/* 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 nsIObserver;
/**
* This is an internal interface used only for testing purposes.
*
* THIS IS NOT AN API TO BE USED BY EXTENSIONS! ONLY USED BY MOZILLA TESTS.
*/
[scriptable, builtinclass, uuid(4e8ba935-92e1-4a74-944b-b1a2f02a7480)]
interface nsICacheTesting : nsISupports
{
void suspendCacheIOThread(in uint32_t aLevel);
void resumeCacheIOThread();
void flush(in nsIObserver aObserver);
/**
* Shut down and restart the disk cache IO subsystem in-process, to simulate a
* browser restart without firing the (guarded) shutdown observer topics.
* shutdownCacheForTesting() closes all handles and writes a clean index;
* startupCacheForTesting() re-initializes and re-reads the index from disk. A
* test can corrupt the on-disk index between the two calls to exercise the
* startup integrity-check / rebuild path. Callers should flush() before
* shutting down, and wait for the index to become ready after startup (e.g.
* via asyncGetDiskConsumption).
*/
void shutdownCacheForTesting();
void startupCacheForTesting();
/**
* Clear the in-memory DictionaryCache but keep disk data intact.
* This forces dictionary entries to be reloaded from disk on next access.
*/
void clearDictionaryCacheMemory();
/**
* Corrupt the hash of a stored dictionary for testing hash mismatch handling.
* @param aURI The URI of the dictionary to corrupt
* @param aOriginAttributes The OriginAttributes of the partition the
* dictionary was stored under (e.g. {} for the default partition).
*/
[implicit_jscontext]
void corruptDictionaryHash(in ACString aURI, in jsval aOriginAttributes);
/**
* Clear the loaded dictionary data for a specific entry while keeping the
* entry metadata (including hash). This forces the data to be reloaded from
* disk on next prefetch.
* @param aURI The URI of the dictionary
* @param aOriginAttributes See corruptDictionaryHash.
*/
[implicit_jscontext]
void clearDictionaryDataForTesting(in ACString aURI,
in jsval aOriginAttributes);
};