OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../../resources/testharness.js"></script> | 2 <script src="../../resources/testharness.js"></script> |
3 <script src="../../resources/testharnessreport.js"></script> | 3 <script src="../../resources/testharnessreport.js"></script> |
4 <script> | 4 <script> |
5 | 5 |
6 async_test(function (t) { | 6 async_test(function (t) { |
7 var observer = new PerformanceObserver( | 7 var observer = new PerformanceObserver( |
8 t.step_func(function (entryList) { | 8 t.step_func(function (entryList) { |
9 var entries = entryList.getEntries(); | 9 var entries = entryList.getEntries(); |
10 assert_equals(entries.length, 1, | 10 assert_equals(entries.length, 1, |
11 "Exactly one entry is expected."); | 11 "Exactly one entry is expected."); |
12 var longtask = entries[0]; | 12 var longtask = entries[0]; |
13 assert_equals(longtask.entryType, "longtask", | 13 assert_equals(longtask.entryType, "longtask"); |
14 "entryType expected to be: longtask"); | 14 assert_equals(longtask.name, "self"); |
15 assert_equals(longtask.name, "same-origin-self", | 15 assert_greater_than(longtask.duration, 50); |
16 "name expected to be: same-origin-self"); | |
17 assert_greater_than(longtask.duration, 50, | |
18 "duration expected to be greater than 50ms threshold"); | |
19 assert_equals(longtask.startTime, Math.floor(longtask.startTime), | 16 assert_equals(longtask.startTime, Math.floor(longtask.startTime), |
20 "startTime expected to have 1 miillisecond granularity"); | 17 "startTime expected to have 1 miillisecond granularity"); |
21 | 18 |
22 // Assert the TaskAttributionTiming entry in attribution. | 19 // Assert the TaskAttributionTiming entry in attribution. |
23 assert_equals(longtask.attribution.length, 1, | 20 assert_equals(longtask.attribution.length, 1, |
24 "Exactly one attribution entry is expected"); | 21 "Exactly one attribution entry is expected"); |
25 var attribution = longtask.attribution[0]; | 22 var attribution = longtask.attribution[0]; |
26 assert_equals(attribution.entryType, "taskattribution"); | 23 assert_equals(attribution.entryType, "taskattribution"); |
27 assert_equals(attribution.name, "frame"); | 24 assert_equals(attribution.name, "script"); |
28 assert_equals(attribution.duration, 0); | 25 assert_equals(attribution.duration, 0); |
29 assert_equals(attribution.startTime, 0); | 26 assert_equals(attribution.startTime, 0); |
30 | 27 |
31 observer.disconnect(); | 28 observer.disconnect(); |
32 t.done(); | 29 t.done(); |
33 }) | 30 }) |
34 ); | 31 ); |
35 observer.observe({entryTypes: ["longtask"]}); | 32 observer.observe({entryTypes: ["longtask"]}); |
36 | 33 |
37 /* Generate a slow task */ | 34 /* Generate a slow task */ |
38 var begin = window.performance.now(); | 35 var begin = window.performance.now(); |
39 while (window.performance.now() < begin + 51); | 36 while (window.performance.now() < begin + 51); |
40 | 37 |
41 }, "Performance longtask entries are observable"); | 38 }, "Performance longtask entries are observable"); |
42 | 39 |
43 </script> | 40 </script> |
OLD | NEW |