/* 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 */ void corruptDictionaryHash(in ACString aURI); /** * 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 */ void clearDictionaryDataForTesting(in ACString aURI); };