tor-browser

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

longtask-attributes.html (1836B)


      1 <!DOCTYPE HTML>
      2 <meta charset=utf-8>
      3 <title>LongTask Timing: validate long task attributes</title>
      4 <body>
      5 
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <script src="resources/utils.js"></script>
      9 
     10 <h1>Long Task Attributes</h1>
     11 <div id="log"></div>
     12 <script>
     13  async_test(function (t) {
     14    assert_implements(window.PerformanceLongTaskTiming, 'Longtasks are not supported.');
     15    const observer = new PerformanceObserver(
     16        t.step_func(function (entryList) {
     17            const entries = entryList.getEntries();
     18            assert_equals(entries.length, 1,
     19                'Exactly one entry is expected.');
     20            const longtask = entries[0];
     21            checkLongTaskEntry(longtask);
     22            // Assert the TaskAttributionTiming entry in attribution.
     23            assert_equals(longtask.attribution.length, 1,
     24                'Exactly one attribution entry is expected');
     25            const attribution = longtask.attribution[0];
     26            assert_equals(attribution.entryType, 'taskattribution');
     27            assert_equals(attribution.name, 'unknown');
     28            assert_equals(attribution.duration, 0);
     29            assert_equals(attribution.startTime, 0);
     30            assert_equals(attribution.containerType, 'window');
     31            assert_equals(attribution.containerId, '');
     32            assert_equals(attribution.containerName, '');
     33            assert_equals(attribution.containerSrc, '');
     34            observer.disconnect();
     35            t.done();
     36        })
     37    );
     38    observer.observe({entryTypes: ['longtask']});
     39 
     40    window.onload = () => {
     41        /* Generate a slow task */
     42        const begin = window.performance.now();
     43        while (window.performance.now() < begin + 60);
     44    };
     45 }, 'Performance longtask entries are observable.');
     46 </script>
     47 
     48 </body>