| <!DOCTYPE HTML> |
| <meta charset=utf-8> |
| <title>Element Timing: observe text that is initially not visible</title> |
| <body> |
| <style> |
| .big { |
| width: 100%; |
| height: 100vh; |
| } |
| </style> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="resources/element-timing-helpers.js"></script> |
| <div class='big'></div> |
| <p elementtiming='observeMe'>Test text</p> |
| <script> |
| async_test((t) => { |
| assert_implements(window.PerformanceElementTiming, "PerformanceElementTiming is not implemented"); |
| const observer = new PerformanceObserver(t.step_func_done(() => {})); |
| observer.observe({type: 'element', buffered: true}); |
| window.onload = () => { |
| // The div occupies the whole screen because it occupies 100% of the height. |
| // We scroll to the end of the document so that the paragraph becomes visible. |
| // A user agent could paint the text before or after scrolling, but either way |
| // it must produce an entry for it. |
| window.scrollTo(0,document.scrollingElement.scrollHeight); |
| }; |
| }, 'Paragraph with elementtiming attribute is observed even when not initially visible.'); |
| </script> |
| </body> |