<!DOCTYPE html>
<title>Test Content Security Policy</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/utils.js"></script>
<script src="/common/utils.js"></script>
<body>
<script>
promise_test(async () => {
const csp_key = token();
// The 'csp' property does not appear in the IDL definition for
// fenced frames, so ensure that the 'csp' property didn't
// leak over from the IFrame prototype.
assert_equals(HTMLFencedFrameElement.prototype.hasOwnProperty('csp'),
false);
const new_frame = document.createElement('fencedframe');
const new_config = new FencedFrameConfig(generateURL(
"resources/csp-inner.html",
[csp_key]));
new_frame.config = new_config;
// This attribute will be ignored since the IDL for
// fenced frames do not support the 'csp' attribute.
new_frame.setAttribute("csp", "style-src 'none';");
document.body.append(new_frame);
// Get the result for the top-level fenced frame.
const fenced_frame_result = await nextValueFromServer(csp_key);
assert_equals(fenced_frame_result, "pass");
}, "Fenced Frames should not honor the csp attribute from parent page");
</script>
</body>
</html>