mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 995206 - Sync app.update.{channel,url} settings with preferences. r=vingtetun
This commit is contained in:
parent
47b3b87ad6
commit
7696325ed4
@ -146,7 +146,6 @@ Components.utils.import('resource://gre/modules/ctypes.jsm');
|
||||
|
||||
let appInfo = Cc["@mozilla.org/xre/app-info;1"]
|
||||
.getService(Ci.nsIXULAppInfo);
|
||||
let update_channel = Services.prefs.getCharPref('app.update.channel');
|
||||
|
||||
// Get the hardware info and firmware revision from device properties.
|
||||
let hardware_info = null;
|
||||
@ -164,7 +163,6 @@ Components.utils.import('resource://gre/modules/ctypes.jsm');
|
||||
'deviceinfo.software': software,
|
||||
'deviceinfo.platform_version': appInfo.platformVersion,
|
||||
'deviceinfo.platform_build_id': appInfo.platformBuildID,
|
||||
'deviceinfo.update_channel': update_channel,
|
||||
'deviceinfo.hardware': hardware_info,
|
||||
'deviceinfo.firmware_revision': firmware_revision,
|
||||
'deviceinfo.product_model': product_model
|
||||
@ -546,6 +544,7 @@ function setUpdateTrackingId() {
|
||||
}
|
||||
setUpdateTrackingId();
|
||||
|
||||
|
||||
// ================ Debug ================
|
||||
(function Composer2DSettingToPref() {
|
||||
//layers.composer.enabled can be enabled in three ways
|
||||
@ -680,6 +679,12 @@ let settingsToObserve = {
|
||||
},
|
||||
'layers.draw-borders': false,
|
||||
'app.update.interval': 86400,
|
||||
'app.update.url': {
|
||||
resetToPref: true
|
||||
},
|
||||
'app.update.channel': {
|
||||
resetToPref: true
|
||||
},
|
||||
'debug.log-animations.enabled': {
|
||||
prefName: 'layers.offmainthreadcomposition.log-animations',
|
||||
defaultValue: false
|
||||
@ -689,34 +694,54 @@ let settingsToObserve = {
|
||||
for (let key in settingsToObserve) {
|
||||
let setting = settingsToObserve[key];
|
||||
|
||||
// By default, assume the setting name and the pref name are the same.
|
||||
let prefName = key;
|
||||
let defaultValue = setting;
|
||||
|
||||
// Check if the pref name has been overidden.
|
||||
if (typeof setting == 'object') {
|
||||
prefName = setting.prefName;
|
||||
defaultValue = setting.defaultValue;
|
||||
// Allow setting to contain flags redefining prefName and defaultValue.
|
||||
let prefName = setting.prefName || key;
|
||||
let defaultValue = setting.defaultValue;
|
||||
if (defaultValue === undefined) {
|
||||
defaultValue = setting;
|
||||
}
|
||||
|
||||
let prefs = Services.prefs;
|
||||
|
||||
// If requested, reset setting value and defaultValue to the pref value.
|
||||
if (setting.resetToPref) {
|
||||
switch (prefs.getPrefType(prefName)) {
|
||||
case Ci.nsIPrefBranch.PREF_BOOL:
|
||||
defaultValue = prefs.getBoolPref(prefName);
|
||||
break;
|
||||
|
||||
case Ci.nsIPrefBranch.PREF_INT:
|
||||
defaultValue = prefs.getIntPref(prefName);
|
||||
break;
|
||||
|
||||
case Ci.nsIPrefBranch.PREF_STRING:
|
||||
defaultValue = prefs.getCharPref(prefName);
|
||||
break;
|
||||
}
|
||||
|
||||
let setting = {};
|
||||
setting[key] = defaultValue;
|
||||
window.navigator.mozSettings.createLock().set(setting);
|
||||
}
|
||||
|
||||
// Figure out the right setter function for this type of pref.
|
||||
let setPref;
|
||||
switch (typeof defaultValue) {
|
||||
case 'boolean':
|
||||
SettingsListener.observe(key, defaultValue, function(value) {
|
||||
Services.prefs.setBoolPref(prefName, value);
|
||||
});
|
||||
break;
|
||||
|
||||
case 'string':
|
||||
SettingsListener.observe(key, defaultValue, function(value) {
|
||||
Services.prefs.setCharPref(prefName, value);
|
||||
});
|
||||
setPref = prefs.setBoolPref.bind(prefs);
|
||||
break;
|
||||
|
||||
case 'number':
|
||||
SettingsListener.observe(key, defaultValue, function(value) {
|
||||
Services.prefs.setIntPref(prefName, value);
|
||||
});
|
||||
setPref = prefs.setIntPref.bind(prefs);
|
||||
break;
|
||||
|
||||
case 'string':
|
||||
setPref = prefs.setCharPref.bind(prefs);
|
||||
break;
|
||||
}
|
||||
|
||||
SettingsListener.observe(key, defaultValue, function(value) {
|
||||
setPref(prefName, value);
|
||||
});
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user