48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
|
|
const ONION_BASE = "http://example.onion/";
|
|
|
|
const ONION_PATH =
|
|
getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content/",
|
|
ONION_BASE
|
|
) + "file_empty.html";
|
|
|
|
const ECHOER_PATH =
|
|
getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content/",
|
|
"https://example.com/"
|
|
) + "file_referrer_echoer.sjs";
|
|
|
|
function getReferrer(browser) {
|
|
return SpecialPowers.spawn(browser, [ECHOER_PATH], async url =>
|
|
content.fetch(url).then(response => response.text())
|
|
);
|
|
}
|
|
|
|
async function runTest(hideOnionSource) {
|
|
const tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, ONION_PATH);
|
|
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["network.http.referer.hideOnionSource", hideOnionSource]],
|
|
});
|
|
|
|
const referer = await getReferrer(tab.linkedBrowser);
|
|
const expectedReferrer = hideOnionSource ? "" : ONION_BASE;
|
|
const expectedReferrerMessage = hideOnionSource ? "hidden" : "visible";
|
|
is(
|
|
referer,
|
|
expectedReferrer,
|
|
`The referrer should be ${expectedReferrerMessage}. Got: ${referer}`
|
|
);
|
|
|
|
await SpecialPowers.popPrefEnv();
|
|
BrowserTestUtils.removeTab(tab);
|
|
}
|
|
|
|
add_task(async function test_onion_referrer_visible() {
|
|
await runTest(false);
|
|
});
|
|
|
|
add_task(async function test_onion_referrer_hidden() {
|
|
await runTest(true);
|
|
});
|