Skip to content

Commit

Permalink
Add test for resized image not being reconsidered for LCP (web-platfo…
Browse files Browse the repository at this point in the history
…rm-tests#42900)

This is to verify an image that is resized to be larger would not be
reconsidered as LCP.

Change-Id: I0a555bc418983baaddc405fd02e44e7ff85c8059
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4995606
Reviewed-by: Ian Clelland <[email protected]>
Commit-Queue: Hao Liu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1244062}

Co-authored-by: Hao Liu <[email protected]>
  • Loading branch information
chromium-wpt-export-bot and haoliuk authored Jan 13, 2024
1 parent 8bc9d6c commit a12f1c7
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions largest-contentful-paint/resized-image-not-reconsidered.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Resized Image Is Not Reconsidered as LCP.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<body>
<img src='/images/lcp-256x256.png' id='image_id' height="100" width="50" />
<script>
let image_id = 'image_id';

// Create a promise that resolves when an LCP is observed.
const lcp_observation_promise = image_src => {
return new Promise(resolve => {
new PerformanceObserver((entryList) => {
let lcpEntries = entryList.getEntries().filter(e => e.id == image_id);

if (lcpEntries) {
resolve(lcpEntries);
}
}).observe({ type: 'largest-contentful-paint', buffered: true });
});
}

promise_test(async t => {
const lcpEntriesInitial = await lcp_observation_promise();
assert_equals(lcpEntriesInitial.length, 1);

// Resize image.
document.getElementById('image_id').height = 150;

// Wait for a repaint.
const lcpEntriesAfterImageResizing =
await new Promise(resolve => {
t.step_timeout(window.requestAnimationFrame(async () => {
resolve(await lcp_observation_promise());
}), 100);
});

// No additional LCP entry is emitted after the image is resized to be larger.
assert_equals(lcpEntriesAfterImageResizing.length, 1);
assert_true(lcpEntriesInitial[0] === lcpEntriesAfterImageResizing[0]);
}, "Resized image should not be reconsidered as LCP");
</script>
</body>

0 comments on commit a12f1c7

Please sign in to comment.