diff options
Diffstat (limited to 'mobile/android/components/SessionStore.idl')
-rw-r--r-- | mobile/android/components/SessionStore.idl | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/mobile/android/components/SessionStore.idl b/mobile/android/components/SessionStore.idl new file mode 100644 index 000000000..14ddd5834 --- /dev/null +++ b/mobile/android/components/SessionStore.idl @@ -0,0 +1,86 @@ +/* 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 nsIDOMWindow; +interface nsIDOMNode; + +/** + * nsISessionStore keeps track of the current browsing state. + * + * The nsISessionStore API operates mostly on browser windows and the browser + * tabs contained in them. + */ + +[scriptable, uuid(da9ffc70-d444-47d4-b4ab-df3fb0fd24d0)] +interface nsISessionStore : nsISupports +{ + /** + * Get the current browsing state. + * @returns a JSON string representing the session state. + */ + AString getBrowserState(); + + /** + * Get the number of restore-able tabs for a browser window + */ + unsigned long getClosedTabCount(in nsIDOMWindow aWindow); + + /** + * Get closed tab data + * + * @param aWindow is the browser window for which to get closed tab data + * @returns a JS array of closed tabs. + */ + jsval getClosedTabs(in nsIDOMWindow aWindow); + + /** + * @param aWindow is the browser window to reopen a closed tab in. + * @param aCloseTabData is the data of the tab to be restored. + * @returns a reference to the reopened tab. + */ + nsIDOMNode undoCloseTab(in nsIDOMWindow aWindow, in jsval aCloseTabData); + + /** + * @param aWindow is the browser window associated with the closed tab. + * @param aIndex is the index of the closed tab to be removed (FIFO ordered). + */ + nsIDOMNode forgetClosedTab(in nsIDOMWindow aWindow, in unsigned long aIndex); + + /** + * @param aTab is the browser tab to get the value for. + * @param aKey is the value's name. + * + * @returns A string value or an empty string if none is set. + */ + AString getTabValue(in jsval aTab, in AString aKey); + + /** + * @param aTab is the browser tab to set the value for. + * @param aKey is the value's name. + * @param aStringValue is the value itself (use JSON.stringify/parse before setting JS objects). + */ + void setTabValue(in jsval aTab, in AString aKey, in AString aStringValue); + + /** + * @param aTab is the browser tab to get the value for. + * @param aKey is the value's name. + */ + void deleteTabValue(in jsval aTab, in AString aKey); + + /** + * Restores the previous browser session using a fast, lightweight strategy + * @param aSessionString The session string to restore from. If null, the + * backup session file is read from. + */ + void restoreLastSession(in AString aSessionString); + + /** + * Removes a window from the current session history. Data from this window + * won't be saved when its closed. + * @param aWindow The window to remove + */ + void removeWindow(in nsIDOMWindow aWindow); +}; |