<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Element Timing: do not observe text in shadow tree</title>
<style>
body {
  margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/element-timing-helpers.js"></script>
<div id='target'></div>
<script>
  async_test(function (t) {
    assert_implements(window.PerformanceElementTiming, "PerformanceElementTiming is not implemented");
    const observer = new PerformanceObserver(
      t.step_func_done(function(entryList) {
        assert_unreached('Should not observe text elements in shadow trees!');
      })
    );
    observer.observe({entryTypes: ['element']});
    // We add the text during onload to be sure that the observer is registered
    // in time for it to observe the element timing.
    window.onload = () => {
      // Add text of width equal to 100 and height equal to 100.
      const text = document.createElement('p');
      text.innerHTML = 'Text';
      text.setAttribute('elementtiming', 'my_text');
      const shadowRoot = document.getElementById('target').attachShadow({mode: 'open'});
      shadowRoot.appendChild(text);
      t.step_timeout(() => {
        // Assume entry was not dispatched, so test passes.
        t.done();
      }, 500);
    };
  }, 'Text in shadow tree with elementtiming attribute is not observable.');
</script>
