Bug 1154646 - Mobile about:config determines pref existence incorrectly, r=wesj

This commit is contained in:
Mark Capella 2015-04-29 02:03:38 -04:00
parent 6a8892ce51
commit 6db1c7edd0

View File

@ -87,8 +87,8 @@ var NewPrefDialog = {
}
// If item already in list, it's being changed, else added
let item = document.querySelector(".pref-item[name=\"" + CSS.escape(aPrefName) + "\"]");
if (item) {
let item = AboutConfig._list.filter(i => { return i.name == aPrefName });
if (item.length) {
this._positiveButton.textContent = gStringBundle.GetStringFromName("newPref.changeButton");
} else {
this._positiveButton.removeAttribute("disabled");
@ -471,22 +471,25 @@ var AboutConfig = {
return;
}
// If pref not already in list, refresh display as it's being added
// If pref onscreen, update in place.
let item = document.querySelector(".pref-item[name=\"" + CSS.escape(pref.name) + "\"]");
if (!item) {
document.location.reload();
if (item) {
item.setAttribute("value", pref.value);
let input = item.querySelector("input");
input.setAttribute("value", pref.value);
input.value = pref.value;
pref.default ?
item.querySelector(".reset").setAttribute("disabled", "true") :
item.querySelector(".reset").removeAttribute("disabled");
return;
}
// Else we're modifying a pref
item.setAttribute("value", pref.value);
let input = item.querySelector("input");
input.setAttribute("value", pref.value);
input.value = pref.value;
pref.default ?
item.querySelector(".reset").setAttribute("disabled", "true") :
item.querySelector(".reset").removeAttribute("disabled");
// If pref not already in list, refresh display as it's being added
let anyWhere = this._list.filter(i => { return i.name == pref.name });
if (!anyWhere.length) {
document.location.reload();
}
},
// Quick context menu helpers for about:config