browser_bug431826.js (3122B)
1 add_task(async function () { 2 for (let feltPrivacyEnabled of [false, true]) { 3 await SpecialPowers.pushPrefEnv({ 4 set: [["security.certerrors.felt-privacy-v1", feltPrivacyEnabled]], 5 }); 6 7 gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); 8 9 let promise = BrowserTestUtils.waitForErrorPage(gBrowser.selectedBrowser); 10 BrowserTestUtils.startLoadingURIString( 11 gBrowser, 12 "https://nocert.example.com/" 13 ); 14 await promise; 15 16 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async () => { 17 // Confirm that we are displaying the contributed error page, not the default 18 let uri = content.document.documentURI; 19 Assert.ok( 20 uri.startsWith("about:certerror"), 21 "Broken page should go to about:certerror, not about:neterror" 22 ); 23 }); 24 25 if (feltPrivacyEnabled) { 26 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async () => { 27 let netErrorCard = 28 content.document.querySelector("net-error-card").wrappedJSObject; 29 await netErrorCard.getUpdateComplete(); 30 Assert.ok( 31 !netErrorCard.advancedShowing, 32 "Advanced showing attribute should be true" 33 ); 34 Assert.ok(!netErrorCard.advancedContainer); 35 }); 36 } else { 37 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async () => { 38 let div = content.document.getElementById("badCertAdvancedPanel"); 39 // Confirm that the expert section is collapsed 40 Assert.ok(div, "Advanced content div should exist"); 41 Assert.equal( 42 div.ownerGlobal.getComputedStyle(div).display, 43 "none", 44 "Advanced content should not be visible by default" 45 ); 46 }); 47 } 48 49 // Tweak the expert mode pref 50 Services.prefs.setBoolPref("browser.xul.error_pages.expert_bad_cert", true); 51 52 promise = BrowserTestUtils.waitForErrorPage(gBrowser.selectedBrowser); 53 gBrowser.reload(); 54 await promise; 55 56 if (feltPrivacyEnabled) { 57 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async () => { 58 let netErrorCard = 59 content.document.querySelector("net-error-card").wrappedJSObject; 60 await netErrorCard.getUpdateComplete(); 61 Assert.ok( 62 netErrorCard.advancedShowing, 63 "Advanced showing attribute should be true" 64 ); 65 Assert.ok(ContentTaskUtils.isVisible(netErrorCard.advancedContainer)); 66 }); 67 } else { 68 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async () => { 69 let div = content.document.getElementById("badCertAdvancedPanel"); 70 Assert.ok(div, "Advanced content div should exist"); 71 Assert.equal( 72 div.ownerGlobal.getComputedStyle(div).display, 73 "block", 74 "Advanced content should be visible by default" 75 ); 76 }); 77 } 78 79 // Clean up 80 gBrowser.removeCurrentTab(); 81 if ( 82 Services.prefs.prefHasUserValue("browser.xul.error_pages.expert_bad_cert") 83 ) { 84 Services.prefs.clearUserPref("browser.xul.error_pages.expert_bad_cert"); 85 } 86 87 await SpecialPowers.popPrefEnv(); 88 } 89 });