1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/metro/components/SessionStore.idl Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,83 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +#include "nsISupports.idl" 1.9 + 1.10 +interface nsIDOMWindow; 1.11 +interface nsIDOMNode; 1.12 + 1.13 +/** 1.14 + * nsISessionStore keeps track of the current browsing state. 1.15 + * 1.16 + * The nsISessionStore API operates mostly on browser windows and the browser 1.17 + * tabs contained in them. 1.18 + */ 1.19 + 1.20 +[scriptable, uuid(766a09c1-d21b-4bf8-9fe3-8b34b716251a)] 1.21 +interface nsISessionStore : nsISupports 1.22 +{ 1.23 + /** 1.24 + * Get the current browsing state. 1.25 + * @returns a JSON string representing the session state. 1.26 + */ 1.27 + AString getBrowserState(); 1.28 + 1.29 + /** 1.30 + * Get the number of restore-able tabs for a browser window 1.31 + */ 1.32 + unsigned long getClosedTabCount(in nsIDOMWindow aWindow); 1.33 + 1.34 + /** 1.35 + * Get closed tab data 1.36 + * 1.37 + * @param aWindow is the browser window for which to get closed tab data 1.38 + * @returns a JSON string representing the list of closed tabs. 1.39 + */ 1.40 + AString getClosedTabData(in nsIDOMWindow aWindow); 1.41 + 1.42 + /** 1.43 + * @param aWindow is the browser window to reopen a closed tab in. 1.44 + * @param aIndex is the index of the tab to be restored (FIFO ordered). 1.45 + * @returns a reference to the reopened tab. 1.46 + */ 1.47 + nsIDOMNode undoCloseTab(in nsIDOMWindow aWindow, in unsigned long aIndex); 1.48 + 1.49 + /** 1.50 + * @param aWindow is the browser window associated with the closed tab. 1.51 + * @param aIndex is the index of the closed tab to be removed (FIFO ordered). 1.52 + */ 1.53 + nsIDOMNode forgetClosedTab(in nsIDOMWindow aWindow, in unsigned long aIndex); 1.54 + 1.55 + /** 1.56 + * @param aTab is the browser tab to get the value for. 1.57 + * @param aKey is the value's name. 1.58 + * 1.59 + * @returns A string value or an empty string if none is set. 1.60 + */ 1.61 + AString getTabValue(in nsIDOMNode aTab, in AString aKey); 1.62 + 1.63 + /** 1.64 + * @param aTab is the browser tab to set the value for. 1.65 + * @param aKey is the value's name. 1.66 + * @param aStringValue is the value itself (use JSON.stringify/parse before setting JS objects). 1.67 + */ 1.68 + void setTabValue(in nsIDOMNode aTab, in AString aKey, in AString aStringValue); 1.69 + 1.70 + /** 1.71 + * @param aTab is the browser tab to get the value for. 1.72 + * @param aKey is the value's name. 1.73 + */ 1.74 + void deleteTabValue(in nsIDOMNode aTab, in AString aKey); 1.75 + 1.76 + /** 1.77 + * @returns A boolean indicating we should restore previous browser session 1.78 + */ 1.79 + boolean shouldRestore(); 1.80 + 1.81 + /** 1.82 + * Restores the previous browser session using a fast, lightweight strategy 1.83 + * @param aBringToFront should a restored tab be brought to the foreground? 1.84 + */ 1.85 + void restoreLastSession(in boolean aBringToFront); 1.86 +};