2007-10-03 23:05:32 -07:00
|
|
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-05-21 04:12:37 -07:00
|
|
|
/* 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/. */
|
2007-10-03 23:05:32 -07:00
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
2009-05-16 06:59:30 -07:00
|
|
|
interface nsIDOMStorage;
|
2009-03-18 16:43:45 -07:00
|
|
|
interface nsIPrincipal;
|
2014-07-22 22:07:12 -07:00
|
|
|
interface nsIDOMWindow;
|
2009-03-18 16:43:45 -07:00
|
|
|
|
2013-04-15 05:38:48 -07:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2014-07-22 22:07:12 -07:00
|
|
|
[scriptable, uuid(a15f7ebd-4f35-4e73-a2d8-255d27fd14ee)]
|
2007-10-03 23:05:32 -07:00
|
|
|
interface nsIDOMStorageManager : nsISupports
|
|
|
|
{
|
|
|
|
/**
|
2013-04-15 05:38:48 -07:00
|
|
|
* 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.
|
|
|
|
*
|
2014-07-22 22:07:12 -07:00
|
|
|
* @param aWindow
|
|
|
|
* The parent window.
|
2013-04-15 05:38:48 -07:00
|
|
|
* @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.
|
|
|
|
*/
|
2014-07-22 22:07:12 -07:00
|
|
|
nsIDOMStorage createStorage(in nsIDOMWindow aWindow,
|
|
|
|
in nsIPrincipal aPrincipal,
|
2013-04-15 05:38:48 -07:00
|
|
|
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.
|
|
|
|
*
|
2014-07-22 22:07:12 -07:00
|
|
|
* @param aWindow
|
|
|
|
* The parent window.
|
2013-04-15 05:38:48 -07:00
|
|
|
* @param aPrincipal
|
|
|
|
* Principal to bound storage to.
|
|
|
|
* @param aPrivate
|
|
|
|
* Whether the demanding document is running in Private Browsing mode or not.
|
|
|
|
*/
|
2014-07-22 22:07:12 -07:00
|
|
|
nsIDOMStorage getStorage(in nsIDOMWindow aWindow,
|
|
|
|
in nsIPrincipal aPrincipal,
|
2013-04-15 05:38:48 -07:00
|
|
|
[optional] in bool aPrivate);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Clones given storage into this storage manager.
|
2007-10-03 23:05:32 -07:00
|
|
|
*
|
2013-04-15 05:38:48 -07:00
|
|
|
* @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.
|
2007-10-03 23:05:32 -07:00
|
|
|
*/
|
2013-04-15 05:38:48 -07:00
|
|
|
void cloneStorage(in nsIDOMStorage aStorageToCloneFrom);
|
2008-01-22 20:06:36 -08:00
|
|
|
|
2009-03-18 16:43:45 -07:00
|
|
|
/**
|
2013-04-15 05:38:48 -07:00
|
|
|
* 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
|
|
|
|
*
|
2009-03-18 16:43:45 -07:00
|
|
|
* Returns instance of localStorage object for aURI's origin.
|
|
|
|
* This method ensures there is always only a single instance
|
|
|
|
* for a single origin.
|
2013-04-15 05:38:48 -07:00
|
|
|
*
|
|
|
|
* Currently just forwards to the createStorage method of this
|
|
|
|
* interface.
|
|
|
|
*
|
|
|
|
* Extension developers are strongly encouraged to use getStorage
|
|
|
|
* or createStorage method instead.
|
2009-03-18 16:43:45 -07:00
|
|
|
*/
|
2010-01-28 06:53:53 -08:00
|
|
|
nsIDOMStorage getLocalStorageForPrincipal(in nsIPrincipal aPrincipal,
|
2012-05-26 01:37:58 -07:00
|
|
|
in DOMString aDocumentURI,
|
|
|
|
[optional] in bool aPrivate);
|
2007-10-03 23:05:32 -07:00
|
|
|
};
|