summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html')
-rw-r--r--testing/web-platform/tests/longtask-timing/resources/subframe-observing-longtask.html31
1 files changed, 31 insertions, 0 deletions
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>