|
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/. |
|
5 */ |
|
6 |
|
7 [JSImplementation="@mozilla.org/settingsLock;1", |
|
8 Pref="dom.mozSettings.enabled"] |
|
9 interface SettingsLock { |
|
10 // Whether this lock is invalid |
|
11 readonly attribute boolean closed; |
|
12 |
|
13 // Contains a JSON object with name/value pairs to be set. |
|
14 DOMRequest set(object settings); |
|
15 |
|
16 // Result contains the value of the setting. |
|
17 DOMRequest get(DOMString name); |
|
18 |
|
19 DOMRequest clear(); |
|
20 }; |
|
21 |
|
22 dictionary SettingChange { |
|
23 DOMString settingName; |
|
24 DOMString settingValue; |
|
25 }; |
|
26 |
|
27 callback SettingChangeCallback = void (SettingChange setting); |
|
28 |
|
29 [JSImplementation="@mozilla.org/settingsManager;1", |
|
30 NavigatorProperty="mozSettings", |
|
31 Pref="dom.mozSettings.enabled"] |
|
32 interface SettingsManager : EventTarget { |
|
33 SettingsLock createLock(); |
|
34 |
|
35 void addObserver(DOMString name, SettingChangeCallback callback); |
|
36 void removeObserver(DOMString name, SettingChangeCallback callback); |
|
37 |
|
38 attribute EventHandler onsettingchange; |
|
39 }; |