|  | <!DOCTYPE HTML> | 
|  | <meta charset=utf-8> | 
|  | <title>Largest Contentful Paint: observe text.</title> | 
|  | <body> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <style> | 
|  | p { | 
|  | font-size: 12px; | 
|  | } | 
|  | </style> | 
|  | <script> | 
|  | async_test(function (t) { | 
|  | assert_precondition(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented"); | 
|  | let beforeRender; | 
|  | const observer = new PerformanceObserver( | 
|  | t.step_func_done(function(entryList) { | 
|  | assert_equals(entryList.getEntries().length, 1); | 
|  | const entry = entryList.getEntries()[0]; | 
|  | assert_equals(entry.entryType, 'largest-contentful-paint'); | 
|  | assert_greater_than_equal(entry.renderTime, beforeRender); | 
|  | assert_greater_than_equal(performance.now(), entry.renderTime); | 
|  | assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); | 
|  | assert_equals(entry.duration, 0); | 
|  | // Some lower bound: height of at least 12 px. | 
|  | // Width of at least 100 px. | 
|  | // TODO: find a good way to bound text width. | 
|  | assert_greater_than_equal(entry.size, 1200); | 
|  | assert_equals(entry.loadTime, 0); | 
|  | assert_equals(entry.id, 'my_text'); | 
|  | assert_equals(entry.url, ''); | 
|  | assert_equals(entry.element, document.getElementById('my_text')); | 
|  | }) | 
|  | ); | 
|  | observer.observe({type: 'largest-contentful-paint', buffered: true}); | 
|  | beforeRender = performance.now(); | 
|  | }, 'Element with elementtiming attribute is observable.'); | 
|  | </script> | 
|  |  | 
|  | <p id='my_text'>This is important text! :)</p> | 
|  | </body> |