tor-browser

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

child-painting-first-image.html (1549B)


      1 <!DOCTYPE html>
      2 <body>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 
      6 <script>
      7 var entriesExpectToReceive = [
      8    {
      9        'entryType': 'paint',
     10        'name': 'first-paint'
     11    },
     12    {
     13        'entryType': 'paint',
     14        'name': 'first-contentful-paint'
     15    }
     16 ];
     17 
     18 setup({"hide_test_state": true});
     19 async_test(function (t) {
     20    assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
     21    window.addEventListener('message', t.step_func(e => {
     22        // When only child frame paints, expect only first-paint.
     23        for (let i = 0; i < entriesExpectToReceive.length; i++) {
     24            if (entriesExpectToReceive[i].entryType == e.data.entryType &&
     25                entriesExpectToReceive[i].name == e.data.name) {
     26                entriesExpectToReceive.splice(i, 1);
     27                break;
     28            }
     29        }
     30 
     31        if (entriesExpectToReceive.length == 0) {
     32            const bufferedEntries = performance.getEntriesByType('paint');
     33            assert_equals(bufferedEntries.length, 1);
     34            assert_equals(bufferedEntries[0].entryType, 'paint');
     35            assert_equals(bufferedEntries[0].name, 'first-paint');
     36            t.done();
     37        }
     38    }));
     39    const iframe = document.createElement('iframe');
     40    iframe.id = 'child-iframe';
     41    iframe.src = '../resources/subframe-painting.html';
     42    document.body.appendChild(iframe);
     43 }, 'Parent frame ignores paint-timing events fired from child image rendering.');
     44 </script>
     45 </body>
     46 </html>