1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
7 [JSImplementation="@mozilla.org/settingsLock;1",
8 Pref="dom.mozSettings.enabled"]
9 interface SettingsLock : EventTarget {
10 // Whether this lock is invalid
11 readonly attribute boolean closed;
13 // Contains a JSON object with name/value pairs to be set.
14 DOMRequest set(object settings);
16 // Result contains the value of the setting.
17 DOMRequest get(DOMString name);
20 attribute EventHandler onsettingstransactionsuccess;
21 attribute EventHandler onsettingstransactionfailure;
24 dictionary SettingChange {
25 DOMString settingName;
26 DOMString settingValue;
29 callback SettingChangeCallback = void (SettingChange setting);
31 [JSImplementation="@mozilla.org/settingsManager;1",
32 NavigatorProperty="mozSettings",
33 Pref="dom.mozSettings.enabled"]
34 interface SettingsManager : EventTarget {
35 SettingsLock createLock();
37 void addObserver(DOMString name, SettingChangeCallback callback);
38 void removeObserver(DOMString name, SettingChangeCallback callback);
40 attribute EventHandler onsettingchange;