summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/longtask-timing/resources
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/longtask-timing/resources
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/longtask-timing/resources')
-rw-r--r--testing/web-platform/tests/longtask-timing/resources/makelongtask.js3
-rw-r--r--testing/web-platform/tests/longtask-timing/resources/raflongtask.js5
-rw-r--r--testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html31
-rw-r--r--testing/web-platform/tests/longtask-timing/resources/subframe-with-longtask.html11
-rw-r--r--testing/web-platform/tests/longtask-timing/resources/utils.js13
5 files changed, 63 insertions, 0 deletions
diff --git a/testing/web-platform/tests/longtask-timing/resources/makelongtask.js b/testing/web-platform/tests/longtask-timing/resources/makelongtask.js
new file mode 100644
index 0000000000..75de5453b5
--- /dev/null
+++ b/testing/web-platform/tests/longtask-timing/resources/makelongtask.js
@@ -0,0 +1,3 @@
+/* Generate a slow task. */
+const begin = window.performance.now();
+while (window.performance.now() < begin + 60);
diff --git a/testing/web-platform/tests/longtask-timing/resources/raflongtask.js b/testing/web-platform/tests/longtask-timing/resources/raflongtask.js
new file mode 100644
index 0000000000..ec39cb896e
--- /dev/null
+++ b/testing/web-platform/tests/longtask-timing/resources/raflongtask.js
@@ -0,0 +1,5 @@
+window.requestAnimationFrame(function() {
+ /* Generate a slow task. */
+ const begin = window.performance.now();
+ while (window.performance.now() < begin + 60);
+});
diff --git a/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html b/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html
new file mode 100644
index 0000000000..125ff1e4cb
--- /dev/null
+++ b/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<meta name="viewport" content="width=device-width">
+<title>Child Iframe</title>
+<h1>Child Iframe observing long tasks</h1>
+
+<script>
+ const observer = new PerformanceObserver(function(entryList) {
+ for (i = 0; i < entryList.getEntries().length; i++) {
+ const longtask = entryList.getEntries()[i];
+ // Ignore long task generated within here, as part of making this iframe.
+ // Ignore multiple-contexts and unknown because they cause longtask-in-parentiframe test to be flaky.
+ if (longtask.name == 'self' ||
+ longtask.name == 'multiple-contexts' || longtask.name == 'unknown')
+ return;
+ // TODO(panicker): include containerType.
+ const attribution = longtask.attribution[0];
+ const entryContents = {
+ 'entryType': longtask.entryType,
+ 'frame-attribution': longtask.name,
+ 'task-attribution': attribution.name,
+ 'containerType': attribution.containerType,
+ 'containerId': attribution.containerId,
+ 'containerName': attribution.containerName,
+ 'containerSrc': attribution.containerSrc
+ };
+ top.postMessage(entryContents, '*');
+ }
+ });
+ observer.observe({entryTypes: ['longtask']});
+</script>
diff --git a/testing/web-platform/tests/longtask-timing/resources/subframe-with-longtask.html b/testing/web-platform/tests/longtask-timing/resources/subframe-with-longtask.html
new file mode 100644
index 0000000000..298b252d18
--- /dev/null
+++ b/testing/web-platform/tests/longtask-timing/resources/subframe-with-longtask.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<meta name="viewport" content="width=device-width">
+
+<title>Long Task Iframe</title>
+<h1>Long Task in Inline Script</h1>
+
+<script>
+ const begin = window.performance.now();
+ while (window.performance.now() < begin + 60);
+</script>
diff --git a/testing/web-platform/tests/longtask-timing/resources/utils.js b/testing/web-platform/tests/longtask-timing/resources/utils.js
new file mode 100644
index 0000000000..36bd6c7bc2
--- /dev/null
+++ b/testing/web-platform/tests/longtask-timing/resources/utils.js
@@ -0,0 +1,13 @@
+function checkLongTaskEntry(longtask, name='self') {
+ assert_equals(longtask.entryType, 'longtask');
+ assert_equals(longtask.name, name);
+ assert_true(Number.isInteger(longtask.duration));
+ assert_greater_than_equal(longtask.duration, 50);
+ assert_greater_than_equal(longtask.startTime, 0);
+ const currentTime = performance.now();
+ assert_less_than_equal(longtask.startTime, currentTime);
+}
+
+function hasUnrelatedTaskName(taskName, expectedTaskName) {
+ return (taskName !== expectedTaskName);
+}