Files
sousa-gecko/devtools/client/framework/test/browser_dynamic_tool_enabling.js
Emilio Cobos Álvarez 0aa2101448 Bug 1979014 - Make some XUL attributes (hidden/collapsed/autofocus) regular bool attributes. r=dao,desktop-theme-reviewers,credential-management-reviewers,devtools-reviewers,tabbrowser-reviewers,places-reviewers,nchevobbe,search-reviewers,daleharvey,dimi
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
2025-07-28 16:13:46 +00:00

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();
}