42 lines
1.3 KiB
JavaScript
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;
|
|
}
|
|
},
|
|
},
|
|
};
|
|
}
|
|
};
|