tor-browser

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

commit 088c9f9f4254c9f821cb284cb181ed4912dcc40e
parent 02f62b103e97ac3e3f9cfd3ee747de5f7d5a8e54
Author: kpatenio <kpatenio@mozilla.com>
Date:   Wed, 19 Nov 2025 18:55:25 +0000

Bug 1999848 — wait for proxy start and stop events to fix intermittent browser_ipprotection_status_card.js r=ip-protection-reviewers,rking

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

Diffstat:
Mbrowser/components/ipprotection/tests/browser/browser_ipprotection_status_card.js | 29+++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/browser/components/ipprotection/tests/browser/browser_ipprotection_status_card.js b/browser/components/ipprotection/tests/browser/browser_ipprotection_status_card.js @@ -160,15 +160,25 @@ add_task(async function test_ipprotection_events_on_toggle() { let toggle = statusCard?.connectionToggleEl; Assert.ok(toggle, "Status card connection toggle should be present"); + let startedProxyPromise = BrowserTestUtils.waitForEvent( + IPPProxyManager, + "IPPProxyManager:StateChanged", + false, + () => !!IPPProxyManager.activatedAt + ); let enableEventPromise = BrowserTestUtils.waitForEvent( window, userEnableEventName ); toggle.click(); + info("Clicked toggle to turn VPN on"); - await enableEventPromise; - Assert.ok("Enable event was found after clicking the toggle"); + await Promise.all([startedProxyPromise, enableEventPromise]); + Assert.ok( + true, + "Enable event and proxy started event were found after clicking the toggle" + ); let userEnabledPref = Services.prefs.getBoolPref( "browser.ipProtection.userEnabled", @@ -176,15 +186,26 @@ add_task(async function test_ipprotection_events_on_toggle() { ); Assert.equal(userEnabledPref, true, "userEnabled pref should be set to true"); + let stoppedProxyPromise = BrowserTestUtils.waitForEvent( + IPPProxyManager, + "IPPProxyManager:StateChanged", + false, + () => !IPPProxyManager.activatedAt + ); let disableEventPromise = BrowserTestUtils.waitForEvent( window, userDisableEventName ); + toggle = statusCard?.connectionToggleEl; toggle.click(); + info("Clicked toggle to turn VPN off"); - await disableEventPromise; - Assert.ok("Disable event was found after clicking the toggle"); + await Promise.all([stoppedProxyPromise, disableEventPromise]); + Assert.ok( + true, + "Disable event and stopped proxy event were found after clicking the toggle" + ); userEnabledPref = Services.prefs.getBoolPref( "browser.ipProtection.userEnabled",