blob: 4ecdc6f2632a0a13cfb156b9a48d9dce26406bb6 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
<script src="../resources/cookie-utilities.js"></script>
<body>
<script>
window.jsTestIsAsync = true;
description("Tests that Same-Site cookies for 127.0.0.1 can be set in an about:blank iframe and retrieved by the top-most frame.");
async function runTest()
{
let appendIframeAndWaitUntilLoadedPromise = new Promise((resolved) => {
let iframe = document.createElement("iframe");
iframe.onload = (e) => resolved(iframe);
iframe.src = "about:blank";
document.body.appendChild(iframe);
});
let iframe = await appendIframeAndWaitUntilLoadedPromise;
let didLoadScriptInIFrame = new Promise((resolve) => {
let script = iframe.contentDocument.createElement("script");
script.onload = resolve;
script.src = "../resources/cookie-utilities.js";
iframe.contentDocument.head.appendChild(script);
});
await didLoadScriptInIFrame;
// Set cookies in about:blank iframe.
let iframeContentWindow = iframe.contentWindow;
await iframeContentWindow.resetCookies();
await iframeContentWindow.setCookie("strict", "14", {"SameSite": "Strict", "Max-Age": 100, "path": "/"});
await iframeContentWindow.setCookie("implicit-strict", "14", {"SameSite": null, "Max-Age": 100, "path": "/"});
await iframeContentWindow.setCookie("strict-because-invalid-SameSite-value", "14", {"SameSite": "invalid", "Max-Age": 100, "path": "/"});
await iframeContentWindow.setCookie("lax", "14", {"SameSite": "Lax", "Max-Age": 100, "path": "/"});
// Fetch cookies in top-most frame.
debug("Cookies sent with HTTP request:");
await shouldHaveCookieWithValue("strict", "14");
await shouldHaveCookieWithValue("implicit-strict", "14");
await shouldHaveCookieWithValue("strict-because-invalid-SameSite-value", "14");
await shouldHaveCookieWithValue("lax", "14");
debug("<br>Cookies visible in DOM:");
shouldHaveDOMCookieWithValue("strict", "14");
shouldHaveDOMCookieWithValue("implicit-strict", "14");
shouldHaveDOMCookieWithValue("strict-because-invalid-SameSite-value", "14");
shouldHaveDOMCookieWithValue("lax", "14");
await iframeContentWindow.resetCookies();
finishJSTest();
}
runTest();
</script>
</body>
</html>