tor-browser

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

longtask-in-raf.html (1970B)


      1 <!DOCTYPE HTML>
      2 <head>
      3  <meta charset=utf-8>
      4  <title>LongTask Timing: long task in rAF</title>
      5  <script src="/resources/testharness.js"></script>
      6  <script src="/resources/testharnessreport.js"></script>
      7  <script src="resources/utils.js"></script>
      8 </head>
      9 <body>
     10  <h1>Long Task: requestAnimationFrame</h1>
     11  <div id="log"></div>
     12  <script>
     13    promise_test(async () => {
     14      assert_implements(window.PerformanceLongTaskTiming, 'Longtasks are not supported.');
     15      await new Promise(resolve => {
     16        window.addEventListener('load', resolve);
     17      });
     18 
     19      let entries = await new Promise(resolve => {
     20        new PerformanceObserver(
     21          entryList => {
     22            const entries = entryList.getEntries().filter(
     23              e => e.name == 'self' && e.attribution[0].containerType == 'window');
     24            if (entries) {
     25              resolve(entries);
     26            }
     27          }).observe({ entryTypes: ['longtask'] });
     28 
     29        const script = document.createElement('script');
     30        script.src = 'resources/raflongtask.js';
     31        document.body.appendChild(script);
     32      });
     33 
     34      assert_equals(entries.length, 1,
     35        'Exactly one entry is expected.');
     36      const longtask = entries[0];
     37      checkLongTaskEntry(longtask);
     38      // Assert the TaskAttributionTiming entry in attribution.
     39      assert_equals(longtask.attribution.length, 1,
     40        'Exactly one attribution entry is expected');
     41      const attribution = longtask.attribution[0];
     42      assert_equals(attribution.entryType, 'taskattribution');
     43      assert_equals(attribution.name, 'unknown');
     44      assert_equals(attribution.duration, 0);
     45      assert_equals(attribution.startTime, 0);
     46      assert_equals(attribution.containerType, 'window');
     47      assert_equals(attribution.containerId, '');
     48      assert_equals(attribution.containerName, '');
     49      assert_equals(attribution.containerSrc, '');
     50    }, 'Performance longtask entries are observable.');
     51  </script>
     52 </body>