summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resource-timing/resource_timing.worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/resource-timing/resource_timing.worker.js')
-rw-r--r--testing/web-platform/tests/resource-timing/resource_timing.worker.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resource-timing/resource_timing.worker.js b/testing/web-platform/tests/resource-timing/resource_timing.worker.js
new file mode 100644
index 0000000000..dafd2e9af6
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/resource_timing.worker.js
@@ -0,0 +1,64 @@
+importScripts("/resources/testharness.js");
+
+function check(initiatorType, protocol) {
+ let entries = performance.getEntries();
+ assert_equals(entries.length, 1);
+
+ assert_true(entries[0] instanceof PerformanceEntry);
+ assert_equals(entries[0].entryType, "resource");
+ assert_true(entries[0].startTime > 0);
+ assert_true(entries[0].duration > 0);
+
+ assert_true(entries[0] instanceof PerformanceResourceTiming);
+ assert_equals(entries[0].initiatorType, initiatorType);
+ assert_equals(entries[0].nextHopProtocol, protocol);
+}
+
+async_test(t => {
+ performance.clearResourceTimings();
+
+ // Fetch
+ fetch("resources/empty.js")
+ .then(r => r.blob())
+ .then(blob => {
+ check("fetch", "http/1.1");
+ })
+
+ // XMLHttpRequest
+ .then(() => {
+ return new Promise(resolve => {
+ performance.clearResourceTimings();
+ let xhr = new XMLHttpRequest();
+ xhr.onload = () => {
+ check("xmlhttprequest", "http/1.1");
+ resolve();
+ };
+ xhr.open("GET", "resources/empty.js");
+ xhr.send();
+ });
+ })
+
+ // Sync XMLHttpREquest
+ .then(() => {
+ performance.clearResourceTimings();
+ let xhr = new XMLHttpRequest();
+ xhr.open("GET", "resources/empty.js", false);
+ xhr.send();
+
+ check("xmlhttprequest", "http/1.1");
+ })
+
+ // ImportScripts
+ .then(() => {
+ performance.clearResourceTimings();
+ importScripts(["resources/empty.js"]);
+ check("other", "http/1.1");
+ })
+
+ // All done.
+ .then(() => {
+ t.done();
+ });
+}, "Performance Resource Entries in workers");
+
+done();