1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
<!DOCTYPE html>
<title>
WebBundle subresource loading for static elements with a base element
</title>
<link
rel="help"
href="https://github.com/WICG/webpackage/blob/main/explainers/subresource-loading.md"
/>
<base href="../resources/wbn/static-element/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<script type="webbundle">
{
"source": "../static-element.wbn",
"resources": [
"https://{{domains[]}}:{{ports[https][0]}}/web-bundle/resources/wbn/static-element/resources/script.js",
"https://{{domains[]}}:{{ports[https][0]}}/web-bundle/resources/wbn/static-element/resources/style.css",
"https://{{domains[]}}:{{ports[https][0]}}/web-bundle/resources/wbn/static-element/resources/style-imported-from-file.css",
"https://{{domains[]}}:{{ports[https][0]}}/web-bundle/resources/wbn/static-element/resources/style-imported-from-tag.css"
],
"scopes": [
"https://{{domains[]}}:{{ports[https][0]}}/web-bundle/resources/wbn/static-element/scopes/"
]
}
</script>
<style type="text/css">
@import "resources/style-imported-from-tag.css";
@import "scopes/style-imported-from-tag.css";
</style>
<link href="resources/style.css" rel="stylesheet" />
<link href="scopes/style.css" rel="stylesheet" />
<script src="resources/script.js"></script>
<script src="scopes/script.js"></script>
<script src="out-of-scope/script.js"></script>
<script>
setup(() => {
assert_true(HTMLScriptElement.supports("webbundle"));
});
promise_test(async () => {
assert_equals(resources_script_result, "loaded from webbundle");
assert_equals(scopes_script_result, "loaded from webbundle");
assert_equals(out_of_scope_script_result, "loaded from network");
["resources_", "scopes_"].forEach((type) => {
[
"style_target",
"style_imported_from_file_target",
"style_imported_from_tag_target",
].forEach((target) => {
const element = document.createElement("div");
element.id = type + target;
document.body.appendChild(element);
assert_equals(
window.getComputedStyle(element).color,
"rgb(0, 0, 255)",
element.id + " color must be blue"
);
});
});
}, "Subresources from static elements should be loaded from web bundle.");
</script>
</body>
|