summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/server-timing/resources
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:47:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:47:29 +0000
commit0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch)
treea31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/server-timing/resources
parentInitial commit. (diff)
downloadfirefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz
firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/server-timing/resources')
-rw-r--r--testing/web-platform/tests/server-timing/resources/blue.pngbin0 -> 485 bytes
-rw-r--r--testing/web-platform/tests/server-timing/resources/blue.png.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/blue_cors.pngbin0 -> 485 bytes
-rw-r--r--testing/web-platform/tests/server-timing/resources/blue_cors.png.headers2
-rw-r--r--testing/web-platform/tests/server-timing/resources/blue_tao.pngbin0 -> 485 bytes
-rw-r--r--testing/web-platform/tests/server-timing/resources/blue_tao.png.sub.headers2
-rw-r--r--testing/web-platform/tests/server-timing/resources/green.pngbin0 -> 87 bytes
-rw-r--r--testing/web-platform/tests/server-timing/resources/green.png.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/navigation-timing.html38
-rw-r--r--testing/web-platform/tests/server-timing/resources/navigation-timing.html.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/0.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/0.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/1.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/1.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/10.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/10.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/11.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/11.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/12.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/12.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/13.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/13.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/14.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/14.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/15.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/15.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/16.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/16.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/17.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/17.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/18.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/18.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/19.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/19.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/2.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/2.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/20.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/20.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/21.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/21.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/22.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/22.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/23.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/23.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/24.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/24.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/25.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/25.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/26.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/26.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/27.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/27.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/28.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/28.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/29.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/29.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/3.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/3.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/30.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/30.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/31.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/31.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/32.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/32.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/33.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/33.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/34.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/34.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/35.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/35.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/36.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/36.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/37.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/37.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/38.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/38.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/39.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/39.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/4.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/4.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/40.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/40.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/41.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/41.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/42.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/42.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/43.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/43.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/44.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/44.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/45.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/45.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/46.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/46.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/47.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/47.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/48.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/48.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/49.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/49.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/5.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/5.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/50.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/50.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/51.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/51.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/52.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/52.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/53.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/53.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/54.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/54.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/55.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/55.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/56.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/56.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/57.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/57.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/58.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/58.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/59.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/59.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/6.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/6.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/60.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/60.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/61.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/61.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/62.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/62.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/63.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/63.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/64.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/64.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/65.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/65.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/66.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/66.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/67.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/67.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/68.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/68.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/69.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/69.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/7.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/7.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/70.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/70.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/71.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/71.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/72.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/72.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/73.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/73.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/74.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/74.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/75.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/75.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/76.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/76.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/77.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/77.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/78.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/78.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/79.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/79.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/8.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/8.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/80.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/80.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/81.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/81.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/82.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/82.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/83.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/83.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/84.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/84.js.sub.headers1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/9.js1
-rw-r--r--testing/web-platform/tests/server-timing/resources/parsing/9.js.sub.headers1
180 files changed, 215 insertions, 0 deletions
diff --git a/testing/web-platform/tests/server-timing/resources/blue.png b/testing/web-platform/tests/server-timing/resources/blue.png
new file mode 100644
index 0000000000..4498dd258a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/blue.png
Binary files differ
diff --git a/testing/web-platform/tests/server-timing/resources/blue.png.sub.headers b/testing/web-platform/tests/server-timing/resources/blue.png.sub.headers
new file mode 100644
index 0000000000..948e7f0190
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/blue.png.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric2; dur=2.1; desc=blue.png
diff --git a/testing/web-platform/tests/server-timing/resources/blue_cors.png b/testing/web-platform/tests/server-timing/resources/blue_cors.png
new file mode 100644
index 0000000000..4498dd258a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/blue_cors.png
Binary files differ
diff --git a/testing/web-platform/tests/server-timing/resources/blue_cors.png.headers b/testing/web-platform/tests/server-timing/resources/blue_cors.png.headers
new file mode 100644
index 0000000000..2977f0a52c
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/blue_cors.png.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Server-Timing: metric2; dur=2.1; desc=blue.png
diff --git a/testing/web-platform/tests/server-timing/resources/blue_tao.png b/testing/web-platform/tests/server-timing/resources/blue_tao.png
new file mode 100644
index 0000000000..4498dd258a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/blue_tao.png
Binary files differ
diff --git a/testing/web-platform/tests/server-timing/resources/blue_tao.png.sub.headers b/testing/web-platform/tests/server-timing/resources/blue_tao.png.sub.headers
new file mode 100644
index 0000000000..3ca09d6a9d
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/blue_tao.png.sub.headers
@@ -0,0 +1,2 @@
+Timing-Allow-Origin: *
+Server-Timing: metric2; dur=2.1; desc=blue.png
diff --git a/testing/web-platform/tests/server-timing/resources/green.png b/testing/web-platform/tests/server-timing/resources/green.png
new file mode 100644
index 0000000000..28a1faab37
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/green.png
Binary files differ
diff --git a/testing/web-platform/tests/server-timing/resources/green.png.sub.headers b/testing/web-platform/tests/server-timing/resources/green.png.sub.headers
new file mode 100644
index 0000000000..b135472f86
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/green.png.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric3; dur=3.1; desc=green.png
diff --git a/testing/web-platform/tests/server-timing/resources/navigation-timing.html b/testing/web-platform/tests/server-timing/resources/navigation-timing.html
new file mode 100644
index 0000000000..e6b1ba4866
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/navigation-timing.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<head>
+ <meta charset='utf-8' />
+ <script>
+ const server_timing = performance.getEntriesByType('navigation')[0].serverTiming;
+ const compare_entry = (entry, expected) => {
+ if (!entry) {
+ return false;
+ }
+ const keys = Object.keys(expected);
+ for (key of keys) {
+ if (entry[key] != expected[key]) {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ if (!compare_entry(server_timing[0], {
+ duration: 1.1,
+ name: 'metric1',
+ description: 'document',
+ }) ||
+ !compare_entry(server_timing[1], {
+ duration: 1.2,
+ name: 'metric1',
+ description: 'document',
+ })) {
+ parent.postMessage("FAIL", "*");
+ }
+ parent.postMessage( "PASS", "*");
+ </script>
+ <!-- The script above should not go beyond 800 bytes, or it will be trickled, defeating the test -->
+</head>
+<body>
+ <!-- This comment is here to make sure the document body is larger than 800 bytes, so will be trickled down -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/server-timing/resources/navigation-timing.html.headers b/testing/web-platform/tests/server-timing/resources/navigation-timing.html.headers
new file mode 100644
index 0000000000..ad018b70fd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/navigation-timing.html.headers
@@ -0,0 +1 @@
+Server-Timing: metric1; dur=1.1; desc=document, metric1; dur=1.2; desc=document
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/0.js b/testing/web-platform/tests/server-timing/resources/parsing/0.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/0.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/0.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/0.js.sub.headers
new file mode 100644
index 0000000000..6f9cb19400
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/0.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing:
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/1.js b/testing/web-platform/tests/server-timing/resources/parsing/1.js
new file mode 100644
index 0000000000..03b778bd84
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/1.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/1.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/1.js.sub.headers
new file mode 100644
index 0000000000..d5ebb5fbff
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/1.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/10.js b/testing/web-platform/tests/server-timing/resources/parsing/10.js
new file mode 100644
index 0000000000..03b778bd84
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/10.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/10.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/10.js.sub.headers
new file mode 100644
index 0000000000..fc2300f874
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/10.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ;
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/11.js b/testing/web-platform/tests/server-timing/resources/parsing/11.js
new file mode 100644
index 0000000000..03b778bd84
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/11.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/11.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/11.js.sub.headers
new file mode 100644
index 0000000000..d5ed699c5c
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/11.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ,
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/12.js b/testing/web-platform/tests/server-timing/resources/parsing/12.js
new file mode 100644
index 0000000000..fc827f8735
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/12.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4,"desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/12.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/12.js.sub.headers
new file mode 100644
index 0000000000..7b89b475bd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/12.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ; dur = 123.4 ; desc = description
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/13.js b/testing/web-platform/tests/server-timing/resources/parsing/13.js
new file mode 100644
index 0000000000..02f8c3c84d
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/13.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/13.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/13.js.sub.headers
new file mode 100644
index 0000000000..dcb056faa8
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/13.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ; desc = description ; dur = 123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/14.js b/testing/web-platform/tests/server-timing/resources/parsing/14.js
new file mode 100644
index 0000000000..966e9634e3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/14.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/14.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/14.js.sub.headers
new file mode 100644
index 0000000000..7ebf8c3bfd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/14.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc = "description"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/15.js b/testing/web-platform/tests/server-timing/resources/parsing/15.js
new file mode 100644
index 0000000000..afef77d163
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/15.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric1","dur":12.3,"desc":"description1"},{"name":"metric2","dur":45.6,"desc":"description2"},{"name":"metric3","dur":78.9,"desc":"description3"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/15.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/15.js.sub.headers
new file mode 100644
index 0000000000..0389e99790
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/15.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;dur=12.3;desc=description1,metric2;dur=45.6;desc=description2,metric3;dur=78.9;desc=description3
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/16.js b/testing/web-platform/tests/server-timing/resources/parsing/16.js
new file mode 100644
index 0000000000..b49b1785e8
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/16.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric1"},{"name":"metric2"},{"name":"metric3"},{"name":"metric4"},{"name":"metric5"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/16.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/16.js.sub.headers
new file mode 100644
index 0000000000..b618a89de9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/16.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1,metric2 ,metric3, metric4 , metric5
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/17.js b/testing/web-platform/tests/server-timing/resources/parsing/17.js
new file mode 100644
index 0000000000..966e9634e3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/17.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/17.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/17.js.sub.headers
new file mode 100644
index 0000000000..c083f605b3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/17.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="description"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/18.js b/testing/web-platform/tests/server-timing/resources/parsing/18.js
new file mode 100644
index 0000000000..3c47d76055
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/18.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"\t description \t"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/18.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/18.js.sub.headers
new file mode 100644
index 0000000000..aa51ae040f
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/18.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=" description "
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/19.js b/testing/web-platform/tests/server-timing/resources/parsing/19.js
new file mode 100644
index 0000000000..83fb4f3672
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/19.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"descr\"iption"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/19.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/19.js.sub.headers
new file mode 100644
index 0000000000..d097b92029
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/19.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="descr\"iption"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/2.js b/testing/web-platform/tests/server-timing/resources/parsing/2.js
new file mode 100644
index 0000000000..b763b8145e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/2.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/2.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/2.js.sub.headers
new file mode 100644
index 0000000000..14eb2f0774
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/2.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/20.js b/testing/web-platform/tests/server-timing/resources/parsing/20.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/20.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/20.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/20.js.sub.headers
new file mode 100644
index 0000000000..9b131fcb90
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/20.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/21.js b/testing/web-platform/tests/server-timing/resources/parsing/21.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/21.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/21.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/21.js.sub.headers
new file mode 100644
index 0000000000..7134be2654
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/21.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/22.js b/testing/web-platform/tests/server-timing/resources/parsing/22.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/22.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/22.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/22.js.sub.headers
new file mode 100644
index 0000000000..465a36b600
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/22.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/23.js b/testing/web-platform/tests/server-timing/resources/parsing/23.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/23.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/23.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/23.js.sub.headers
new file mode 100644
index 0000000000..3b76de4a05
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/23.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/24.js b/testing/web-platform/tests/server-timing/resources/parsing/24.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/24.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/24.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/24.js.sub.headers
new file mode 100644
index 0000000000..c54a4d85f5
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/24.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/25.js b/testing/web-platform/tests/server-timing/resources/parsing/25.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/25.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/25.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/25.js.sub.headers
new file mode 100644
index 0000000000..752441eb90
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/25.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/26.js b/testing/web-platform/tests/server-timing/resources/parsing/26.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/26.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/26.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/26.js.sub.headers
new file mode 100644
index 0000000000..60dbdbb047
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/26.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/27.js b/testing/web-platform/tests/server-timing/resources/parsing/27.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/27.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/27.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/27.js.sub.headers
new file mode 100644
index 0000000000..feff2c042d
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/27.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/28.js b/testing/web-platform/tests/server-timing/resources/parsing/28.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/28.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/28.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/28.js.sub.headers
new file mode 100644
index 0000000000..3ca9b6b260
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/28.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/29.js b/testing/web-platform/tests/server-timing/resources/parsing/29.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/29.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/29.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/29.js.sub.headers
new file mode 100644
index 0000000000..ae0b891290
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/29.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/3.js b/testing/web-platform/tests/server-timing/resources/parsing/3.js
new file mode 100644
index 0000000000..b763b8145e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/3.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/3.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/3.js.sub.headers
new file mode 100644
index 0000000000..8c6fb60f31
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/3.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur="123.4"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/30.js b/testing/web-platform/tests/server-timing/resources/parsing/30.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/30.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/30.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/30.js.sub.headers
new file mode 100644
index 0000000000..24906f3c82
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/30.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/31.js b/testing/web-platform/tests/server-timing/resources/parsing/31.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/31.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/31.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/31.js.sub.headers
new file mode 100644
index 0000000000..aaceb6babf
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/31.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/32.js b/testing/web-platform/tests/server-timing/resources/parsing/32.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/32.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/32.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/32.js.sub.headers
new file mode 100644
index 0000000000..59e01cfa94
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/32.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/33.js b/testing/web-platform/tests/server-timing/resources/parsing/33.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/33.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/33.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/33.js.sub.headers
new file mode 100644
index 0000000000..d81429ecad
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/33.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/34.js b/testing/web-platform/tests/server-timing/resources/parsing/34.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/34.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/34.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/34.js.sub.headers
new file mode 100644
index 0000000000..bfb889515d
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/34.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/35.js b/testing/web-platform/tests/server-timing/resources/parsing/35.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/35.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/35.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/35.js.sub.headers
new file mode 100644
index 0000000000..ff41d80b69
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/35.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/36.js b/testing/web-platform/tests/server-timing/resources/parsing/36.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/36.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/36.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/36.js.sub.headers
new file mode 100644
index 0000000000..a702069f7d
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/36.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\"\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/37.js b/testing/web-platform/tests/server-timing/resources/parsing/37.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/37.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/37.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/37.js.sub.headers
new file mode 100644
index 0000000000..ecc3756393
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/37.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/38.js b/testing/web-platform/tests/server-timing/resources/parsing/38.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/38.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/38.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/38.js.sub.headers
new file mode 100644
index 0000000000..b13d9f419f
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/38.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/39.js b/testing/web-platform/tests/server-timing/resources/parsing/39.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/39.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/39.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/39.js.sub.headers
new file mode 100644
index 0000000000..0297223656
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/39.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/4.js b/testing/web-platform/tests/server-timing/resources/parsing/4.js
new file mode 100644
index 0000000000..966e9634e3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/4.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/4.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/4.js.sub.headers
new file mode 100644
index 0000000000..e929723eed
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/4.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=description
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/40.js b/testing/web-platform/tests/server-timing/resources/parsing/40.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/40.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/40.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/40.js.sub.headers
new file mode 100644
index 0000000000..9dd5cd4a76
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/40.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\""\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/41.js b/testing/web-platform/tests/server-timing/resources/parsing/41.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/41.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/41.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/41.js.sub.headers
new file mode 100644
index 0000000000..c5a006cd4a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/41.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/42.js b/testing/web-platform/tests/server-timing/resources/parsing/42.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/42.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/42.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/42.js.sub.headers
new file mode 100644
index 0000000000..8a04d7c7f6
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/42.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/43.js b/testing/web-platform/tests/server-timing/resources/parsing/43.js
new file mode 100644
index 0000000000..f3ac7dcc2a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/43.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"\\"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/43.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/43.js.sub.headers
new file mode 100644
index 0000000000..8208c16ff3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/43.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/44.js b/testing/web-platform/tests/server-timing/resources/parsing/44.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/44.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/44.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/44.js.sub.headers
new file mode 100644
index 0000000000..e50f42b377
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/44.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\"\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/45.js b/testing/web-platform/tests/server-timing/resources/parsing/45.js
new file mode 100644
index 0000000000..82de6a40e5
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/45.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"\""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/45.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/45.js.sub.headers
new file mode 100644
index 0000000000..055df4fbd4
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/45.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/46.js b/testing/web-platform/tests/server-timing/resources/parsing/46.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/46.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/46.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/46.js.sub.headers
new file mode 100644
index 0000000000..5d7ef807f6
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/46.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""\\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/47.js b/testing/web-platform/tests/server-timing/resources/parsing/47.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/47.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/47.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/47.js.sub.headers
new file mode 100644
index 0000000000..f52c6e8ae2
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/47.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""\"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/48.js b/testing/web-platform/tests/server-timing/resources/parsing/48.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/48.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/48.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/48.js.sub.headers
new file mode 100644
index 0000000000..9eeadd38d3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/48.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="""\
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/49.js b/testing/web-platform/tests/server-timing/resources/parsing/49.js
new file mode 100644
index 0000000000..349a7e0dd9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/49.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":""}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/49.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/49.js.sub.headers
new file mode 100644
index 0000000000..2dbff3ca6c
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/49.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""""
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/5.js b/testing/web-platform/tests/server-timing/resources/parsing/5.js
new file mode 100644
index 0000000000..966e9634e3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/5.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/5.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/5.js.sub.headers
new file mode 100644
index 0000000000..c083f605b3
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/5.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="description"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/50.js b/testing/web-platform/tests/server-timing/resources/parsing/50.js
new file mode 100644
index 0000000000..413d9b65bc
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/50.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":12.3,"desc":"description1"},{"name":"metric","dur":45.6,"desc":"description2"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/50.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/50.js.sub.headers
new file mode 100644
index 0000000000..c8ac573fa2
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/50.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=12.3;desc=description1,metric;dur=45.6;desc=description2
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/51.js b/testing/web-platform/tests/server-timing/resources/parsing/51.js
new file mode 100644
index 0000000000..fc827f8735
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/51.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4,"desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/51.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/51.js.sub.headers
new file mode 100644
index 0000000000..5825a547c9
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/51.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;DuR=123.4;DeSc=description
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/52.js b/testing/web-platform/tests/server-timing/resources/parsing/52.js
new file mode 100644
index 0000000000..a97e9d0d0f
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/52.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"MeTrIc","desc":"DeScRiPtIoN"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/52.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/52.js.sub.headers
new file mode 100644
index 0000000000..f5fcff981c
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/52.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: MeTrIc;desc=DeScRiPtIoN
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/53.js b/testing/web-platform/tests/server-timing/resources/parsing/53.js
new file mode 100644
index 0000000000..adf74faaf1
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/53.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":0}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/53.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/53.js.sub.headers
new file mode 100644
index 0000000000..3de0f19046
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/53.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=foo
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/54.js b/testing/web-platform/tests/server-timing/resources/parsing/54.js
new file mode 100644
index 0000000000..adf74faaf1
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/54.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":0}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/54.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/54.js.sub.headers
new file mode 100644
index 0000000000..78f670422c
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/54.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur="foo"
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/55.js b/testing/web-platform/tests/server-timing/resources/parsing/55.js
new file mode 100644
index 0000000000..429b528375
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/55.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric1","desc":"description","dur":123.4},{"name":"metric2"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/55.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/55.js.sub.headers
new file mode 100644
index 0000000000..578232a4ab
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/55.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;foo=bar;desc=description;foo=bar;dur=123.4;foo=bar,metric2
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/56.js b/testing/web-platform/tests/server-timing/resources/parsing/56.js
new file mode 100644
index 0000000000..b763b8145e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/56.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/56.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/56.js.sub.headers
new file mode 100644
index 0000000000..8a220ab50a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/56.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=123.4;dur=567.8
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/57.js b/testing/web-platform/tests/server-timing/resources/parsing/57.js
new file mode 100644
index 0000000000..adf74faaf1
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/57.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":0}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/57.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/57.js.sub.headers
new file mode 100644
index 0000000000..2614e2034c
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/57.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=foo;dur=567.8
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/58.js b/testing/web-platform/tests/server-timing/resources/parsing/58.js
new file mode 100644
index 0000000000..05004e5802
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/58.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description1"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/58.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/58.js.sub.headers
new file mode 100644
index 0000000000..e5ef56948b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/58.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=description1;desc=description2
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/59.js b/testing/web-platform/tests/server-timing/resources/parsing/59.js
new file mode 100644
index 0000000000..c9a9a98c5e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/59.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":0,"desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/59.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/59.js.sub.headers
new file mode 100644
index 0000000000..5b44836e70
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/59.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur;dur=123.4;desc=description
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/6.js b/testing/web-platform/tests/server-timing/resources/parsing/6.js
new file mode 100644
index 0000000000..fc827f8735
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/6.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4,"desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/6.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/6.js.sub.headers
new file mode 100644
index 0000000000..5dbc9d6552
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/6.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=123.4;desc=description
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/60.js b/testing/web-platform/tests/server-timing/resources/parsing/60.js
new file mode 100644
index 0000000000..c9a9a98c5e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/60.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":0,"desc":"description"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/60.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/60.js.sub.headers
new file mode 100644
index 0000000000..bfbddf111a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/60.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=;dur=123.4;desc=description
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/61.js b/testing/web-platform/tests/server-timing/resources/parsing/61.js
new file mode 100644
index 0000000000..ce7d800979
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/61.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/61.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/61.js.sub.headers
new file mode 100644
index 0000000000..6d605ad857
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/61.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc;desc=description;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/62.js b/testing/web-platform/tests/server-timing/resources/parsing/62.js
new file mode 100644
index 0000000000..ce7d800979
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/62.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/62.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/62.js.sub.headers
new file mode 100644
index 0000000000..182a81a7bf
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/62.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=;desc=description;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/63.js b/testing/web-platform/tests/server-timing/resources/parsing/63.js
new file mode 100644
index 0000000000..d6842ba988
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/63.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"d1","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/63.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/63.js.sub.headers
new file mode 100644
index 0000000000..8e9b117988
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/63.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=d1 d2;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/64.js b/testing/web-platform/tests/server-timing/resources/parsing/64.js
new file mode 100644
index 0000000000..88037d15dd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/64.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric1","desc":"d1"},{"name":"metric2"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/64.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/64.js.sub.headers
new file mode 100644
index 0000000000..b1dd0cc5b4
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/64.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;desc=d1 d2,metric2
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/65.js b/testing/web-platform/tests/server-timing/resources/parsing/65.js
new file mode 100644
index 0000000000..d6842ba988
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/65.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"d1","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/65.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/65.js.sub.headers
new file mode 100644
index 0000000000..63946cdd08
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/65.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="d1" d2;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/66.js b/testing/web-platform/tests/server-timing/resources/parsing/66.js
new file mode 100644
index 0000000000..88037d15dd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/66.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric1","desc":"d1"},{"name":"metric2"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/66.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/66.js.sub.headers
new file mode 100644
index 0000000000..bddbb2cbb6
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/66.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;desc="d1" d2,metric2
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/67.js b/testing/web-platform/tests/server-timing/resources/parsing/67.js
new file mode 100644
index 0000000000..b763b8145e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/67.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/67.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/67.js.sub.headers
new file mode 100644
index 0000000000..5fe55cc32a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/67.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric== ""foo;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/68.js b/testing/web-platform/tests/server-timing/resources/parsing/68.js
new file mode 100644
index 0000000000..1bc4d7fea6
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/68.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric1"},{"name":"metric2"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/68.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/68.js.sub.headers
new file mode 100644
index 0000000000..27dabbe090
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/68.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1== ""foo,metric2
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/69.js b/testing/web-platform/tests/server-timing/resources/parsing/69.js
new file mode 100644
index 0000000000..adf74faaf1
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/69.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","dur":0}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/69.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/69.js.sub.headers
new file mode 100644
index 0000000000..55282410e7
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/69.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur foo=12
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/7.js b/testing/web-platform/tests/server-timing/resources/parsing/7.js
new file mode 100644
index 0000000000..02f8c3c84d
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/7.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"description","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/7.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/7.js.sub.headers
new file mode 100644
index 0000000000..c6369005d8
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/7.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=description;dur=123.4
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/70.js b/testing/web-platform/tests/server-timing/resources/parsing/70.js
new file mode 100644
index 0000000000..03b778bd84
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/70.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/70.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/70.js.sub.headers
new file mode 100644
index 0000000000..aa8f70bd90
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/70.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;foo dur=12
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/71.js b/testing/web-platform/tests/server-timing/resources/parsing/71.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/71.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/71.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/71.js.sub.headers
new file mode 100644
index 0000000000..26fcf28e39
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/71.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing:
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/72.js b/testing/web-platform/tests/server-timing/resources/parsing/72.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/72.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/72.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/72.js.sub.headers
new file mode 100644
index 0000000000..74e059fd74
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/72.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/73.js b/testing/web-platform/tests/server-timing/resources/parsing/73.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/73.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/73.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/73.js.sub.headers
new file mode 100644
index 0000000000..eeaebdf48f
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/73.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: [
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/74.js b/testing/web-platform/tests/server-timing/resources/parsing/74.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/74.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/74.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/74.js.sub.headers
new file mode 100644
index 0000000000..b4f3c562f6
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/74.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ]
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/75.js b/testing/web-platform/tests/server-timing/resources/parsing/75.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/75.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/75.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/75.js.sub.headers
new file mode 100644
index 0000000000..9a3684d48e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/75.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ;
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/76.js b/testing/web-platform/tests/server-timing/resources/parsing/76.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/76.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/76.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/76.js.sub.headers
new file mode 100644
index 0000000000..79cbd0c4d5
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/76.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ,
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/77.js b/testing/web-platform/tests/server-timing/resources/parsing/77.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/77.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/77.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/77.js.sub.headers
new file mode 100644
index 0000000000..888fa71e64
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/77.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =;
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/78.js b/testing/web-platform/tests/server-timing/resources/parsing/78.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/78.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/78.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/78.js.sub.headers
new file mode 100644
index 0000000000..fc40e706cd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/78.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ;=
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/79.js b/testing/web-platform/tests/server-timing/resources/parsing/79.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/79.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/79.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/79.js.sub.headers
new file mode 100644
index 0000000000..0516c4cc05
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/79.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =,
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/8.js b/testing/web-platform/tests/server-timing/resources/parsing/8.js
new file mode 100644
index 0000000000..711e381810
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/8.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"aB3!#$%&'*+-.^_`|~"}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/8.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/8.js.sub.headers
new file mode 100644
index 0000000000..1d1bb026dd
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/8.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: aB3!#$%&'*+-.^_`|~
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/80.js b/testing/web-platform/tests/server-timing/resources/parsing/80.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/80.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/80.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/80.js.sub.headers
new file mode 100644
index 0000000000..03b3909f55
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/80.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ,=
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/81.js b/testing/web-platform/tests/server-timing/resources/parsing/81.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/81.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/81.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/81.js.sub.headers
new file mode 100644
index 0000000000..680d2a2422
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/81.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ;,
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/82.js b/testing/web-platform/tests/server-timing/resources/parsing/82.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/82.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/82.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/82.js.sub.headers
new file mode 100644
index 0000000000..7ab1448b88
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/82.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ,;
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/83.js b/testing/web-platform/tests/server-timing/resources/parsing/83.js
new file mode 100644
index 0000000000..2848a1c82b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/83.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/83.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/83.js.sub.headers
new file mode 100644
index 0000000000..bd079bc62a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/83.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =;,
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/84.js b/testing/web-platform/tests/server-timing/resources/parsing/84.js
new file mode 100644
index 0000000000..1d5893301e
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/84.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"tabs-should-get-trimmed","dur":42}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/84.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/84.js.sub.headers
new file mode 100644
index 0000000000..ae864b539b
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/84.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric; desc= tabs-should-get-trimmed ;dur= 42
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/9.js b/testing/web-platform/tests/server-timing/resources/parsing/9.js
new file mode 100644
index 0000000000..3048f3fa7a
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/9.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript, [{"name":"metric","desc":"descr;,=iption","dur":123.4}])
diff --git a/testing/web-platform/tests/server-timing/resources/parsing/9.js.sub.headers b/testing/web-platform/tests/server-timing/resources/parsing/9.js.sub.headers
new file mode 100644
index 0000000000..c385706d33
--- /dev/null
+++ b/testing/web-platform/tests/server-timing/resources/parsing/9.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="descr;,=iption";dur=123.4