Bug 1919223 - Restore sidebar-button when CustomizableUI is reset if sidebar revamp enabled r=sidebar-reviewers,kcochrane,sclements

Differential Revision: https://phabricator.services.mozilla.com/D232847
This commit is contained in:
Nikki Sharpley
2025-01-07 17:32:20 +00:00
parent c1db8cbd89
commit 96a8625c9d
3 changed files with 67 additions and 0 deletions

View File

@@ -4245,6 +4245,17 @@ var CustomizableUIInternal = {
break;
}
case kPrefSidebarRevampEnabled: {
// If we are changing the pref after startup, update the nav bar defaultPlacements to include/exclude sidebar-button
let props = gAreas.get(CustomizableUI.AREA_NAVBAR);
let defaults = props.get("defaultPlacements");
let sidebarButtonIndex = defaults.indexOf("sidebar-button");
if (sidebarRevampEnabled && sidebarButtonIndex < 0) {
defaults.unshift("sidebar-button");
} else if (!sidebarRevampEnabled && sidebarButtonIndex > -1) {
defaults.splice(sidebarButtonIndex, 1);
}
props.set("defaultPlacements", defaults);
gAreas.set(CustomizableUI.AREA_NAVBAR, props);
// We need to also disable vertical tabs if sidebar.revamp is no longer enabled
if (!sidebarRevampEnabled && verticalTabsEnabled) {
lazy.log.debug(

View File

@@ -344,6 +344,8 @@ skip-if = ["(verify && debug && (os == 'linux' || os == 'mac'))"]
["browser_searchbar_removal.js"]
["browser_sidebar_button_reset.js"]
["browser_sidebar_toggle.js"]
skip-if = ["verify"]

View File

@@ -0,0 +1,54 @@
/* Any copyright is dedicated to the Public Domain.
* https://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
registerCleanupFunction(async () => {
await SpecialPowers.popPrefEnv();
});
add_task(
async function reset_defaults_should_include_sidebar_button_in_revamp() {
console.log(CustomizableUI.getPlacementOfWidget("sidebar-button"));
ok(
!CustomizableUI.getPlacementOfWidget("sidebar-button"),
"Sidebar button is not in the nav bar initially"
);
CustomizableUI.addWidgetToArea("sidebar-button", "nav-bar");
is(
CustomizableUI.getPlacementOfWidget("sidebar-button").area,
CustomizableUI.AREA_NAVBAR,
"Sidebar button is in the nav bar"
);
CustomizableUI.removeWidgetFromArea("sidebar-button");
ok(
!CustomizableUI.getPlacementOfWidget("sidebar-button"),
"Sidebar button has been removed from the nav bar"
);
CustomizableUI.reset();
ok(
!CustomizableUI.getPlacementOfWidget("sidebar-button"),
"Sidebar button has not been restored to the nav bar"
);
await SpecialPowers.pushPrefEnv({
set: [["sidebar.revamp", true]],
});
is(
CustomizableUI.getPlacementOfWidget("sidebar-button").area,
CustomizableUI.AREA_NAVBAR,
"Sidebar button is in the nav bar when revamp pref is flipped"
);
CustomizableUI.removeWidgetFromArea("sidebar-button");
ok(
!CustomizableUI.getPlacementOfWidget("sidebar-button"),
"Sidebar button has been removed from the nav bar"
);
CustomizableUI.reset();
is(
CustomizableUI.getPlacementOfWidget("sidebar-button").area,
CustomizableUI.AREA_NAVBAR,
"Sidebar button has been restored to the nav bar"
);
}
);