summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/element-timing/retrievability.html
blob: cd2c2a956e194cd06b5374a26dc9f1b06fe5f482 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!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'/>