tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 46b34254a2dfc01e2f5de5954066ddf1094a1811
parent 30e0438d2ce8fdd56852a2a1c40518a95a8b3199
Author: Luca Greco <lgreco@mozilla.com>
Date:   Thu, 13 Nov 2025 20:34:09 +0000

Bug 1999951 - Fix frequent failures hit by test_ext_networkStatus.js xpcshell test while xpcshell tests are executed in parallel. r=willdurand

Differential Revision: https://phabricator.services.mozilla.com/D272443

Diffstat:
Mtoolkit/components/extensions/test/xpcshell/test_ext_networkStatus.js | 24++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_networkStatus.js b/toolkit/components/extensions/test/xpcshell/test_ext_networkStatus.js @@ -5,6 +5,12 @@ const Cm = Components.manager; const uuidGenerator = Services.uuid; AddonTestUtils.init(this); +AddonTestUtils.createAppInfo( + "xpcshell@tests.mozilla.org", + "XPCShell", + "1", + "42" +); var mockNetworkStatusService = { contractId: "@mozilla.org/network/network-link-service;1", @@ -97,6 +103,10 @@ var mockNetworkStatusService = { }, }; +add_setup(async () => { + await AddonTestUtils.promiseStartupManager(); +}); + // nsINetworkLinkService is not directly testable. With the mock service above, // we just exercise a couple small things here to validate the api works somewhat. add_task(async function test_networkStatus() { @@ -174,9 +184,7 @@ add_task( pref_set: [["extensions.experiments.enabled", false]], }, async function test_networkStatus_permission() { - let extension = ExtensionTestUtils.loadExtension({ - temporarilyInstalled: true, - isPrivileged: false, + let xpiFile = AddonTestUtils.createTempWebExtensionFile({ manifest: { browser_specific_settings: { gecko: { id: "networkstatus-permission@tests.mozilla.org" }, @@ -186,10 +194,13 @@ add_task( }); ExtensionTestUtils.failOnSchemaWarnings(false); let { messages } = await promiseConsoleOutput(async () => { + const { AddonManager } = ChromeUtils.importESModule( + "resource://gre/modules/AddonManager.sys.mjs" + ); await Assert.rejects( - extension.startup(), - /Using the privileged permission/, - "Startup failed with privileged permission" + AddonManager.installTemporaryAddon(xpiFile), + /Extension is invalid/, + "Install failed with privileged permission" ); }); ExtensionTestUtils.failOnSchemaWarnings(true); @@ -205,5 +216,6 @@ add_task( }, true ); + xpiFile.remove(true); } );