longtask-in-sibling-iframe-crossorigin.html (1831B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>LongTask Timing: long task in cross-origin sibling iframe</title> 4 <body> 5 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="/common/get-host-info.sub.js"></script> 9 10 <script> 11 const sibling_url = new URL("resources/subframe-with-longtask.html", 12 new URL(location.pathname, 13 get_host_info().HTTPS_REMOTE_ORIGIN)).href; 14 15 async_test(t => { 16 assert_implements(window.PerformanceLongTaskTiming, 'Longtasks are not supported.'); 17 window.addEventListener('message', t.step_func(e => { 18 assert_equals(e.data['entryType'], 'longtask'); 19 assert_equals(e.data['frame-attribution'], 'cross-origin-unreachable'); 20 assert_equals(e.data['task-attribution'], 'unknown'); 21 assert_equals(e.data['containerType'], 'window'); 22 assert_equals(e.data['containerId'], ''); 23 assert_equals(e.data['containerName'], ''); 24 assert_equals(e.data['containerSrc'], ''); 25 t.done(); 26 })); 27 const observingFrame = document.createElement('iframe'); 28 observingFrame.id = 'observing-iframe-id'; 29 observingFrame.name = 'observing-iframe-name'; 30 document.body.appendChild(observingFrame); 31 observingFrame.src = 'resources/subframe-observing-longtask.html' 32 33 observingFrame.onload = () => { 34 /* Create a cross-origin iframe that generates a long task. */ 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 = sibling_url; 40 }; 41 }, 'Performance longtask entries from cross-origin iframe are observable in its sibling.'); 42 </script> 43 </body>