summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resource-timing/initiator-type
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/tests/resource-timing/initiator-type
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/resource-timing/initiator-type')
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/audio.html34
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/dynamic-insertion.html41
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/embed.html20
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/frameset.html22
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/iframe.html19
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/img-srcset.html21
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/img.html19
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/input.html19
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/link.html35
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/misc.html31
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/picture.html39
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/resources/initiator-type-test.js15
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/script.html26
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/style.html45
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/svg.html23
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/video.html32
-rw-r--r--testing/web-platform/tests/resource-timing/initiator-type/workers.html23
17 files changed, 464 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/audio.html b/testing/web-platform/tests/resource-timing/initiator-type/audio.html
new file mode 100644
index 0000000000..f09fc61847
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/audio.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: audio</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<audio src="/resource-timing/resources/empty.py?id=src"></audio>
+<audio>
+ <source src="/resource-timing/resources/empty.py?id=source-wav"
+ type="audio/wav" />
+</audio>
+<audio>
+ <source src="/resource-timing/resources/empty.py?id=source-mpeg"
+ type="audio/mpeg" />
+</audio>
+<audio>
+ <source src="/resource-timing/resources/empty.py?id=source-ogg"
+ type="audio/ogg" />
+</audio>
+<script>
+ initiator_type_test("empty.py?id=src", "audio", "<audio src> without 'type' attribute");
+ initiator_type_test("empty.py?id=source-wav", "audio", "<source src> with type 'audio/wav'");
+ initiator_type_test("empty.py?id=source-mpeg", "audio", "<source src> with type 'audio/mpeg'");
+ initiator_type_test("empty.py?id=source-ogg", "audio", "<source src> with type 'audio/ogg'");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/dynamic-insertion.html b/testing/web-platform/tests/resource-timing/initiator-type/dynamic-insertion.html
new file mode 100644
index 0000000000..8ce05b3cfe
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/dynamic-insertion.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing - initiatorType with dynamic insertion</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/entry-invariants.js"></script>
+<script src="/resource-timing/resources/resource-loaders.js"></script>
+<script>
+ const dynamic_initiator_type_test = (loader, path, expected_type,
+ resource_type) => {
+ attribute_test(loader, path, entry => {
+ assert_equals(entry.initiatorType, expected_type);
+ }, `A ${resource_type} should have the '${expected_type}' initiator type.`);
+ };
+
+ dynamic_initiator_type_test(load.image, "resources/resource_timing_test0.png",
+ "img", "image");
+ // Note that, to download a font, 'load.font' uses a <style> element to
+ // construct a font-face that is then applied to a <div>. Since it's a <style>
+ // element requesting the resource, the initiator type is 'css', not 'font'.
+ dynamic_initiator_type_test(load.font, "/fonts/Ahem.ttf", "css", "font");
+ dynamic_initiator_type_test(load.stylesheet,
+ "resources/resource_timing_test0.css", "link", "stylesheet");
+ dynamic_initiator_type_test(load.iframe, "resources/green.html", "iframe",
+ "iframe");
+ dynamic_initiator_type_test(load.script, "resources/empty.js", "script",
+ "script");
+ dynamic_initiator_type_test(load.xhr_sync, "resources/empty.py",
+ "xmlhttprequest", "XMLHttpRequest");
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that the initiatorType field is correct even when an
+element is dynamically inserted.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/embed.html b/testing/web-platform/tests/resource-timing/initiator-type/embed.html
new file mode 100644
index 0000000000..c7a505afac
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/embed.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: embed</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<embed src="/resource-timing/resources/resource_timing_test0.css"
+ type="text/css">
+<script>
+ initiator_type_test("resource_timing_test0.css", "embed", "<embed>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/frameset.html b/testing/web-platform/tests/resource-timing/initiator-type/frameset.html
new file mode 100644
index 0000000000..697549a14d
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/frameset.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: frameset</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+<script>
+ initiator_type_test("green.html", "frame", "<frame> in a <frameset>");
+</script>
+</head>
+<!-- Although framesets were deprecated in HTML5, we still want to make sure
+ Resource Timing is emitting entries for the underlying resources' requests.
+-->
+<frameset>
+ <frame src="/resource-timing/resources/green.html">
+</frameset>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/iframe.html b/testing/web-platform/tests/resource-timing/initiator-type/iframe.html
new file mode 100644
index 0000000000..0becd86894
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/iframe.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: iframe</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<iframe src="/resource-timing/resources/green.html"></iframe>
+<script>
+ initiator_type_test("green.html", "iframe", "<iframe>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/img-srcset.html b/testing/web-platform/tests/resource-timing/initiator-type/img-srcset.html
new file mode 100644
index 0000000000..b8c81fbb25
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/img-srcset.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: img with srcset attribute</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<img src="/resource-timing/resources/resource_timing_test0.png"
+ srcset="/resource-timing/resources/resource_timing_test0.png?id=srcset 67w"
+ sizes="67px"></img>
+<script>
+ initiator_type_test("resource_timing_test0.png?id=srcset", "img", "<img srcset>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/img.html b/testing/web-platform/tests/resource-timing/initiator-type/img.html
new file mode 100644
index 0000000000..8e2d305048
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/img.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: img</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<img src="/resource-timing/resources/resource_timing_test0.png"></img>
+<script>
+ initiator_type_test("resource_timing_test0.png", "img", "<img>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/input.html b/testing/web-platform/tests/resource-timing/initiator-type/input.html
new file mode 100644
index 0000000000..a46d416671
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: input</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<input type="image" src="/resource-timing/resources/resource_timing_test0.png">
+<script>
+ initiator_type_test("resource_timing_test0.png", "input", "<input type=image>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/link.html b/testing/web-platform/tests/resource-timing/initiator-type/link.html
new file mode 100644
index 0000000000..43367ac3d5
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/link.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="utf-8" />
+ <title>Resource Timing initiator type: link</title>
+ <link rel="author" title="Google" href="http://www.google.com/" />
+ <link rel="help" href="https://www.w3.org/TR/resource-timing-2/#dom-performanceresourcetiming-initiatortype" />
+ <link rel="stylesheet" href="/resource-timing/resources/nested.css">
+ <link rel="prefetch" href="/resource-timing/resources/resource_timing_test0.css?id=prefetch">
+ <link rel="preload" as="style" href="/resource-timing/resources/resource_timing_test0.css?id=preload">
+ <link rel="prerender" href="/resource-timing/resources/green.html?id=prerender">
+ <link rel="manifest" href="/resource-timing/resources/manifest.json">
+ <link rel="modulepreload" href="resources/empty.js?id=modulePreload">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resource-timing/resources/observe-entry.js"></script>
+ <script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+ <script>
+ initiator_type_test("nested.css", "link", "<link>");
+
+ // Verify there are enries for each of nested.css' nested resources.
+ initiator_type_test("resource_timing_test0.css?id=n1", "css", "css resources embedded in css");
+ initiator_type_test("fonts/Ahem.ttf?id=n1", "css", "font resources embedded in css");
+ initiator_type_test("blue.png?id=n1", "css", "image resources embedded in css");
+ initiator_type_test("resource_timing_test0.css?id=prefetch", "link", "<link prefetch>");
+ initiator_type_test("resource_timing_test0.css?id=preload", "link", "<link preload>");
+ initiator_type_test("manifest.json", "link", "<link manifest>");
+ initiator_type_test("resources/empty.js?id=modulePreload", "other", "module preload");
+ </script>
+ <ol>This content forces a font to get fetched</ol>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/misc.html b/testing/web-platform/tests/resource-timing/initiator-type/misc.html
new file mode 100644
index 0000000000..02d01a1633
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/misc.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: miscellaneous elements</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body background="/resource-timing/resources/blue.png?id=body">
+<input type="image" src="/resource-timing/resources/blue.png?id=input">
+<object type="image/png" data="/resource-timing/resources/blue.png?id=object">
+</object>
+<script>
+ navigator.sendBeacon('/resource-timing/resources/empty.py?id=beacon');
+ fetch('/resource-timing/resources/empty.py?id=fetch');
+ const evtSource = new EventSource('/resource-timing/resources/eventsource.py?id=eventsource');
+</script>
+<script>
+ initiator_type_test("blue.png?id=body", "body", "<body background>");
+ initiator_type_test("blue.png?id=input", "input", "<input type='image'>");
+ initiator_type_test("blue.png?id=object", "object", "<object type='image/png'>");
+ initiator_type_test("empty.py?id=beacon", "beacon", "sendBeacon()");
+ initiator_type_test("empty.py?id=fetch", "fetch", "for fetch()");
+ initiator_type_test("eventsource.py?id=eventsource", "other", "new EventSource()");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/picture.html b/testing/web-platform/tests/resource-timing/initiator-type/picture.html
new file mode 100644
index 0000000000..e384b9e97d
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/picture.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: picture</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<picture>
+ <source srcset="blue.png?id=picture-source" type="image/png" />
+ <img src="blue.png?id=picture-img" />
+</picture>
+<picture>
+ <source srcset="blue.png?id=picture-notsupported-source" type="image/notsupported" />
+ <img src="blue.png?id=picture-notsupported-img" />
+</picture>
+<picture>
+ <img src="blue.png?id=picture-img-src"
+ srcset="blue.png?id=picture-img-srcset"
+ sizes="67px"></img>
+</picture>
+<picture>
+ <img src="blue.png?id=picture-99x-img-src"
+ srcset="blue.png?id=picture-99x-img-srcset 99x"
+ sizes="67px"></img>
+</picture>
+<script>
+ initiator_type_test("blue.png?id=picture-source", "img", "<source> in a <picture>");
+ initiator_type_test("blue.png?id=picture-notsupported-img", "img", "<img> in a <picture>");
+ initiator_type_test("blue.png?id=picture-img-srcset", "img", "<img srcset> in a <picture>");
+ initiator_type_test("blue.png?id=picture-99x-img-src", "img", "<img src> in a <picture>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/resources/initiator-type-test.js b/testing/web-platform/tests/resource-timing/initiator-type/resources/initiator-type-test.js
new file mode 100644
index 0000000000..2b1f844376
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/resources/initiator-type-test.js
@@ -0,0 +1,15 @@
+
+if (observe_entry === undefined) {
+ throw new Error("You must include resource-timing/resources/observe-entry.js "
+ + "before including this script.");
+}
+
+// Asserts that, for the given name, there is/will-be a
+// PerformanceResourceTiming entry that has the given 'initiatorType'. The test
+// is labeled according to the given descriptor.
+const initiator_type_test = (entry_name, expected_initiator, descriptor) => {
+ promise_test(async () => {
+ const entry = await observe_entry(entry_name);
+ assert_equals(entry.initiatorType, expected_initiator);
+ }, `The initiator type for ${descriptor} must be '${expected_initiator}'`);
+};
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/script.html b/testing/web-platform/tests/resource-timing/initiator-type/script.html
new file mode 100644
index 0000000000..dbd6a131de
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/script.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: script</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<script src="/resource-timing/resources/empty_script.js"></script>
+<script>
+ const async_xhr = new XMLHttpRequest;
+ async_xhr.open('GET', '/resource-timing/resources/blue.png?id=async_xhr',
+ true);
+ async_xhr.send();
+</script>
+<script>
+ initiator_type_test("empty_script.js", "script", "<script>");
+ initiator_type_test("blue.png?id=async_xhr", "xmlhttprequest", "an asynchronous XmlHTTPRequest");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/style.html b/testing/web-platform/tests/resource-timing/initiator-type/style.html
new file mode 100644
index 0000000000..051496b766
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/style.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: style</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<style>
+ iframe {
+ background: url('/resource-timing/resources/blue.png?id=background');
+ }
+ body {
+ cursor: url('/resource-timing/resources/blue.png?id=cursor'), pointer;
+ }
+ ul {
+ list-style-image: url('/resource-timing/resources/blue.png?id=list-style');
+ }
+
+ @font-face {
+ font-family: remoteFontAhem;
+ src: url('/fonts/Ahem.ttf');
+ }
+ .ahem {
+ font-family: remoteFontAhem;
+ }
+</style>
+<iframe>This iframe forces the 'background' resource to be fetched.</iframe>
+<ul>
+ <li>This content forces the 'list-style-image' resource to be fetched.</li>
+</ul>
+<div class="ahem">This content forces the '@font-face' resource to be fetched.</div>
+<script>
+ initiator_type_test("blue.png?id=background", "css", "'background' attributes in <style> elements");
+ initiator_type_test("blue.png?id=cursor", "css", "'cursor' attributes in <style> elements");
+ initiator_type_test("blue.png?id=list-style", "css", "'list-style-image' attributes in <style> elements");
+ initiator_type_test("fonts/Ahem.ttf", "css", "'@font-face' resources");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/svg.html b/testing/web-platform/tests/resource-timing/initiator-type/svg.html
new file mode 100644
index 0000000000..d92f5935d8
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/svg.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: svg</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<svg width=200 height=200
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <image href="/resource-timing/resources/blue.png" height="200" width="200"/>
+</svg>
+<script>
+ initiator_type_test("blue.png", "image", "<image> in an <svg>");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/video.html b/testing/web-platform/tests/resource-timing/initiator-type/video.html
new file mode 100644
index 0000000000..16f3b3dea5
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/video.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator type: video</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+</head>
+<body>
+<video poster="/resource-timing/resources/blue.png?id=poster"></video>
+<video src="/media/test.mp4?id=src" autoplay="true"></video>
+<video autoplay="true">
+ <source src="/media/test.mp4?id=source-mp4" type="video/mp4">
+ <track kind="subtitles" srclang="en" default
+ src="/resource-timing/resources/empty.py?id=track">
+</video>
+<video autoplay="true">
+ <source src="/media/test.ogv?id=source-ogv" type="video/ogg">
+</video>
+<script>
+ initiator_type_test("blue.png?id=poster", "video", "<video poster>");
+ initiator_type_test("media/test.mp4?id=src", "video", "<video src>");
+ initiator_type_test("media/test.mp4?id=source-mp4", "video", "<source src> with type=\"video/mp4\"");
+ initiator_type_test("empty.py?id=track", "track", "<track src>");
+ initiator_type_test("media/test.ogv?id=source-ogv", "video", "<source src> with type=\"video/ogg\"");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/resource-timing/initiator-type/workers.html b/testing/web-platform/tests/resource-timing/initiator-type/workers.html
new file mode 100644
index 0000000000..3a23ad71a3
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/initiator-type/workers.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiatorType: worker resources</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="/resource-timing/resources/observe-entry.js"></script>
+<script src="resources/initiator-type-test.js"></script>
+
+</head>
+
+<script>
+ const moduleWorkerURL = 'resources/empty.js?moduleWorker';
+ const workerURL = 'resources/empty.js?worker';
+ new Worker(moduleWorkerURL, {type: "module"});
+ new Worker(workerURL, {type: "classic"});
+ initiator_type_test(workerURL, "other", "classic worker");
+ initiator_type_test(moduleWorkerURL, "other", "module worker");
+</script>
+</body>
+</html>