1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include
"nsISupports.idl"
9 * nsITabUnloader: interface to represent TabUnloader
11 * nsIAvailableMemoryWatcherBase: interface to watch the system's memory
12 * status and invoke a registered TabUnloader when it detected a low-memory
13 * and high-memory situation. The logic to detect such a memory situation
14 * is defined per platform.
17 [scriptable
, uuid(2e530956
-6054-464f
-9f4c
-0ae6f8de5523
)]
18 interface nsITabUnloader
: nsISupports
21 * Unload the least-recently-used tab.
22 * JS implementation of this interface TabUnloader.unloadTabAsync takes
23 * one parameter that defines a threshold to exclude fresh tabs from the
24 * unloading candidate tabs. Currently the memory watcher is the only one
25 * caller of this interface and it always expects the default threshold,
26 * so this interface takes no parameter.
28 void unloadTabAsync
();
31 [scriptable
, uuid(b0b5701e
-239d
-49db
-9009-37e89f86441c
)]
32 interface nsIAvailableMemoryWatcherBase
: nsISupports
34 void registerTabUnloader
(in nsITabUnloader aTabUnloader
);
35 void onUnloadAttemptCompleted
(in nsresult aResult
);