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:
@@ -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(
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"
|
||||
);
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user