tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>