Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<title>
Request's destination must be "webbundle" with the script-based API
</title>
<link
rel="help"
/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/test-helpers.js"></script>
<body>
<script>
setup(() => {
assert_true(HTMLScriptElement.supports("webbundle"));
});
// check-sec-fetch-dest-header-and-return-bundle.py returns a valid format
// bundle only if a 'Sec-Fetch-Dest: webbundle' header is present in a request.
// Otherwise, returns an empty body with 400 status code.
//
// In this wpt, we assume that a <script> element fires a load event correctly if
// a valid format webbundle is returned.
const same_origin_bundle =
"../resources/check-sec-fetch-dest-header-and-return-bundle.py";
const cross_origin_bundle =
promise_test(async () => {
for (const bundle of [same_origin_bundle, cross_origin_bundle]) {
const element = createWebBundleElement(bundle, /*resources=*/ []);
await addElementAndWaitForLoad(element);
element.remove();
}
}, '"Sec-Fetch-Dest: webbundle" header must be present in a request for a bundle'
+ " with <script type=webbundle>.");
promise_test(async () => {
const res = await fetch(same_origin_bundle);
assert_false(res.ok);
}, '"Sec-Fetch-Dest: webbundle" header must not be present in a fetch request' + " for a same-origin resource.");
promise_test(async () => {
const res = await fetch(cross_origin_bundle);
assert_false(res.ok);
}, '"Sec-Fetch-Dest: webbundle" header must not be present in a fetch request' + " for a cross-origin resource.");
</script>
</body>