tor-browser

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

multiple-image-same-src.html (2233B)


      1 <!DOCTYPE HTML>
      2 <meta charset=utf-8>
      3 <title>Largest Contentful Paint:dynamically appended image with different
      4    dimensions but same src triggers new entry.</title>
      5 <body>
      6  <script src="/resources/testharness.js"></script>
      7  <script src="/resources/testharnessreport.js"></script>
      8  <script src="resources/largest-contentful-paint-helpers.js"></script>
      9  <img src='/images/black-rectangle.png' id='image_id' width="50" />
     10  <script>
     11    async_test(function (t) {
     12      assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented");
     13      let beforeLoad = performance.now();
     14      let beforeSecondImageLoad = performance.now();
     15      let firstCallback = true;
     16      // black-rectangle.png is 50 x 25.
     17      const original_rect_size = 50 * 25;
     18      // The bigger black rectangle is 100 x 50, but defined with width="50".
     19      const bigger_rect_size = 100 * 50;
     20      const observer = new PerformanceObserver(
     21        t.step_func(function (entryList) {
     22          assert_equals(entryList.getEntries().length, 1);
     23          const entry = entryList.getEntries()[0];
     24          const url = window.location.origin + '/images/black-rectangle.png';
     25          if (firstCallback) {
     26            // Checks the original black rectangle.
     27            // TODO(https://crbug.com/1411616): we're testing approximated values.
     28            checkImage(entry, url, 'image_id', original_rect_size,
     29              beforeLoad, ["approximateSize"]);
     30            // Creates a new bigger black rectangle.
     31            const img = document.createElement('img');
     32            img.id = 'new_image_id';
     33            img.src = url;
     34            img.width = 100;
     35            beforeSecondImageLoad = performance.now();
     36            firstCallback = false;
     37            document.body.appendChild(img);
     38          } else {
     39            // Checks the new black rectangle.
     40            checkImage(entry, url, 'new_image_id', bigger_rect_size, beforeSecondImageLoad);
     41            t.done();
     42          }
     43        })
     44      );
     45      observer.observe({ type: 'largest-contentful-paint', buffered: true });
     46    }, 'Largest Contentful Paint:dynamically appended image with different ' +
     47    'dimensions but same src triggers new entry.');
     48  </script>
     49 </body>