Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: dom/security/test/general/browser.toml
"use strict";
const HTTPS_PATH = getRootDirectory(gTestPath).replace(
);
const HTTP_PATH = getRootDirectory(gTestPath).replace(
// Disable eslint, since we explicitly need a insecure URL here for this test.
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
);
function checkCookies(expectedCookies = {}) {
info(JSON.stringify(expectedCookies));
return SpecialPowers.spawn(
gBrowser.selectedBrowser,
[expectedCookies],
async function (expectedCookies) {
let cookies = content.document.getElementById("msg").innerHTML;
info(cookies);
for (const [cookie, expected] of Object.entries(expectedCookies)) {
if (expected) {
ok(cookies.includes(cookie), `${cookie} should be sent`);
} else {
ok(!cookies.includes(cookie), `${cookie} should not be sent`);
}
}
}
);
}
add_task(async function bug1748693() {
waitForExplicitFinish();
// HTTPS-First would interfere with this test. We want to check wether
// cookies orignally set on a secure site without a "Secure" attribute
// get loaded on a insecure site. For that, we need to visit a
// insecure site, which would otherwise be upgraded by HTTPS-First.
await SpecialPowers.pushPrefEnv({
set: [["dom.security.https_first", false]],
});
let loaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
BrowserTestUtils.startLoadingURIString(
gBrowser,
`${HTTPS_PATH}file_same_site_cookies_bug1748693.sjs?setcookies`
);
await loaded;
loaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
BrowserTestUtils.startLoadingURIString(
gBrowser,
`${HTTP_PATH}file_same_site_cookies_bug1748693.sjs`
);
await loaded;
await checkCookies({ auth: true, auth_secure: false });
finish();
});