I audited a bit and non-test things use the script setter, which already removed the attribute, so should be fine / no behavior change in that regard. Tab groups used the collapsed attribute for different purposes, so that took a bit of digging. This came up while reviewing some code for the native menubar code on Linux, which uses SetBoolAttr() and doesn't hide the menubar now: https://searchfox.org/mozilla-central/rev/86878e73a24fe32ea09dbae5b55362efaf7485c8/widget/gtk/NativeMenuGtk.cpp#770,785,790 That is disabled by default tho. Differential Revision: https://phabricator.services.mozilla.com/D258543
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Tests that toggling prefs immediately (de)activates the relevant menuitem
|
|
|
|
var gItemsToTest = {
|
|
menu_browserToolbox: [
|
|
"devtools.chrome.enabled",
|
|
"devtools.debugger.remote-enabled",
|
|
],
|
|
};
|
|
|
|
function expectedAttributeValueFromPrefs(prefs) {
|
|
return prefs.every(pref => Services.prefs.getBoolPref(pref));
|
|
}
|
|
|
|
function checkItem(el, prefs) {
|
|
const expectedValue = expectedAttributeValueFromPrefs(prefs);
|
|
is(
|
|
el.hasAttribute("disabled"),
|
|
!expectedValue,
|
|
"disabled attribute should match current pref state"
|
|
);
|
|
is(
|
|
el.hasAttribute("hidden"),
|
|
!expectedValue,
|
|
"hidden attribute should match current pref state"
|
|
);
|
|
}
|
|
|
|
function test() {
|
|
for (const k in gItemsToTest) {
|
|
const el = document.getElementById(k);
|
|
const prefs = gItemsToTest[k];
|
|
checkItem(el, prefs);
|
|
for (const pref of prefs) {
|
|
Services.prefs.setBoolPref(pref, !Services.prefs.getBoolPref(pref));
|
|
checkItem(el, prefs);
|
|
Services.prefs.setBoolPref(pref, !Services.prefs.getBoolPref(pref));
|
|
checkItem(el, prefs);
|
|
}
|
|
}
|
|
finish();
|
|
}
|