53 lines
No EOL
1.9 KiB
HTML
53 lines
No EOL
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8" />
|
|
<title>
|
|
Resource timing attributes are consistent for the same-origin subresources.
|
|
</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/web-bundle/resources/test-helpers.js"></script>
|
|
|
|
<body>
|
|
<script>
|
|
setup(() => {
|
|
assert_true(HTMLScriptElement.supports("webbundle"));
|
|
});
|
|
|
|
promise_test(async (t) => {
|
|
const script_url = 'dynamic1:resource1.js';
|
|
const non_exist_script_url = 'dynamic1:non_exist_resource.js';
|
|
// Using functions from /web-bundle/resources/test-helpers.js.
|
|
const element = createWebBundleElement(
|
|
"../web-bundle/resources/wbn/dynamic1.wbn",
|
|
/*resources=*/[script_url]
|
|
);
|
|
|
|
document.body.appendChild(element);
|
|
|
|
// Fetch the script that is in the web bundle.
|
|
const script = document.createElement("script");
|
|
script.type = "module";
|
|
script.src = script_url;
|
|
document.body.appendChild(script);
|
|
|
|
// Fetch the script that is not in the web bundle.
|
|
// Using functions from /web-bundle/resources/test-helpers.js.
|
|
await fetchAndWaitForReject(non_exist_script_url);
|
|
|
|
let resource1_entries = [];
|
|
let non_exist_resource_entries = [];
|
|
|
|
await new Promise((resolve) => {
|
|
new PerformanceObserver(list => {
|
|
resource1_entries.push(list.getEntries().filter(e => e.name.includes('resource1.js')));
|
|
non_exist_resource_entries.push(
|
|
list.getEntries().filter(e => e.name.includes('non_exist_resource.js')));
|
|
if (resource1_entries.length == 1 && non_exist_resource_entries.length == 1) {
|
|
resolve();
|
|
}
|
|
}
|
|
).observe({ type: 'resource', buffered: true });
|
|
});
|
|
}, "Web bundle resources should have resource timing entries, even when the fetch failed.");
|
|
</script>
|
|
</body> |