mirror of
https://github.com/servo/servo.git
synced 2025-06-25 17:44:33 +01:00
67 lines
2.2 KiB
HTML
67 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
|
<title>
|
|
Subresource loading using relative URLs in the 'resources' attribute with a
|
|
base element
|
|
</title>
|
|
<base href="../resources/wbn/" />
|
|
<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>
|
|
|
|
<body>
|
|
<script type="webbundle">
|
|
{
|
|
"source": "static-element.wbn",
|
|
"resources": ["static-element/resources/script.js"]
|
|
}
|
|
</script>
|
|
<script id="script" src="static-element/resources/script.js"></script>
|
|
|
|
<script type="webbundle">
|
|
{
|
|
"source": "dynamic1.wbn",
|
|
"scopes": ["dynamic/resource"]
|
|
}
|
|
</script>
|
|
|
|
<script>
|
|
setup(() => {
|
|
assert_true(HTMLScriptElement.supports("webbundle"));
|
|
});
|
|
|
|
test(() => {
|
|
assert_equals(resources_script_result, "loaded from webbundle");
|
|
}, "A subresource script.js should be loaded from WebBundle using the relative " + "URL and a base element.");
|
|
|
|
promise_test(async () => {
|
|
const module = await import(
|
|
"/web-bundle/resources/wbn/dynamic/resource1.js"
|
|
);
|
|
assert_equals(module.result, "resource1 from dynamic1.wbn");
|
|
const module2 = await import(
|
|
"/web-bundle/resources/wbn/dynamic/resource2.js"
|
|
);
|
|
assert_equals(module2.result, "resource2 from dynamic1.wbn");
|
|
const module3 = await import(
|
|
"/web-bundle/resources/wbn/dynamic/resource3.js"
|
|
);
|
|
assert_equals(module3.result, "resource3 from dynamic1.wbn");
|
|
const module4 = await import(
|
|
"/web-bundle/resources/wbn/dynamic/resource4.js"
|
|
);
|
|
assert_equals(module4.result, "resource4 from dynamic1.wbn");
|
|
const result_promise = new Promise((resolve) => {
|
|
// This function will be called from script.js
|
|
window.report_result = resolve;
|
|
});
|
|
|
|
const script = document.createElement("script");
|
|
script.src = "/web-bundle/resources/wbn/dynamic/classic_script.js";
|
|
document.body.appendChild(script);
|
|
assert_equals(await result_promise, "classic script from network");
|
|
}, "Subresources that start with 'resource' should be loaded from dynamic1.wbn while others from network.");
|
|
</script>
|
|
</body>
|