diff -r 000000000000 -r 6474c204b198 dom/webidl/DataStoreImpl.webidl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/webidl/DataStoreImpl.webidl 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/. + */ + +// TODO Bug 957086 - The DataStoreImpl WebIDL will be removed once the +// DataStore API is fully rewritten in C++ (i.e. should be +// directly implemented by the DataStore WebIDL). + +[HeaderFile="mozilla/dom/DataStore.h", + Func="mozilla::dom::DataStore::EnabledForScope", + JSImplementation="@mozilla.org/dom/datastore-impl;1"] +interface DataStoreImpl { + void setEventTarget(EventTarget 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 + Promise get(DataStoreKey... id); + + // Promise + Promise put(any obj, DataStoreKey id, optional DOMString revisionId = ""); + + // Promise + Promise add(any obj, optional DataStoreKey id, + optional DOMString revisionId = ""); + + // Promise + Promise remove(DataStoreKey id, optional DOMString revisionId = ""); + + // Promise + Promise clear(optional DOMString revisionId = ""); + + readonly attribute DOMString revisionId; + + // Promise + Promise getLength(); + + [NewObject] + DataStoreCursor sync(optional DOMString revisionId = ""); +}; + + +// TODO Bug 957086 - The DataStoreCursorImpl WebIDL will be removed once the +// DataStore API is fully rewritten in C++ (i.e. should be +// directly implemented by the DataStoreCursor WebIDL). + +[HeaderFile="mozilla/dom/DataStore.h", + Func="mozilla::dom::DataStore::EnabledForScope", + JSImplementation="@mozilla.org/dom/datastore-cursor-impl;1"] +interface DataStoreCursorImpl { + // the DataStore + readonly attribute DataStore store; + + // Promise + Promise next(); + + void close(); +};