commit 28fe6a6ad05a0e7cc48be6e0382c65912b78d8c3
parent dac5415bd4929e67f9520b7d149148bba6e517b7
Author: Atila Butkovits <abutkovits@mozilla.com>
Date: Wed, 22 Oct 2025 19:38:20 +0300
Revert "Bug 1995753 - Hide the context menu options "Remove from Toolbar" and "Pin to Overflow Menu" if they are both disabled. r=nsharpley" for causing failures at browser_fullscreen_context_menu.js.
This reverts commit c476444271964862cc91284c341a019473e63008.
Revert "Bug 1995753 - Add "Turn on Vertical Tabs" option to the Menu Bar's context menu. r=nsharpley"
This reverts commit 395526c9cd3f973091f61da54b35522bc7619672.
Diffstat:
3 files changed, 24 insertions(+), 135 deletions(-)
diff --git a/browser/base/content/main-popupset.js b/browser/base/content/main-popupset.js
@@ -501,10 +501,8 @@ document.addEventListener(
ToolbarContextMenu.updateDownloadsAlwaysOpenPanel(event.target);
ToolbarContextMenu.updateExtensionsButtonContextMenu(event.target);
ToolbarContextMenu.updateExtension(event.target);
-
- // The following methods must be called last after updating the menu items above,
+ // hideLeadingSeparatorIfNeeded must be called last after updating the menu items above,
// as they may change which items are visible.
- ToolbarContextMenu.updateCustomizationItemsVisibility(event.target);
ToolbarContextMenu.hideLeadingSeparatorIfNeeded(event.target);
break;
case "pageActionContextMenu":
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
@@ -235,10 +235,6 @@ export var ToolbarContextMenu = {
let isTitlebarSpacer = toolbarItem?.classList.contains("titlebar-spacer");
- let isMenuBarSpacer =
- toolbarItem?.localName == "spacer" &&
- toolbarItem?.parentElement?.id == "toolbar-menubar";
-
// Show/hide fullscreen context menu items and set the
// autohide item's checked state to mirror the autohide pref.
showFullScreenViewContextMenuItems(popup);
@@ -248,8 +244,7 @@ export var ToolbarContextMenu = {
let showSidebarActions =
["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
toolbarItem?.localName == "toolbarspring" ||
- isTitlebarSpacer ||
- isMenuBarSpacer;
+ isTitlebarSpacer;
let toggleVerticalTabsItem = document.getElementById(
"toolbar-context-toggle-vertical-tabs"
@@ -272,9 +267,7 @@ export var ToolbarContextMenu = {
document.getElementById("customizationMenuSeparator").hidden =
toolbarItem?.id == "tabbrowser-tabs" ||
(toolbarItem?.localName == "toolbarspring" &&
- !CustomizationHandler.isCustomizing()) ||
- isMenuBarSpacer ||
- isTitlebarSpacer;
+ !CustomizationHandler.isCustomizing());
// View -> Toolbars menu doesn't have the moveToPanel or removeFromToolbar items.
if (!moveToPanel || !removeFromToolbar) {
@@ -309,18 +302,13 @@ export var ToolbarContextMenu = {
document.getElementById("toolbarNavigatorItemsMenuSeparator").hidden =
!showTabStripItems;
- let isSpacerItem =
- toolbarItem?.localName.includes("separator") ||
- toolbarItem?.localName.includes("spring") ||
- toolbarItem?.localName.includes("spacer") ||
- toolbarItem?.id.startsWith("customizableui-special");
-
- // For spacer items, customization items should only appear
- // when the user is actively customizing the toolbar.
- let shouldHideCustomizationItems =
- isSpacerItem && !CustomizationHandler.isCustomizing();
-
- if (shouldHideCustomizationItems) {
+ if (
+ !CustomizationHandler.isCustomizing() &&
+ (toolbarItem?.localName.includes("separator") ||
+ toolbarItem?.localName.includes("spring") ||
+ toolbarItem?.localName.includes("spacer") ||
+ toolbarItem?.id.startsWith("customizableui-special"))
+ ) {
moveToPanel.hidden = true;
removeFromToolbar.hidden = true;
menuSeparator.hidden = !showTabStripItems;
@@ -361,11 +349,7 @@ export var ToolbarContextMenu = {
} else {
moveToPanel.removeAttribute("disabled");
}
- if (shouldHideCustomizationItems) {
- removeFromToolbar.setAttribute("disabled", true);
- } else {
- removeFromToolbar.removeAttribute("disabled");
- }
+ removeFromToolbar.removeAttribute("disabled");
} else {
removeFromToolbar.setAttribute("disabled", true);
moveToPanel.setAttribute("disabled", true);
@@ -601,30 +585,4 @@ export var ToolbarContextMenu = {
firstVisibleElement.hidden = true;
}
},
-
- /**
- * Hides the "Move to Panel" and "Remove from Toolbar" items if both are
- * disabled. This prevents showing a menu with no useful items. If at least
- * one of the items is enabled, both items are shown for consistency.
- *
- * This is its own method to allow it to be called after other methods
- * that may change the disabled state of either menu item.
- *
- * @param {Element} popup
- * The toolbar-context-menu element for a window.
- */
- updateCustomizationItemsVisibility(popup) {
- let moveToPanel = popup.querySelector(".customize-context-moveToPanel");
- let removeFromToolbar = popup.querySelector(
- ".customize-context-removeFromToolbar"
- );
-
- if (
- removeFromToolbar?.getAttribute("disabled") &&
- moveToPanel.getAttribute("disabled")
- ) {
- removeFromToolbar.hidden = true;
- moveToPanel.hidden = true;
- }
- },
};
diff --git a/browser/components/customizableui/test/browser_customization_context_menus.js b/browser/components/customizableui/test/browser_customization_context_menus.js
@@ -149,6 +149,9 @@ add_task(async function titlebar_spacer_context() {
let expectedEntries = [
["#toolbar-context-toggle-vertical-tabs", true],
["---"],
+ [".customize-context-moveToPanel", false],
+ [".customize-context-removeFromToolbar", false],
+ ["---"],
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
@@ -180,7 +183,11 @@ add_task(async function empty_toolbar_context() {
});
await shownPromise;
- let expectedEntries = [];
+ let expectedEntries = [
+ [".customize-context-moveToPanel", false],
+ [".customize-context-removeFromToolbar", false],
+ ["---"],
+ ];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
@@ -211,7 +218,11 @@ add_task(async function urlbar_context() {
});
await shownPromise;
- let expectedEntries = [];
+ let expectedEntries = [
+ [".customize-context-moveToPanel", false],
+ [".customize-context-removeFromToolbar", false],
+ ["---"],
+ ];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
@@ -743,81 +754,3 @@ add_task(async function flexible_space_context_menu_customize_mode() {
ok(!lastSpring.parentNode, "Spring should have been removed successfully.");
await endCustomizing();
});
-
-// Menu Bar spacer context menu
-add_task(async function menubar_spacer_context_menu() {
- if (isOSX) {
- info("Skipping test that requires menu bar.");
- return;
- }
-
- let menubar = document.getElementById("toolbar-menubar");
- menubar.removeAttribute("autohide");
- ok(!menubar.hasAttribute("autohide"), "Menu bar is visible");
- let spacer = menubar.querySelector("spacer");
- ok(spacer, "Found menubar spacer");
- await waitForElementShown(spacer);
- let contextMenu = document.getElementById("toolbar-context-menu");
- let shownPromise = popupShown(contextMenu);
- EventUtils.synthesizeMouseAtCenter(spacer, {
- type: "contextmenu",
- button: 2,
- });
- await shownPromise;
-
- let expectedEntries = [
- ["#toolbar-context-toggle-vertical-tabs", true],
- ["---"],
- ["#toggle_toolbar-menubar", true],
- ["#toggle_PersonalToolbar", true],
- ["---"],
- [".viewCustomizeToolbar", true],
- ];
-
- checkContextMenu(contextMenu, expectedEntries);
- let hiddenPromise = popupHidden(contextMenu);
- contextMenu.hidePopup();
- await hiddenPromise;
- menubar.setAttribute("autohide", "true");
- ok(menubar.hasAttribute("autohide"), "Menu bar is hidden");
-});
-
-// Menu Bar spacer context menu in customization mode
-add_task(async function menu_bar_spacer_context_menu_customize_mode() {
- if (isOSX) {
- info("Skipping test that requires menu bar.");
- return;
- }
-
- await startCustomizing();
- let menubar = document.getElementById("toolbar-menubar");
- menubar.removeAttribute("autohide");
- ok(!menubar.hasAttribute("autohide"), "Menu bar is visible");
- let spacer = menubar.querySelector("spacer");
- ok(spacer, "Found menubar spacer");
- await waitForElementShown(spacer);
- let contextMenu = document.getElementById("toolbar-context-menu");
- let shownPromise = popupShown(contextMenu);
- EventUtils.synthesizeMouseAtCenter(spacer, {
- type: "contextmenu",
- button: 2,
- });
- await shownPromise;
-
- let expectedEntries = [
- ["#toolbar-context-toggle-vertical-tabs", true],
- ["---"],
- ["#toggle_toolbar-menubar", true],
- ["#toggle_PersonalToolbar", true],
- ["---"],
- [".viewCustomizeToolbar", false],
- ];
-
- checkContextMenu(contextMenu, expectedEntries);
- let hiddenPromise = popupHidden(contextMenu);
- contextMenu.hidePopup();
- await hiddenPromise;
- menubar.setAttribute("autohide", "true");
- ok(menubar.hasAttribute("autohide"), "Menu bar is hidden");
- await endCustomizing();
-});