tor-browser

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

commit 18dba7812f7e4d84e0cf53eed1d3775034176498
parent c13924a9e0820e7661fa0c53e3b4c29869ab3c09
Author: Sandra Qu <squiles@mozilla.com>
Date:   Mon, 17 Nov 2025 18:01:47 +0000

Bug 1990924 - Fix test to check for non-repeated cert error advanced container and button state across multiple tabs r=niklas

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

Diffstat:
Mtoolkit/components/certviewer/tests/browser/browser_checkNonRepeatedCertTabs.js | 85++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 84 insertions(+), 1 deletion(-)

diff --git a/toolkit/components/certviewer/tests/browser/browser_checkNonRepeatedCertTabs.js b/toolkit/components/certviewer/tests/browser/browser_checkNonRepeatedCertTabs.js @@ -14,7 +14,13 @@ function checkCertTabs() { Assert.equal(certificatePages, 1, "Do not open repeated certificate pages!"); } -add_task(async function testBadCert() { +// Security CertError Felt Privacy set to false +add_task(async function testBadCert_feltPrivacyToFalse() { + // This will set the correct preference and automatically handle cleanup + await SpecialPowers.pushPrefEnv({ + set: [["security.certerrors.felt-privacy-v1", false]], + }); + info("Testing bad cert"); let tab = await openErrorPage(); @@ -47,6 +53,7 @@ add_task(async function testBadCert() { gBrowser.removeCurrentTab(); // closes about:certificate gBrowser.removeCurrentTab(); // closes https://expired.example.com/ + await SpecialPowers.popPrefEnv(); }); add_task(async function testGoodCert() { @@ -84,6 +91,82 @@ add_task(async function testGoodCert() { gBrowser.removeCurrentTab(); }); +// Security CertError Felt Privacy set to true +add_task(async function testBadCert_feltPrivacyToTrue() { + // This will set the correct preference and automatically handle cleanup + await SpecialPowers.pushPrefEnv({ + set: [["security.certerrors.felt-privacy-v1", true]], + }); + + info("Testing bad cert"); + + let tab = await openErrorPage(); + let loaded = BrowserTestUtils.waitForNewTab(gBrowser, null, true); + + for (let i = 0; i < 2; i++) { + gBrowser.selectedTab = tab; + // try opening two certificates that are the same + await SpecialPowers.spawn(tab.linkedBrowser, [], async function () { + const netErrorCard = + content.document.querySelector("net-error-card").wrappedJSObject; + await netErrorCard.getUpdateComplete(); + + Assert.ok( + netErrorCard.advancedButton, + "The advanced button should exist." + ); + + // Click the advancedButton to show the advanced section if it is not + // already showing + if (!netErrorCard.advancedShowing) { + EventUtils.synthesizeMouseAtCenter( + netErrorCard.advancedButton, + {}, + content + ); + } + + await ContentTaskUtils.waitForCondition( + () => + netErrorCard.viewCertificate && + ContentTaskUtils.isVisible(netErrorCard.viewCertificate), + "Wait for the viewCertificate link." + ); + + Assert.ok( + netErrorCard.advancedShowing, + "Advanced showing attribute should be true" + ); + + Assert.ok( + netErrorCard.viewCertificate, + "The viewCertificate button should exist." + ); + + EventUtils.synthesizeMouseAtCenter( + netErrorCard.viewCertificate, + {}, + content + ); + }); + + let certTab = await loaded; + + Assert.equal( + gBrowser.selectedTab, + certTab, + "The selected tab should be the about:certificate tab." + ); + } + + checkCertTabs(); + + gBrowser.removeCurrentTab(); // closes about:certificate + gBrowser.removeCurrentTab(); // closes https://expired.example.com/ + await SpecialPowers.popPrefEnv(); +}); + +// Works for both Security CertError Felt Privacy set to true and false add_task(async function testPreferencesCert() { info("Testing preferences cert"); let url = "about:preferences#privacy";