[PageLoadMetrics] Add LCP/FCP slicing by navigation type [chromium/src : main]

0 views
Skip to first unread message

Ming-Ying Chung (Gerrit)

unread,
Jul 23, 2026, 11:08:10 PM (7 days ago) Jul 23
to Ian Clelland, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
Attention needed from Ian Clelland

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Ian Clelland
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
Gerrit-Change-Number: 8097063
Gerrit-PatchSet: 5
Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
Gerrit-Reviewer: Ian Clelland <icle...@chromium.org>
Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Ian Clelland <icle...@chromium.org>
Gerrit-Comment-Date: Fri, 24 Jul 2026 03:07:39 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Michal Mocny (Gerrit)

unread,
Jul 24, 2026, 2:30:56 PM (7 days ago) Jul 24
to Ming-Ying Chung, Ian Clelland, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
Attention needed from Ian Clelland and Ming-Ying Chung

Michal Mocny voted and added 1 comment

Votes added by Michal Mocny

Commit-Queue+0

1 comment

Patchset-level comments
File-level comment, Patchset 7 (Latest):
Michal Mocny . resolved

(sorry misclick)

Open in Gerrit

Related details

Attention is currently required from:
  • Ian Clelland
  • Ming-Ying Chung
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
Gerrit-Change-Number: 8097063
Gerrit-PatchSet: 7
Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
Gerrit-Reviewer: Ian Clelland <icle...@chromium.org>
Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Ian Clelland <icle...@chromium.org>
Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
Gerrit-Comment-Date: Fri, 24 Jul 2026 18:30:35 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Michal Mocny (Gerrit)

unread,
Jul 28, 2026, 10:28:42 AM (3 days ago) Jul 28
to Ming-Ying Chung, Annie Sullivan, Johannes Henkel, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
Attention needed from Annie Sullivan, Johannes Henkel and Ming-Ying Chung

Michal Mocny added 1 comment

Patchset-level comments
File-level comment, Patchset 8 (Latest):
Michal Mocny . resolved

I'm OOO this week, and iclelland is no longer working in this area. Added alternative reviewers for an initial stab.

(I know Annie took a quick look last Friday and wondered about handling reporting for background->foreground paints potentially reporting all of the background time as paint latency?)

Open in Gerrit

Related details

Attention is currently required from:
  • Annie Sullivan
  • Johannes Henkel
  • Ming-Ying Chung
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
Gerrit-Change-Number: 8097063
Gerrit-PatchSet: 8
Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
Gerrit-Attention: Annie Sullivan <sull...@chromium.org>
Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
Gerrit-Comment-Date: Tue, 28 Jul 2026 14:28:31 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Ming-Ying Chung (Gerrit)

unread,
Jul 28, 2026, 1:44:09 PM (3 days ago) Jul 28
to Annie Sullivan, Johannes Henkel, Michal Mocny, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
Attention needed from Annie Sullivan and Johannes Henkel

Ming-Ying Chung added 1 comment

Patchset-level comments
Ming-Ying Chung . resolved

PTAL

Open in Gerrit

Related details

Attention is currently required from:
  • Annie Sullivan
  • Johannes Henkel
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
Gerrit-Change-Number: 8097063
Gerrit-PatchSet: 8
Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
Gerrit-Attention: Annie Sullivan <sull...@chromium.org>
Gerrit-Comment-Date: Tue, 28 Jul 2026 17:43:33 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Johannes Henkel (Gerrit)

unread,
Jul 28, 2026, 6:07:42 PM (2 days ago) Jul 28
to Ming-Ying Chung, Annie Sullivan, Michal Mocny, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
Attention needed from Annie Sullivan and Ming-Ying Chung

Johannes Henkel added 2 comments

Patchset-level comments
Johannes Henkel . resolved

For now, please consider this a question about the design, and let me know what you think. It is quite possible that what you have is better than the strawman I'm suggesting, but if so, I'd like to learn why please. :-)

File components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
Line 634, Patchset 8 (Latest): GetNavigationTypeSuffix(nav_scenario_)}),
Johannes Henkel . unresolved

The way I understand this, this enum value `nav_scenario_` distinguishes different "types" of page loads.

The place where we figure out which type of page load something is is in the PageLoadTracker, and it doesn't change per page load, which is why in this changelist, it's getting passed into the observer when its constructed. And page_load_metrics_initialize.cc and page_load_metrics_embedder_base.cc wire that up.

I can see that this works.

However:

It's problematic that this observer and the page load tracker are going to be very tightly coupled, via these aforementioned mechanisms, and when some other observer needs this information, they'll also be very tightly coupled. Worst case in a way, if the enum gets very popular (this is not guaranteed), things would turn into a hairball.

What do you think about the following:

1) Add some accessor to PageLoadMetricsObserverDelegate to get the nav scenario enum value. GetNavScenario (or whatever is a descriptive name).

2) In page_load_tracker.{h,cc}, override and implement the accessor. If needed, you can add a field to PageLoadTracker to store it there. If the tracker must get it from the page_load_metrics_initialize.cc file, I guess that's OK, perhaps you can look into what's a reasonable way to accomplish that? (e.g., with some precedents?)

3) In this file, get the value with GetDelegate().GetNavScenario() (instead of nav_scenario_).

The advantage would be that there's no tight coupling and uma_page_load_metrics_observer.cc would not become special and require doing stuff to the embedder and/or initialization code.

What do you think?

Open in Gerrit

Related details

