| spanicker | a5b95cb | 2017-03-10 22:42:55 | [diff] [blame] | 1 | <!DOCTYPE HTML> |
| 2 | <meta charset=utf-8> |
| 3 | <title>LongTask Timing: long task in sibling iframe</title> |
| 4 | <body> |
| 5 | |
| 6 | <script src="/resources/testharness.js"></script> |
| 7 | <script src="/resources/testharnessreport.js"></script> |
| 8 | |
| 9 | <script> |
| 10 | async_test(t => { |
| Nicolas Pena | cd75119 | 2018-07-10 21:05:27 | [diff] [blame] | 11 | if (typeof PerformanceLongTaskTiming === 'undefined') { |
| 12 | assert_unreached("Longtasks are not supported."); |
| 13 | t.done(); |
| 14 | } |
| npm@chromium.org | 71ff888 | 2017-08-15 17:22:01 | [diff] [blame] | 15 | window.addEventListener('message', t.step_func(e => { |
| Nicolas Pena | 17feed5 | 2017-12-04 18:27:41 | [diff] [blame] | 16 | assert_equals(e.data['entryType'], 'longtask'); |
| Nicolás Peña Moreno | 493fdc7 | 2019-02-21 17:41:58 | [diff] [blame] | 17 | // Ignore any long task that may be produced by the top-level frame. |
| 18 | if (e.data['frame-attribution'] === 'same-origin-ancestor') |
| 19 | return; |
| 20 | |
| Nicolas Pena | 17feed5 | 2017-12-04 18:27:41 | [diff] [blame] | 21 | assert_equals(e.data['frame-attribution'], 'same-origin'); |
| Nicolas Pena | 4309ceb | 2018-11-15 20:00:44 | [diff] [blame] | 22 | assert_equals(e.data['task-attribution'], 'unknown'); |
| Nicolas Pena | 17feed5 | 2017-12-04 18:27:41 | [diff] [blame] | 23 | assert_equals(e.data['containerId'], 'longtask-iframe-id'); |
| 24 | assert_equals(e.data['containerName'], 'longtask-iframe-name'); |
| 25 | assert_equals(e.data['containerSrc'], 'resources/subframe-with-longtask.html'); |
| spanicker | a5b95cb | 2017-03-10 22:42:55 | [diff] [blame] | 26 | t.done(); |
| 27 | })); |
| Nicolas Pena | 17feed5 | 2017-12-04 18:27:41 | [diff] [blame] | 28 | const observingFrame = document.createElement('iframe'); |
| 29 | observingFrame.id = 'observing-iframe-id'; |
| 30 | observingFrame.name = 'observing-iframe-name'; |
| 31 | document.body.appendChild(observingFrame); |
| 32 | observingFrame.src = 'resources/subframe-observing-longtask.html' |
| spanicker | a5b95cb | 2017-03-10 22:42:55 | [diff] [blame] | 33 | |
| Nicolas Pena | 930d2ef | 2018-07-16 20:18:13 | [diff] [blame] | 34 | observingFrame.onload = () => { |
| 35 | const longtaskFrame = document.createElement('iframe'); |
| 36 | longtaskFrame.id = 'longtask-iframe-id'; |
| 37 | longtaskFrame.name = 'longtask-iframe-name'; |
| 38 | document.body.appendChild(longtaskFrame); |
| 39 | longtaskFrame.src = 'resources/subframe-with-longtask.html' |
| 40 | }; |
| Nicolas Pena | 17feed5 | 2017-12-04 18:27:41 | [diff] [blame] | 41 | }, 'Performance longtask entries are observable in sibling iframe.'); |
| spanicker | a5b95cb | 2017-03-10 22:42:55 | [diff] [blame] | 42 | </script> |
| npm@chromium.org | 71ff888 | 2017-08-15 17:22:01 | [diff] [blame] | 43 | </body> |