blob: fd799b051d00021e999c92987111ffae80b95909 [file] [log] [blame]
(async function(testRunner) {
const {page, session, dp} = await testRunner.startBlank('Basic test for LargestContentfulPaint support in PerformanceTimeline');
const unstableFields = ['frameId'];
const events = [];
const TestHelper = await testRunner.loadScript('resources/performance-timeline-test.js');
const testHelper = new TestHelper(dp);
await dp.PerformanceTimeline.enable({eventTypes: ['largest-contentful-paint']});
dp.PerformanceTimeline.onTimelineEventAdded(event => events.push(event.params.event));
session.navigate(testRunner.url('resources/lcp.html'));
await dp.PerformanceTimeline.onceTimelineEventAdded();
session.evaluate(`
const img = document.createElement("img");
img.id = "image";
img.src = "${testRunner.url('../../images/resources/green-256x256.jpg')}";
document.body.appendChild(img);
`);
await dp.PerformanceTimeline.onceTimelineEventAdded();
const endTime = Date.now();
for (const event of events) {
testHelper.patchTimes(event, ['time']);
testHelper.patchTimes(event.lcpDetails, ['renderTime', 'loadTime']);
await patchFields(event.lcpDetails);
}
testRunner.log(events, null, unstableFields);
testRunner.completeTest();
async function patchFields(object) {
if (object.url)
object.url = testRunner.trimURL(object.url);
if (object.nodeId)
object.nodeId = await testHelper.describeNode(object.nodeId);
}
})