| <!DOCTYPE html> | |
| <title> | |
| Request's destination must be "webbundle" with the script-based API | |
| </title> | |
| <link | |
| rel="help" | |
| href="https://github.com/WICG/webpackage/blob/main/explainers/subresource-loading.md" | |
| /> | |
| <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 = | |
| "https://{{domains[www1]}}:{{ports[https][0]}}/web-bundle/resources/check-sec-fetch-dest-header-and-return-bundle.py"; | |
| 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> |