diff options
Diffstat (limited to 'toolkit/components/contentprefs/ContentPrefUtils.sys.mjs')
-rw-r--r-- | toolkit/components/contentprefs/ContentPrefUtils.sys.mjs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/toolkit/components/contentprefs/ContentPrefUtils.sys.mjs b/toolkit/components/contentprefs/ContentPrefUtils.sys.mjs new file mode 100644 index 0000000000..0a17913d99 --- /dev/null +++ b/toolkit/components/contentprefs/ContentPrefUtils.sys.mjs @@ -0,0 +1,54 @@ +/* vim: set ts=2 sw=2 sts=2 et tw=80: */ +/* 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/. */ + +export function ContentPref(domain, name, value) { + this.domain = domain; + this.name = name; + this.value = value; +} + +ContentPref.prototype = { + QueryInterface: ChromeUtils.generateQI(["nsIContentPref"]), +}; + +export function cbHandleResult(callback, pref) { + safeCallback(callback, "handleResult", [pref]); +} + +export function cbHandleCompletion(callback, reason) { + safeCallback(callback, "handleCompletion", [reason]); +} + +export function cbHandleError(callback, nsresult) { + safeCallback(callback, "handleError", [nsresult]); +} + +export function safeCallback(callbackObj, methodName, args) { + if (!callbackObj || typeof callbackObj[methodName] != "function") { + return; + } + try { + callbackObj[methodName].apply(callbackObj, args); + } catch (err) { + console.error(err); + } +} + +export const _methodsCallableFromChild = Object.freeze([ + ["getByName", ["name", "context", "callback"]], + ["getByDomainAndName", ["domain", "name", "context", "callback"]], + ["getBySubdomainAndName", ["domain", "name", "context", "callback"]], + ["getGlobal", ["name", "context", "callback"]], + ["set", ["domain", "name", "value", "context", "callback"]], + ["setGlobal", ["name", "value", "context", "callback"]], + ["removeByDomainAndName", ["domain", "name", "context", "callback"]], + ["removeBySubdomainAndName", ["domain", "name", "context", "callback"]], + ["removeGlobal", ["name", "context", "callback"]], + ["removeByDomain", ["domain", "context", "callback"]], + ["removeBySubdomain", ["domain", "context", "callback"]], + ["removeByName", ["name", "context", "callback"]], + ["removeAllDomains", ["context", "callback"]], + ["removeAllGlobals", ["context", "callback"]], +]); |