[resource-timing] Refactor resource_script_types.html
Bug: 1171767
Change-Id: I351fa9de2052fbf74b977c81e8ab4c48efb32079
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2807606
Reviewed-by: Tom McKee <tommckee@chromium.org>
Commit-Queue: Yoav Weiss <yoavweiss@chromium.org>
Cr-Commit-Position: refs/heads/master@{#870498}
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/initiator-type-for-script.html b/third_party/blink/web_tests/external/wpt/resource-timing/initiator-type-for-script.html
new file mode 100644
index 0000000..7217339
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/initiator-type-for-script.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>This test validates that the initiatorType information for various
+Resource Timing entries is accurate for scripts.</title>
+<link rel="help"
+ href="https://www.w3.org/TR/resource-timing-2/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/resource-loaders.js"></script>
+<script src="resources/entry-invariants.js"></script>
+<!-- Tested resources -->
+<script src="resources/empty_script.js?id=blocking"></script>
+<script src="resources/empty_script.js?id=async" async></script>
+<script src="resources/empty_script.js?id=async_false" async=false></script>
+<script src="resources/empty_script.js?id=defer" defer></script>
+<script>
+document.write("<script src='resources/empty_script.js?id=doc_written'></scr"
+ + "ipt>");
+
+const head = document.getElementsByTagName("head")[0];
+const s1 = document.createElement("script");
+s1.src = "empty_script.js?id=appended";
+head.appendChild(s1);
+
+const s2 = document.createElement("script");
+s2.src = "empty_script.js?id=appended_async";
+s2.async = true;
+head.appendChild(s2);
+
+const s3 = document.createElement("script");
+s3.src = "empty_script.js?id=appended_aync_false";
+s3.async = false;
+head.appendChild(s3);
+
+const s4 = document.createElement("script");
+s4.src = "empty_script.js?id=appended_defer";
+s4.defer = true;
+head.appendChild(s4);
+</script>
+</head>
+<body>
+<script>
+
+const wait_for_onload = () => {
+ return new Promise(resolve => {
+ window.addEventListener("load", resolve);
+})};
+
+promise_test(
+ async () => {
+ await wait_for_onload();
+
+ const entry_list = performance.getEntriesByType("resource");
+ for (entry of entry_list) {
+ if (entry.name.includes("empty_script.js")) {
+ assert_equals(entry.initiatorType, "script",
+ "initiatorType should be 'script' for " + entry.name);
+ }
+ }
+}, "Validate initiatorType for scripts is 'script'");
+</script>
+</body>
+</html>
+
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/resource_script_types.html b/third_party/blink/web_tests/external/wpt/resource-timing/resource_script_types.html
deleted file mode 100644
index 898fa0c..0000000
--- a/third_party/blink/web_tests/external/wpt/resource-timing/resource_script_types.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8" />
-<title>Resource Timing script initiator types</title>
-<link rel="author" title="Google" href="http://www.google.com/" />
-<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/webperftestharness.js"></script>
-<script src="resources/webperftestharnessextension.js"></script>
-<script>
-setup({explicit_done: true});
-let iframe;
-function setup_iframe() {
- const iframe_content =
- '<script src="empty_script.js?id=1"></scr' + 'ipt>' +
- '<script src="empty_script.js?id=2" async></scr' + 'ipt>' +
- '<script src="empty_script.js?id=3" async=false></scr' + 'ipt>' +
- '<script src="empty_script.js?id=4" defer></scr' + 'ipt>' +
- '<script>' +
- 'document.write("<script src=\\"empty_script.js?id=5\\"></scr" + "ipt>");' +
- 'const s1 = document.createElement("script");' +
- 's1.src = "empty_script.js?id=6";' +
- 'document.getElementsByTagName("head")[0].appendChild(s1);' +
- 'const s2 = document.createElement("script");' +
- 's2.src = "empty_script.js?id=7";' +
- 's2.async = true;' +
- 'document.getElementsByTagName("head")[0].appendChild(s2);' +
- 'const s3 = document.createElement("script");' +
- 's3.src = "empty_script.js?id=8";' +
- 's3.async = false;' +
- 'document.getElementsByTagName("head")[0].appendChild(s3);' +
- 'const s4 = document.createElement("script");' +
- 's4.src = "empty_script.js?id=9";' +
- 's4.defer = true;' +
- 'document.getElementsByTagName("head")[0].appendChild(s4);' +
- '</scr' + 'ipt>';
- iframe = document.getElementById('frameContext');
- iframe.contentWindow.document.write(iframe_content);
-}
-function onload_test() {
- const context = new PerformanceContext(iframe.contentWindow.performance);
- const entries = context.getEntriesByType('resource');
-
- const index = window.location.pathname.lastIndexOf('/');
- const pathname = window.location.pathname.substring(0, index) +
- '/resources/empty_script.js?id=';
- let expected_entries = {};
- expected_entries[pathname + '1'] = 'script';
- expected_entries[pathname + '2'] = 'script';
- expected_entries[pathname + '3'] = 'script';
- expected_entries[pathname + '4'] = 'script';
- expected_entries[pathname + '5'] = 'script';
- expected_entries[pathname + '6'] = 'script';
- expected_entries[pathname + '7'] = 'script';
- expected_entries[pathname + '8'] = 'script';
- expected_entries[pathname + '9'] = 'script';
-
- test_resource_entries(entries, expected_entries);
- done();
-}
-window.setup_iframe = setup_iframe;
-</script>
-</head>
-<body>
-<h1>Description</h1>
-<p>This test validates that all of the different types of script loads are reported with the correct initiator.</p>
-<div id="log"></div>
-<iframe id="frameContext" onload="onload_test();" src="resources/inject_resource_test.html"></iframe>
-</body>
-</html>