summaryrefslogtreecommitdiffstats
path: root/mobile/android/components/SessionStore.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/components/SessionStore.idl')
-rw-r--r--mobile/android/components/SessionStore.idl86
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);
+};