LCP: Use largest painted image for web-exposed entry [chromium/src : main]

0 views
Skip to first unread message

Michal Mocny (Gerrit)

unread,
Jan 14, 2026, 7:44:09 PMJan 14
to Scott Haseley, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org
Attention needed from Scott Haseley

Michal Mocny voted and added 2 comments

Votes added by Michal Mocny

Code-Review+1

2 comments

Commit Message
Line 23, Patchset 6 (Latest):painted image instead of largest pending image. This does not affect
UKM/metrics. This matches the behavior agreed upon by the WebPerf
Michal Mocny . resolved

Is this meant to be "yet" or "by design"? IIUC because UKM only reports the final largest, and because we don't report if we still have a pending, it might not matter for UKM?

(Though I still would like to see more eager reporting.)

File third_party/blink/web_tests/external/wpt/largest-contentful-paint/performance-entry-sequence.tentative.html
Line 29, Patchset 6 (Latest): // Frame 1: paint three divs, with one being the largerst . This should produce
Michal Mocny . unresolved

nit: largest

Open in Gerrit

Related details

Attention is currently required from:
  • Scott Haseley
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I5275906769b07aca6c671c846756070333f2b09c
Gerrit-Change-Number: 7269039
Gerrit-PatchSet: 6
Gerrit-Owner: Scott Haseley <shas...@chromium.org>
Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
Gerrit-Attention: Scott Haseley <shas...@chromium.org>
Gerrit-Comment-Date: Thu, 15 Jan 2026 00:44:00 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Scott Haseley (Gerrit)

unread,
Jan 15, 2026, 12:49:45 PMJan 15
to Michal Mocny, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org

Scott Haseley added 2 comments

Commit Message
Line 23, Patchset 6:painted image instead of largest pending image. This does not affect

UKM/metrics. This matches the behavior agreed upon by the WebPerf
Michal Mocny . resolved

Is this meant to be "yet" or "by design"? IIUC because UKM only reports the final largest, and because we don't report if we still have a pending, it might not matter for UKM?

(Though I still would like to see more eager reporting.)

Scott Haseley

By design / just noting that this isn't a behavior change for UKM and this won't affect metrics.

Right. Previously we would suppress emission of candidates that were smaller than the largest pending image but larger than the last emitted candidate. UKM knows about the largest pending image, so it's already up-to-date (but ahead of reality), and if the page unloads before getting presentation time for largest pending image, we don't report metrics.

---

Though I still would like to see more eager reporting.

I think we'd need to determine the benefit vs. work involved. There certainly may be some improvements we can make, but being able to clean up the web API without changing UKM was a pleasant surprise in terms of impact vs. work (though it was kind of a slog getting to this point...).
File third_party/blink/web_tests/external/wpt/largest-contentful-paint/performance-entry-sequence.tentative.html
Line 29, Patchset 6: // Frame 1: paint three divs, with one being the largerst . This should produce
Michal Mocny . resolved

nit: largest

Scott Haseley