Attention is currently required from:
  • Annie Sullivan
  • Ming-Ying Chung
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
    Gerrit-Change-Number: 8097063
    Gerrit-PatchSet: 8
    Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
    Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
    Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
    Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Annie Sullivan <sull...@chromium.org>
    Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
    Gerrit-Comment-Date: Tue, 28 Jul 2026 22:07:34 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ming-Ying Chung (Gerrit)

    unread,
    Jul 30, 2026, 1:37:01 PM (16 hours ago) Jul 30
    to Ian Clelland, Annie Sullivan, Johannes Henkel, Michal Mocny, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
    Attention needed from Annie Sullivan, Ian Clelland and Johannes Henkel

    Ming-Ying Chung added 3 comments

    Ming-Ying Chung . resolved

    PTAL

    File components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
    Line 634, Patchset 8: GetNavigationTypeSuffix(nav_scenario_)}),
    Johannes Henkel . resolved

    The way I understand this, this enum value `nav_scenario_` distinguishes different "types" of page loads.

    The place where we figure out which type of page load something is is in the PageLoadTracker, and it doesn't change per page load, which is why in this changelist, it's getting passed into the observer when its constructed. And page_load_metrics_initialize.cc and page_load_metrics_embedder_base.cc wire that up.

    I can see that this works.

    However:

    It's problematic that this observer and the page load tracker are going to be very tightly coupled, via these aforementioned mechanisms, and when some other observer needs this information, they'll also be very tightly coupled. Worst case in a way, if the enum gets very popular (this is not guaranteed), things would turn into a hairball.

    What do you think about the following:

    1) Add some accessor to PageLoadMetricsObserverDelegate to get the nav scenario enum value. GetNavScenario (or whatever is a descriptive name).

    2) In page_load_tracker.{h,cc}, override and implement the accessor. If needed, you can add a field to PageLoadTracker to store it there. If the tracker must get it from the page_load_metrics_initialize.cc file, I guess that's OK, perhaps you can look into what's a reasonable way to accomplish that? (e.g., with some precedents?)

    3) In this file, get the value with GetDelegate().GetNavScenario() (instead of nav_scenario_).

    The advantage would be that there's no tight coupling and uma_page_load_metrics_observer.cc would not become special and require doing stuff to the embedder and/or initialization code.

    What do you think?

    Ming-Ying Chung

    Done. Introduced `GetNavigationScenario()` `components/page_load_metrics/browser/navigation_scenario.h`. Please let me know if this is the desired direction.

    Line 634, Patchset 8: GetNavigationTypeSuffix(nav_scenario_)}),
    Johannes Henkel . resolved

    The way I understand this, this enum value `nav_scenario_` distinguishes different "types" of page loads.

    The place where we figure out which type of page load something is is in the PageLoadTracker, and it doesn't change per page load, which is why in this changelist, it's getting passed into the observer when its constructed. And page_load_metrics_initialize.cc and page_load_metrics_embedder_base.cc wire that up.

    I can see that this works.

    However:

    It's problematic that this observer and the page load tracker are going to be very tightly coupled, via these aforementioned mechanisms, and when some other observer needs this information, they'll also be very tightly coupled. Worst case in a way, if the enum gets very popular (this is not guaranteed), things would turn into a hairball.

    What do you think about the following:

    1) Add some accessor to PageLoadMetricsObserverDelegate to get the nav scenario enum value. GetNavScenario (or whatever is a descriptive name).

    2) In page_load_tracker.{h,cc}, override and implement the accessor. If needed, you can add a field to PageLoadTracker to store it there. If the tracker must get it from the page_load_metrics_initialize.cc file, I guess that's OK, perhaps you can look into what's a reasonable way to accomplish that? (e.g., with some precedents?)

    3) In this file, get the value with GetDelegate().GetNavScenario() (instead of nav_scenario_).

    The advantage would be that there's no tight coupling and uma_page_load_metrics_observer.cc would not become special and require doing stuff to the embedder and/or initialization code.

    What do you think?

    Ming-Ying Chung

    Done. Introduced `GetNavigationScenario()` and made NavigationScenario into a standalone file.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Annie Sullivan
    • Ian Clelland
    • Johannes Henkel
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
      Gerrit-Change-Number: 8097063
      Gerrit-PatchSet: 9
      Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
      Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
      Gerrit-Reviewer: Ian Clelland <icle...@chromium.org>
      Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
      Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
      Gerrit-Attention: Annie Sullivan <sull...@chromium.org>
      Gerrit-Attention: Ian Clelland <icle...@chromium.org>
      Gerrit-Comment-Date: Thu, 30 Jul 2026 17:36:25 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Johannes Henkel <joha...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ming-Ying Chung (Gerrit)

      unread,
      1:20 AM (4 hours ago) 1:20 AM
      to Michal Mocny, Ian Clelland, Annie Sullivan, Johannes Henkel, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, bmcquad...@chromium.org, loading-rev...@chromium.org, asvitkine...@chromium.org, speed-metr...@chromium.org, speed-metrics...@chromium.org, csharris...@chromium.org, core-web-vita...@chromium.org
      Attention needed from Annie Sullivan, Ian Clelland and Johannes Henkel

      Ming-Ying Chung voted Commit-Queue+1

      Commit-Queue+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Annie Sullivan
      • Ian Clelland
      • Johannes Henkel
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not 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: I983aea1ce8b37d0e55c426aa0caa4398003ccd6d
      Gerrit-Change-Number: 8097063
      Gerrit-PatchSet: 10
      Gerrit-Owner: Ming-Ying Chung <my...@chromium.org>
      Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
      Gerrit-Reviewer: Ian Clelland <icle...@chromium.org>
      Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Michal Mocny <mmo...@chromium.org>
      Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
      Gerrit-Attention: Annie Sullivan <sull...@chromium.org>
      Gerrit-Attention: Ian Clelland <icle...@chromium.org>
      Gerrit-Comment-Date: Fri, 31 Jul 2026 05:20:14 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages