37 lines
1.4 KiB
HTML
37 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<body>
|
|
<script>
|
|
function nextMessage() {
|
|
return new Promise((resolve, reject) => {
|
|
window.addEventListener('message', e => resolve(e.data), {once: true});
|
|
});
|
|
}
|
|
|
|
promise_test(async () => {
|
|
let iframe = document.createElement('iframe');
|
|
iframe.setAttribute('src', '/common/security-features/subresource/document.py?first')
|
|
iframe.setAttribute('referrerpolicy', 'no-referrer');
|
|
document.body.appendChild(iframe);
|
|
|
|
try {
|
|
{
|
|
let {referrer: documentReferrer, headers: {referer: httpReferrer}} = await nextMessage();
|
|
assert_equals(httpReferrer, undefined, 'expected no HTTP Referer header on initial load');
|
|
assert_equals(documentReferrer, undefined, 'expected no document.referrer on initial load');
|
|
}
|
|
|
|
iframe.setAttribute('src', '/common/security-features/subresource/document.py?second');
|
|
|
|
{
|
|
let {referrer: documentReferrer, headers: {referer: httpReferrer}} = await nextMessage();
|
|
assert_equals(httpReferrer, undefined, 'expected no HTTP Referer header on src change');
|
|
assert_equals(documentReferrer, undefined, 'expected no document.referrer on src change');
|
|
}
|
|
} finally {
|
|
iframe.remove();
|
|
}
|
|
}, "Checks that referrerpolicy is respected when an iframe's src changes.");
|
|
</script>
|
|
</body>
|