I dunno, largerst sounds cool :P.

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5275906769b07aca6c671c846756070333f2b09c
    Gerrit-Change-Number: 7269039
    Gerrit-PatchSet: 7
    Gerrit-Owner: Scott Haseley <shas...@chromium.org>
    Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-Comment-Date: Thu, 15 Jan 2026 17:49:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Michal Mocny <mmo...@chromium.org>
    satisfied_requirement
    open
    diffy

    Blink W3C Test Autoroller (Gerrit)

    unread,
    Jan 16, 2026, 10:45:08 AMJan 16
    to Scott Haseley, Michal Mocny, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org
    Attention needed from Scott Haseley

    Message from Blink W3C Test Autoroller

    Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/57210.

    When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.

    WPT Export docs:
    https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Scott Haseley
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5275906769b07aca6c671c846756070333f2b09c
    Gerrit-Change-Number: 7269039
    Gerrit-PatchSet: 7
    Gerrit-Owner: Scott Haseley <shas...@chromium.org>
    Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
    Gerrit-Attention: Scott Haseley <shas...@chromium.org>
    Gerrit-Comment-Date: Fri, 16 Jan 2026 15:44:55 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    open
    diffy

    Blink W3C Test Autoroller (Gerrit)

    unread,
    Jan 19, 2026, 2:22:22 PMJan 19
    to Scott Haseley, Michal Mocny, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org
    Attention needed from Scott Haseley

    Message from Blink W3C Test Autoroller

    The exported PR, https://github.com/web-platform-tests/wpt/pull/57210, has failed the following check(s) on GitHub:

    wpt-firefox-nightly-stability (https://github.com/web-platform-tests/wpt/runs/60607234407)

    These failures will block the export. They may represent new or existing problems; please take a look at the output and see if it can be fixed. Unresolved failures will be looked at by the Ecosystem-Infra sheriff after this CL has been landed in Chromium; if you need earlier help please contact blin...@chromium.org.

    Any suggestions to improve this service are welcome; crbug.com/1027618.

    Gerrit CL SHA: 49a3ad1d521773a469b1facd52ef32fb8ac15dc9
    Patchset Number: 7

    Gerrit-Comment-Date: Mon, 19 Jan 2026 19:22:11 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    open
    diffy

    Scott Haseley (Gerrit)

    unread,
    Feb 6, 2026, 8:22:49 PMFeb 6
    to Blink W3C Test Autoroller, Michal Mocny, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org

    Scott Haseley voted and added 1 comment

    Votes added by Scott Haseley

    Commit-Queue+2

    1 comment

    Patchset-level comments
    File-level comment, Patchset 8 (Latest):
    Scott Haseley . resolved

    I'm going land this now that the spec change landed. I'll send out a PSA next week.

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5275906769b07aca6c671c846756070333f2b09c
    Gerrit-Change-Number: 7269039
    Gerrit-PatchSet: 8
    Gerrit-Owner: Scott Haseley <shas...@chromium.org>
    Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
    Gerrit-Comment-Date: Sat, 07 Feb 2026 01:22:33 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Chromium LUCI CQ (Gerrit)

    unread,
    Feb 6, 2026, 9:10:13 PMFeb 6
    to Scott Haseley, Blink W3C Test Autoroller, Michal Mocny, AyeAye, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org

    Chromium LUCI CQ submitted the change with unreviewed changes

    Unreviewed changes

    6 is the latest approved patch-set.
    The change was submitted with unreviewed changes in the following files:

    ```
    The name of the file: third_party/blink/web_tests/external/wpt/largest-contentful-paint/performance-entry-sequence.tentative.html
    Insertions: 1, Deletions: 1.

    @@ -26,7 +26,7 @@
    window.LargestContentfulPaint, "LargestContentfulPaint is not implemented");

    requestAnimationFrame(() => {
    - // Frame 1: paint three divs, with one being the largerst . This should produce
    + // Frame 1: paint three divs, with one being the largest. This should produce
    // a LargestContentfulPaint entry for text2.
    container.appendChild(createDivWithText('text1', 'AB'));
    container.appendChild(createDivWithText('text2', 'ABC'));
    ```

    Change information

    Commit message:
    LCP: Use largest painted image for web-exposed entry

    We track both a largest painted image and largest pending image for LCP.
    The largest painted image corresponds to the largest image we have
    presentation time for. The largest pending image is the largest image
    we've encountered but don't yet have presentation time for, i.e. because
    it's still loading.

    The pending/painted distinction is used to prevent recording metrics for
    pages that haven't finished loaded, but it also determines what gets
    emitted to performance timeline (we test largest based on pending, not
    painted). This causes us to suppress emitting new LCP candidates that
    are smaller than the largest pending image, but larger than anything
    presented so far, which is not specced behavior.

    This CL changes it so that we emit candidates based on the largest

    painted image instead of largest pending image. This does not affect
    UKM/metrics. This matches the behavior agreed upon by the WebPerf
    Working Group at TPAC '25.

    Note: more changes are required for soft navs to match this behavior
    since candidates can be overwritten during rendering/paint. This isn't
    a problem for hard LCP since candidates are updated during presentation
    callbacks, which are based on frame index.

    Chromestatus: https://chromestatus.com/feature/5167930847395840
    Bug: 454067883
    Change-Id: I5275906769b07aca6c671c846756070333f2b09c
    Reviewed-by: Michal Mocny <mmo...@chromium.org>
    Commit-Queue: Scott Haseley <shas...@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1581252}
    Files:
    • M third_party/blink/renderer/core/paint/timing/largest_contentful_paint_calculator.cc
    • M third_party/blink/renderer/core/paint/timing/largest_contentful_paint_calculator_test.cc
    • M third_party/blink/renderer/platform/runtime_enabled_features.json5
    • A third_party/blink/web_tests/external/wpt/largest-contentful-paint/performance-entry-sequence.tentative.html
    Change size: M
    Delta: 4 files changed, 90 insertions(+), 10 deletions(-)
    Branch: refs/heads/main
    Submit Requirements:
    • requirement satisfiedCode-Review: +1 by Michal Mocny
    Open in Gerrit
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: merged
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5275906769b07aca6c671c846756070333f2b09c
    Gerrit-Change-Number: 7269039
    Gerrit-PatchSet: 9
    Gerrit-Owner: Scott Haseley <shas...@chromium.org>
    Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
    open
    diffy
    satisfied_requirement

    luci-bisection@appspot.gserviceaccount.com (Gerrit)

    unread,
    Feb 6, 2026, 10:52:42 PMFeb 6
    to Scott Haseley, Chromium LUCI CQ, Blink W3C Test Autoroller, Michal Mocny, AyeAye, chromium...@chromium.org, scheduler...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, lighthouse-eng-extern...@google.com, speed-metrics...@chromium.org

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: revert
    satisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages