browser_test_onion_referrer.js (1349B)
1 // eslint-disable-next-line @microsoft/sdl/no-insecure-url 2 const ONION_BASE = "http://example.onion/"; 3 4 const ONION_PATH = 5 getRootDirectory(gTestPath).replace( 6 "chrome://mochitests/content/", 7 ONION_BASE 8 ) + "file_empty.html"; 9 10 const ECHOER_PATH = 11 getRootDirectory(gTestPath).replace( 12 "chrome://mochitests/content/", 13 "https://example.com/" 14 ) + "file_referrer_echoer.sjs"; 15 16 function getReferrer(browser) { 17 return SpecialPowers.spawn(browser, [ECHOER_PATH], async url => 18 content.fetch(url).then(response => response.text()) 19 ); 20 } 21 22 async function runTest(hideOnionSource) { 23 const tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, ONION_PATH); 24 25 await SpecialPowers.pushPrefEnv({ 26 set: [["network.http.referer.hideOnionSource", hideOnionSource]], 27 }); 28 29 const referer = await getReferrer(tab.linkedBrowser); 30 const expectedReferrer = hideOnionSource ? "" : ONION_BASE; 31 const expectedReferrerMessage = hideOnionSource ? "hidden" : "visible"; 32 is( 33 referer, 34 expectedReferrer, 35 `The referrer should be ${expectedReferrerMessage}. Got: ${referer}` 36 ); 37 38 await SpecialPowers.popPrefEnv(); 39 BrowserTestUtils.removeTab(tab); 40 } 41 42 add_task(async function test_onion_referrer_visible() { 43 await runTest(false); 44 }); 45 46 add_task(async function test_onion_referrer_hidden() { 47 await runTest(true); 48 });