<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Largest Contentful Paint: observe image.</title>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/largest-contentful-paint-helpers.js"></script>
<script>
  async_test(function (t) {
    assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented");
    const beforeLoad = performance.now();
    const observer = new PerformanceObserver(
      t.step_func_done(function(entryList) {
        assert_equals(entryList.getEntries().length, 1);
        const entry = entryList.getEntries()[0];

        const url = window.location.origin + '/images/blue.png';
        // blue.png is 133 by 106.
        const size = 133 * 106;
        checkImage(entry, url, 'image_id', size, beforeLoad);
      })
    );
    observer.observe({type: 'largest-contentful-paint', buffered: true});
  }, 'Same-origin image after a JS initiated scroll event is observable.');
  document.body.dispatchEvent(new Event('scroll'));
  const image = new Image();
  image.id = 'image_id';
  image.src = '/images/blue.png';
  document.body.appendChild(image);
</script>

</body>
