From b747827b5db8e3946bcfb756b24914d4d05fcb00 Mon Sep 17 00:00:00 2001 From: William Durand Date: Tue, 1 Nov 2022 19:45:14 +0000 Subject: [PATCH] Bug 1796559 - Only open about:addons on primary click. r=zombie Differential Revision: https://phabricator.services.mozilla.com/D160329 --- browser/base/content/browser-addons.js | 7 +++++-- .../extensions/test/browser/browser_unified_extensions.js | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js index 0efa3bba861c..ddb8c6019aa3 100644 --- a/browser/base/content/browser-addons.js +++ b/browser/base/content/browser-addons.js @@ -1538,9 +1538,12 @@ var gUnifiedExtensions = { if (!CustomizationHandler.isCustomizing()) { let panel = this.panel; // The button should directly open `about:addons` when there is no active - // extension to show in the panel. + // extension to show in the panel... if ((await this.getActiveExtensions()).length === 0) { - await BrowserOpenAddonsMgr("addons://discover/"); + // ...but only for the primary click. + if (aEvent.button === 0) { + await BrowserOpenAddonsMgr("addons://discover/"); + } return; } diff --git a/browser/components/extensions/test/browser/browser_unified_extensions.js b/browser/components/extensions/test/browser/browser_unified_extensions.js index 524c680676c7..435af6700fac 100644 --- a/browser/components/extensions/test/browser/browser_unified_extensions.js +++ b/browser/components/extensions/test/browser/browser_unified_extensions.js @@ -382,6 +382,7 @@ add_task(async function test_button_opens_discopane_when_no_extension() { const { button } = win.gUnifiedExtensions; ok(button, "expected button"); + // Primary click should open about:addons. const tabPromise = BrowserTestUtils.waitForNewTab( win.gBrowser, "about:addons", @@ -403,6 +404,19 @@ add_task(async function test_button_opens_discopane_when_no_extension() { ); BrowserTestUtils.removeTab(tab); + // "Right-click" should open the context menu only. + const contextMenu = win.document.getElementById("toolbar-context-menu"); + const popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + EventUtils.synthesizeMouseAtCenter( + button, + { type: "contextmenu", button: 2 }, + win + ); + await popupShownPromise; + win.gUnifiedExtensions.getActiveExtensions = origGetActionExtensions; }); -- 2.11.4.GIT