diff options
Diffstat (limited to 'dom/interfaces/storage')
-rw-r--r-- | dom/interfaces/storage/moz.build | 12 | ||||
-rw-r--r-- | dom/interfaces/storage/nsIDOMStorage.idl | 16 | ||||
-rw-r--r-- | dom/interfaces/storage/nsIDOMStorageManager.idl | 105 |
3 files changed, 133 insertions, 0 deletions
diff --git a/dom/interfaces/storage/moz.build b/dom/interfaces/storage/moz.build new file mode 100644 index 000000000..433e25e7a --- /dev/null +++ b/dom/interfaces/storage/moz.build @@ -0,0 +1,12 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# 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/. + +XPIDL_SOURCES += [ + 'nsIDOMStorage.idl', + 'nsIDOMStorageManager.idl', +] + +XPIDL_MODULE = 'dom_storage' diff --git a/dom/interfaces/storage/nsIDOMStorage.idl b/dom/interfaces/storage/nsIDOMStorage.idl new file mode 100644 index 000000000..c34048f4f --- /dev/null +++ b/dom/interfaces/storage/nsIDOMStorage.idl @@ -0,0 +1,16 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 "domstubs.idl" + +/** + * Empty interface for client side storage. DOMStorage is now ported to WebIDL + * but we still need an XPConnect interface for casting. + */ + +[scriptable, uuid(425a33f0-e0e9-45e7-a95f-9908bd6ae988)] +interface nsIDOMStorage : nsISupports +{ +}; diff --git a/dom/interfaces/storage/nsIDOMStorageManager.idl b/dom/interfaces/storage/nsIDOMStorageManager.idl new file mode 100644 index 000000000..1008477c0 --- /dev/null +++ b/dom/interfaces/storage/nsIDOMStorageManager.idl @@ -0,0 +1,105 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 nsIDOMStorage; +interface nsIPrincipal; +interface mozIDOMWindow; + +/** + * General purpose interface that has two implementations, for localStorage + * resp. sessionStorage with "@mozilla.org/dom/localStorage-manager;1" resp. + * "@mozilla.org/dom/sessionStorage-manager;1" contract IDs. + */ +[scriptable, uuid(a20c742e-3ed1-44fb-b897-4080a75b1662)] +interface nsIDOMStorageManager : nsISupports +{ + /** + * This starts async preloading of a storage cache for scope + * defined by the principal. + */ + void precacheStorage(in nsIPrincipal aPrincipal); + + /** + * Returns instance of DOM storage object for given principal. + * A new object is always returned and it is ensured there is + * a storage for the scope created. + * + * @param aWindow + * The parent window. + * @param aPrincipal + * Principal to bound storage to. + * @param aDocumentURI + * URL of the demanding document, used for DOM storage event only. + * @param aPrivate + * Whether the demanding document is running in Private Browsing mode or not. + */ + nsIDOMStorage createStorage(in mozIDOMWindow aWindow, + in nsIPrincipal aPrincipal, + in DOMString aDocumentURI, + [optional] in bool aPrivate); + /** + * Returns instance of DOM storage object for given principal. + * If there is no storage managed for the scope, then null is returned and + * no object is created. Otherwise, an object (new) for the existing storage + * scope is returned. + * + * @param aWindow + * The parent window. + * @param aPrincipal + * Principal to bound storage to. + * @param aPrivate + * Whether the demanding document is running in Private Browsing mode or not. + */ + nsIDOMStorage getStorage(in mozIDOMWindow aWindow, + in nsIPrincipal aPrincipal, + [optional] in bool aPrivate); + + /** + * Clones given storage into this storage manager. + * + * @param aStorageToCloneFrom + * The storage to copy all items from into this manager. Manager will then + * return a new and independent object that contains snapshot of data from + * the moment this method was called. Modification to this new object will + * not affect the original storage content we cloned from and vice versa. + */ + void cloneStorage(in nsIDOMStorage aStorageToCloneFrom); + + /** + * Returns true if the storage belongs to the given principal and is managed + * (i.e. has been created and is cached) by this storage manager. + * + * @param aPrincipal + * Principal to check the storage against. + * @param aStorage + * The storage object to examine. + * + * @result + * true when the storage object is bound with the principal and is managed + * by this storage manager. + * false otherwise + */ + bool checkStorage(in nsIPrincipal aPrincipal, + in nsIDOMStorage aStorage); + + /** + * @deprecated + * + * Returns instance of localStorage object for aURI's origin. + * This method ensures there is always only a single instance + * for a single origin. + * + * Currently just forwards to the createStorage method of this + * interface. + * + * Extension developers are strongly encouraged to use getStorage + * or createStorage method instead. + */ + nsIDOMStorage getLocalStorageForPrincipal(in nsIPrincipal aPrincipal, + in DOMString aDocumentURI, + [optional] in bool aPrivate); +}; |