tor-browser

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

buffered-flag.window.js (1479B)


      1 setup({"hide_test_state": true});
      2 async_test(t => {
      3  assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
      4  // First observer creates second in callback to ensure the entry has been dispatched by the time
      5  // the second observer begins observing.
      6  let entries_seen = 0;
      7  new PerformanceObserver(firstList => {
      8    entries_seen += firstList.getEntries().length;
      9    // Abort if we have not yet received both paint entries.
     10    if (entries_seen < 2)
     11      return;
     12 
     13    // Second observer requires 'buffered: true' to see the entries.
     14    let firstPaintSeen = false;
     15    let firstContentfulPaintSeen = false;
     16    new PerformanceObserver(list => {
     17      list.getEntries().forEach(t.step_func(entry => {
     18        assert_equals(entry.entryType, 'paint');
     19        if (entry.name === 'first-paint')
     20          firstPaintSeen = true;
     21        else if (entry.name === 'first-contentful-paint')
     22          firstContentfulPaintSeen = true;
     23        else
     24          assert_unreached('The observer should only see first paint or first contentful paint!');
     25 
     26        if (firstPaintSeen && firstContentfulPaintSeen)
     27          t.done();
     28      }));
     29    }).observe({'type': 'paint', buffered: true});
     30  }).observe({'entryTypes': ['paint']});
     31 
     32  // Trigger the first paint entries
     33  const img = document.createElement("IMG");
     34  img.src = "resources/circles.png";
     35  document.body.appendChild(img);
     36 }, "PerformanceObserver with buffered flag sees previous paint entries.");