diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/longtask-timing/resources | |
parent | Initial commit. (diff) | |
download | firefox-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')
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); +} |