commit 21a17d3c04ec26281a0244a378b8006d7b3401a9 parent 48b521fe0abe7919b3379a387dc95da409518580 Author: Cristina Horotan <chorotan@mozilla.com> Date: Thu, 16 Oct 2025 18:24:59 +0300 Revert "Bug 1993731 - Do not show the Ask an AI Chatbot menu item asynchronously. r=Mardak,firefox-ai-ml-reviewers,sclements" for causing bc failures contextmenu related This reverts commit 89f7e0c88faf97328ea3acc99b36faf0f55f7fe5. Diffstat:
5 files changed, 15 insertions(+), 24 deletions(-)
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs @@ -1381,7 +1381,7 @@ export class nsContextMenu { count = 0; } else if (!menuItem.hidden) { - if (menuItem.localName == "menu" && menuItem.menupopup) { + if (menuItem.localName == "menu") { this.showHideSeparators(menuItem.menupopup); } else if (menuItem.localName == "menugroup") { this.showHideSeparators(menuItem); diff --git a/browser/base/content/test/contextMenu/browser_contextmenu_contenteditable.js b/browser/base/content/test/contextMenu/browser_contextmenu_contenteditable.js @@ -23,8 +23,6 @@ const askChatMenu = [ // Need a blank entry here because the Ask Chat submenu is dynamically built with no ids. "", null, - "---", - null, ]; async function openMenuAndPaste(browser, useFormatting) { diff --git a/browser/base/content/test/contextMenu/contextmenu_common.js b/browser/base/content/test/contextMenu/contextmenu_common.js @@ -421,7 +421,7 @@ async function test_contextmenu(selector, menuItems, options = {}) { menuItems.includes("context-viewpartialsource-selection"); const askChatIndex = menuItems.indexOf("context-ask-chat"); - const isAskChatLastItem = menuItems.at(-6) === "context-ask-chat"; + const isAskChatLastItem = menuItems.at(-4) === "context-ask-chat"; if (askChatIndex >= 2) { hasSeparatorAboveAskChat = menuItems[askChatIndex - 2] === "---"; } diff --git a/browser/components/genai/GenAI.sys.mjs b/browser/components/genai/GenAI.sys.mjs @@ -670,10 +670,11 @@ export const GenAI = { contextTabs = null, } = contextMenu; + showItem(menu, false); + // DO NOT show menu when inside an extension panel const uri = browser.browsingContext.currentURI.spec; if (uri.startsWith("moz-extension:")) { - showItem(menu, false); return; } @@ -697,7 +698,6 @@ export const GenAI = { break; } if (!canShow) { - showItem(menu, false); return; } @@ -719,9 +719,6 @@ export const GenAI = { menu.menupopup?.remove(); } - // NOTE: Show the menu item synchronously, before any `await`. - showItem(menu, true); - // Determine if we have selection or should use page content const context = { contentType: "selection", @@ -809,6 +806,8 @@ export const GenAI = { Services.prefs.setBoolPref("browser.ml.chat.menu", false); } }); + + showItem(menu, true); }, /** diff --git a/browser/components/sidebar/tests/browser/browser_sidebar_context_menu.js b/browser/components/sidebar/tests/browser/browser_sidebar_context_menu.js @@ -330,22 +330,16 @@ add_task(async function test_tool_context_menu() { contextMenu.querySelector("menuseparator").hidden, "menuseparator is hidden" ); - }); - // The submenu is populated asynchronously. - await BrowserTestUtils.waitForMutationCondition( - contextMenu, - { childList: true, subtree: true, attributes: true }, - () => { - const toolMenuItems = [ - ...contextMenu.querySelectorAll("[customized-tool='true']"), - ]; - return ( - !!toolMenuItems.length && toolMenuItems.every(item => !item.hidden) - ); - } - ); - Assert.ok(true, "Tool menuitems are visible"); + const toolMenuItems = [ + ...contextMenu.querySelectorAll("[customized-tool='true']"), + ]; + Assert.equal( + !!toolMenuItems.length && toolMenuItems.every(item => !item.hidden), + true, + "Tool menuitems are visible" + ); + }); contextMenu.hidePopup();