blob: 93acffef11ae23cf72088f9962da24e27911d11f [file] [log] [blame]
<!DOCTYPE html>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/common/security-features/resources/common.sub.js></script>
<script src=/fetch/metadata/resources/helper.js></script>
<body>
<script>
// These tests reuse the `referrer-policy` infrastructure to load images that
// encode their request headers in their pixels. Fun stuff!
promise_test(() =>
requestViaImage(
"https://{{host}}:{{ports[https][0]}}/common/security-features/subresource/image.py")
.then(result => {
headers = result.headers;
got = {
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"],
"dest": headers["sec-fetch-dest"]
};
assert_header_equals(got, {
"site": "same-origin",
// Note that we're using `undefined` here, as opposed to "" elsewhere because of the way
// that `image.py` encodes data.
"user": undefined,
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
"dest": "image"
}, "Same-origin image");
}),
"Same-origin image");
promise_test(() =>
requestViaImage(
"https://{{hosts[][www]}}:{{ports[https][0]}}/common/security-features/subresource/image.py")
.then(result => {
headers = result.headers;
got = {
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"],
"dest": headers["sec-fetch-dest"]
};
assert_header_equals(got, {
"site": "same-site",
// Note that we're using `undefined` here, as opposed to "" elsewhere because of the way
// that `image.py` encodes data.
"user": undefined,
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
"dest": "image"
}, "Same-site image");
}),
"Same-site image");
promise_test(() =>
requestViaImage(
"https://{{hosts[alt][www]}}:{{ports[https][0]}}/common/security-features/subresource/image.py")
.then(result => {
headers = result.headers;
got = {
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"],
"dest": headers["sec-fetch-dest"]
};
assert_header_equals(got, {
"site": "cross-site",
// Note that we're using `undefined` here, as opposed to "" elsewhere because of the way
// that `image.py` encodes data.
"user": undefined,
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
"dest": "image"
}, "Cross-site image");
}),
"Cross-site image");
</script>