/* -*- Mode: C++; 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" /** * nsITabUnloader: interface to represent TabUnloader * * nsIAvailableMemoryWatcherBase: interface to watch the system's memory * status and invoke a registered TabUnloader when it detected a low-memory * and high-memory situation. The logic to detect such a memory situation * is defined per platform. */ [scriptable, uuid(2e530956-6054-464f-9f4c-0ae6f8de5523)] interface nsITabUnloader : nsISupports { /* * Unload the least-recently-used tab. * JS implementation of this interface TabUnloader.unloadTabAsync takes * one parameter that defines a threshold to exclude fresh tabs from the * unloading candidate tabs. Currently the memory watcher is the only one * caller of this interface and it always expects the default threshold, * so this interface takes no parameter. */ void unloadTabAsync(); }; [scriptable, uuid(b0b5701e-239d-49db-9009-37e89f86441c)] interface nsIAvailableMemoryWatcherBase : nsISupports { void registerTabUnloader(in nsITabUnloader aTabUnloader); void onUnloadAttemptCompleted(in nsresult aResult); };