2013-10-02 21:27:15 +04:00
|
|
|
/* -*- 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/.
|
|
|
|
*/
|
|
|
|
|
2013-12-19 13:07:21 +04:00
|
|
|
typedef (DOMString or unsigned long) DataStoreKey;
|
|
|
|
|
2014-02-06 21:44:03 +04:00
|
|
|
[Func="Navigator::HasDataStoreSupport",
|
2013-10-02 21:27:15 +04:00
|
|
|
JSImplementation="@mozilla.org/dom/datastore;1"]
|
|
|
|
interface DataStore : EventTarget {
|
|
|
|
// Returns the label of the DataSource.
|
|
|
|
readonly attribute DOMString name;
|
|
|
|
|
|
|
|
// Returns the origin of the DataSource (e.g., 'facebook.com').
|
|
|
|
// This value is the manifest URL of the owner app.
|
|
|
|
readonly attribute DOMString owner;
|
|
|
|
|
|
|
|
// is readOnly a F(current_app, datastore) function? yes
|
|
|
|
readonly attribute boolean readOnly;
|
|
|
|
|
|
|
|
// Promise<any>
|
2013-12-19 13:07:21 +04:00
|
|
|
Promise get(DataStoreKey... id);
|
2013-10-02 21:27:15 +04:00
|
|
|
|
|
|
|
// Promise<void>
|
2013-12-19 13:07:21 +04:00
|
|
|
Promise put(any obj, DataStoreKey id);
|
2013-10-02 21:27:15 +04:00
|
|
|
|
2013-12-19 13:07:21 +04:00
|
|
|
// Promise<DataStoreKey>
|
|
|
|
Promise add(any obj, optional DataStoreKey id);
|
2013-10-02 21:27:15 +04:00
|
|
|
|
|
|
|
// Promise<boolean>
|
2013-12-19 13:07:21 +04:00
|
|
|
Promise remove(DataStoreKey id);
|
2013-10-02 21:27:15 +04:00
|
|
|
|
|
|
|
// Promise<void>
|
|
|
|
Promise clear();
|
|
|
|
|
|
|
|
readonly attribute DOMString revisionId;
|
|
|
|
|
|
|
|
attribute EventHandler onchange;
|
|
|
|
|
|
|
|
// Promise<unsigned long>
|
|
|
|
Promise getLength();
|
2013-10-03 00:39:54 +04:00
|
|
|
|
|
|
|
DataStoreCursor sync(optional DOMString revisionId = "");
|
2013-10-02 21:27:15 +04:00
|
|
|
};
|
|
|
|
|
2013-10-03 00:39:54 +04:00
|
|
|
[Pref="dom.datastore.enabled",
|
|
|
|
JSImplementation="@mozilla.org/dom/datastore-cursor;1"]
|
|
|
|
interface DataStoreCursor {
|
|
|
|
|
|
|
|
// the DataStore
|
|
|
|
readonly attribute DataStore store;
|
|
|
|
|
|
|
|
// Promise<DataStoreTask>
|
|
|
|
Promise next();
|
|
|
|
|
|
|
|
void close();
|
|
|
|
};
|
|
|
|
|
|
|
|
enum DataStoreOperation {
|
|
|
|
"add",
|
|
|
|
"update",
|
|
|
|
"remove",
|
|
|
|
"clear",
|
|
|
|
"done"
|
|
|
|
};
|
|
|
|
|
|
|
|
dictionary DataStoreTask {
|
|
|
|
DOMString revisionId;
|
|
|
|
|
|
|
|
DataStoreOperation operation;
|
2013-12-19 13:07:21 +04:00
|
|
|
DataStoreKey id;
|
2013-10-03 00:39:54 +04:00
|
|
|
any data;
|
|
|
|
};
|