1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/webidl/SettingsManager.webidl Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,39 @@ 1.4 +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this file, 1.7 + * You can obtain one at http://mozilla.org/MPL/2.0/. 1.8 + */ 1.9 + 1.10 +[JSImplementation="@mozilla.org/settingsLock;1", 1.11 + Pref="dom.mozSettings.enabled"] 1.12 +interface SettingsLock { 1.13 + // Whether this lock is invalid 1.14 + readonly attribute boolean closed; 1.15 + 1.16 + // Contains a JSON object with name/value pairs to be set. 1.17 + DOMRequest set(object settings); 1.18 + 1.19 + // Result contains the value of the setting. 1.20 + DOMRequest get(DOMString name); 1.21 + 1.22 + DOMRequest clear(); 1.23 +}; 1.24 + 1.25 +dictionary SettingChange { 1.26 + DOMString settingName; 1.27 + DOMString settingValue; 1.28 +}; 1.29 + 1.30 +callback SettingChangeCallback = void (SettingChange setting); 1.31 + 1.32 +[JSImplementation="@mozilla.org/settingsManager;1", 1.33 + NavigatorProperty="mozSettings", 1.34 + Pref="dom.mozSettings.enabled"] 1.35 +interface SettingsManager : EventTarget { 1.36 + SettingsLock createLock(); 1.37 + 1.38 + void addObserver(DOMString name, SettingChangeCallback callback); 1.39 + void removeObserver(DOMString name, SettingChangeCallback callback); 1.40 + 1.41 + attribute EventHandler onsettingchange; 1.42 +};