<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Element Timing: 'element' entries are not accessible via performance timeline</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/element-timing-helpers.js"></script>
<script>
  let img;
  async_test(function (t) {
    assert_implements(window.PerformanceElementTiming, "PerformanceElementTiming is not implemented");
    const beforeRender = performance.now();
    new PerformanceObserver(
      t.step_func_done(function(entryList) {
        assert_equals(entryList.getEntries().length, 1);
        const entry = entryList.getEntries()[0];
        assert_equals(entry.entryType, 'element');
        assert_equals(entry.name, 'image-paint');

        const entriesByName = performance.getEntriesByName('image-paint', 'element');
        const entriesByType = performance.getEntriesByType('element');
        const allEntries = performance.getEntries();
        assert_equals(entriesByName.length, 0, 'Element Timing entry should not be retrievable by getEntriesByName');
        assert_equals(entriesByType.length, 0, 'Element Timing entry should not be retrievable by getEntriesByType');
        assert_equals(allEntries.filter(e => e.entryType === 'element').length, 0, 'Element Timing entry should not be retrievable by getEntries');
      })
    ).observe({type: 'element', buffered: true});
  }, 'Element Timing entries are not accessible via performance.getEntries*');
</script>
<img src='resources/square100.png' elementtiming='my_image' id='my_id'/>
