diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js index 197570702704..91db40dc0838 100644 --- a/browser/components/sidebar/browser-sidebar.js +++ b/browser/components/sidebar/browser-sidebar.js @@ -203,13 +203,15 @@ var SidebarController = { } ); - this._sidebars.set("viewCustomizeSidebar", { - url: "chrome://browser/content/sidebar/sidebar-customize.html", - revampL10nId: "sidebar-menu-customize-label", - iconUrl: "chrome://global/skin/icons/settings.svg", - gleanEvent: Glean.sidebarCustomize.panelToggle, - visible: false, - }); + if (this.sidebarRevampEnabled) { + this._sidebars.set("viewCustomizeSidebar", { + url: "chrome://browser/content/sidebar/sidebar-customize.html", + revampL10nId: "sidebar-menu-customize-label", + iconUrl: "chrome://global/skin/icons/settings.svg", + gleanEvent: Glean.sidebarCustomize.panelToggle, + visible: false, + }); + } return this._sidebars; }, @@ -801,10 +803,16 @@ var SidebarController = { } if (!this._sidebars.get(this.lastOpenedId)) { this.lastOpenedId = this.DEFAULT_SIDEBAR_ID; + wasOpen = false; } this.updateToolbarButton(); this._inited = false; this.init(); + + // Reopen the panel in the new or old sidebar now that we've inited + if (wasOpen) { + this.toggle(); + } }, /** diff --git a/browser/components/sidebar/tests/browser/browser_sidebar_prefs.js b/browser/components/sidebar/tests/browser/browser_sidebar_prefs.js index b276b49acd40..3c08888281be 100644 --- a/browser/components/sidebar/tests/browser/browser_sidebar_prefs.js +++ b/browser/components/sidebar/tests/browser/browser_sidebar_prefs.js @@ -230,6 +230,28 @@ add_task(async function test_flip_revamp_pref() { await BrowserTestUtils.closeWindow(win); }); +/** + * Check that panels can stay open when flipping sidebar.revamp + */ +add_task(async function test_flip_revamp_pref_with_panel() { + await toggleSidebarPanel(window, "viewGenaiChatSidebar"); + ok(SidebarController.isOpen, "panel open with revamp"); + + await SpecialPowers.pushPrefEnv({ + set: [["sidebar.revamp", false]], + }); + + ok(SidebarController.isOpen, "panel still open after old"); + + await SpecialPowers.pushPrefEnv({ + set: [["sidebar.revamp", true]], + }); + + ok(SidebarController.isOpen, "panel still open after new"); + + await SidebarController.hide(); +}); + add_task(async function test_opening_panel_flips_has_used_pref() { Services.prefs.clearUserPref("sidebar.old-sidebar.has-used"); Services.prefs.clearUserPref("sidebar.new-sidebar.has-used");