Files
tubestation/waterfox/browser/components/sidebar/experiments/syncPrefs.js
2025-11-06 14:13:52 +00:00

42 lines
1.3 KiB
JavaScript

/* 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/. */
/* Original: https://github.com/mozilla-extensions/webcompat-addon/blob/main/src/experiment-apis/aboutConfigPrefsChild.js */
'use strict';
this.syncPrefs = class extends ExtensionAPI {
getAPI(context) {
const extensionIDBase = context.extension.id.split('@')[0];
const extensionPrefNameBase = `extensions.${extensionIDBase}.`;
return {
syncPrefs: {
getBoolValue(name, defaultValue = false) {
try {
return Services.prefs.getBoolPref(`${extensionPrefNameBase}${name}`, defaultValue);
}
catch(_error) {
return defaultValue;
}
},
getStringValue(name, defaultValue = '') {
try {
return Services.prefs.getStringPref(`${extensionPrefNameBase}${name}`, defaultValue);
}
catch(_error) {
return defaultValue;
}
},
getIntValue(name, defaultValue = 0) {
try {
return Services.prefs.getIntPref(`${extensionPrefNameBase}${name}`, defaultValue);
}
catch(_error) {
return defaultValue;
}
},
},
};
}
};