diff -r 000000000000 -r 6474c204b198 dom/interfaces/storage/nsIDOMStorage.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/interfaces/storage/nsIDOMStorage.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,68 @@ +/* -*- 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" + +/** + * Interface for client side storage. See + * http://www.whatwg.org/specs/web-apps/current-work/multipage/structured.html#storage0 + * for more information. + * + * A storage object stores an arbitrary set of key-value pairs, which + * may be retrieved, modified and removed as needed. A key may only + * exist once within a storage object, and only one value may be + * associated with a particular key. Keys are stored in a particular + * order with the condition that this order not change by merely changing + * the value associated with a key, but the order may change when a + * key is added or removed. + */ + +[scriptable, uuid(43E5EDAD-1E02-42c4-9D99-C3D9DEE22A20)] +interface nsIDOMStorage : nsISupports +{ + /** + * The number of keys stored. + */ + readonly attribute unsigned long length; + + /** + * Retrieve the name of the key at a particular index. + * + * @param index index of the item to retrieve + * @returns the key at index, null if there is no key at that index + */ + DOMString key(in unsigned long index); + + /** + * Retrieve an item with a given key + * + * @param key key to retrieve + * @returns found data or empty string if the key was not found + */ + DOMString getItem([Null(Stringify)] in DOMString key); + + /** + * Assign a value with a key. If the key does not exist already, a new + * key is added associated with that value. If the key already exists, + * then the existing value is replaced with a new value. + * + * @param key key to set + * @param data data to associate with the key + */ + void setItem([Null(Stringify)] in DOMString key, [Null(Stringify)] in DOMString data); + + /** + * Remove a key and its corresponding value. + * + * @param key key to remove + */ + void removeItem([Null(Stringify)] in DOMString key); + + /** + * Clear the content of this storage bound to a domain + * or an origin. + */ + void clear(); +};