blob: 51c58afff0558ce3870aeeaf8d5cbed5eff7ed57 [file] [log] [blame]
spanickera5b95cb2017-03-10 22:42:551<!DOCTYPE HTML>
2<meta charset=utf-8>
3<title>LongTask Timing: long task in external script</title>
4<body>
5
6<script src="/resources/testharness.js"></script>
7<script src="/resources/testharnessreport.js"></script>
spanickera5b95cb2017-03-10 22:42:558
9<h1>Long Task: External Script</h1>
10<div id="log"></div>
11<script>
12 async_test(function (t) {
Nicolas Penacd751192018-07-10 21:05:2713 if (typeof PerformanceLongTaskTiming === 'undefined') {
14 assert_unreached("Longtasks are not supported.");
15 t.done();
16 }
npm@chromium.org71ff8882017-08-15 17:22:0117 const observer = new PerformanceObserver(
spanickera5b95cb2017-03-10 22:42:5518 t.step_func(function (entryList) {
npm@chromium.org71ff8882017-08-15 17:22:0119 const entries = entryList.getEntries();
spanickera5b95cb2017-03-10 22:42:5520 assert_equals(entries.length, 1,
npm@chromium.org71ff8882017-08-15 17:22:0121 'Exactly one entry is expected.');
22 const longtask = entries[0];
23 assert_equals(longtask.entryType, 'longtask');
24 assert_equals(longtask.name, 'self');
spanickera5b95cb2017-03-10 22:42:5525 assert_greater_than(longtask.duration, 50);
spanickera5b95cb2017-03-10 22:42:5526
27 // Assert the TaskAttributionTiming entry in attribution.
28 assert_equals(longtask.attribution.length, 1,
npm@chromium.org71ff8882017-08-15 17:22:0129 'Exactly one attribution entry is expected');
30 const attribution = longtask.attribution[0];
31 assert_equals(attribution.entryType, 'taskattribution');
32 assert_equals(attribution.name, 'script');
spanickera5b95cb2017-03-10 22:42:5533 assert_equals(attribution.duration, 0);
34 assert_equals(attribution.startTime, 0);
npm@chromium.org71ff8882017-08-15 17:22:0135 assert_equals(attribution.containerId, '');
36 assert_equals(attribution.containerName, '');
37 assert_equals(attribution.containerSrc, '');
spanickera5b95cb2017-03-10 22:42:5538 observer.disconnect();
39 t.done();
40 })
41 );
npm@chromium.org71ff8882017-08-15 17:22:0142 observer.observe({entryTypes: ['longtask']});
Nicolas Pena930d2ef2018-07-16 20:18:1343 window.onload = () => {
44 const script = document.createElement('script');
45 script.src = 'resources/makelongtask.js';
46 document.body.appendChild(script);
47 }
npm@chromium.org71ff8882017-08-15 17:22:0148}, 'Performance longtask entries are observable.');
spanickera5b95cb2017-03-10 22:42:5549</script>
spanickera5b95cb2017-03-10 22:42:5550</body>