Introduce NavigationInitiatorLocation in content/public [chromium/src : main]

0 views
Skip to first unread message

Huanpo Lin (Gerrit)

unread,
Jun 18, 2026, 12:52:22 AM (11 days ago) Jun 18
to Ken Okada, Rakina Zata Amni, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
Attention needed from Ken Okada and Rakina Zata Amni

Huanpo Lin voted and added 1 comment

Votes added by Huanpo Lin

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Ken Okada
  • Rakina Zata Amni
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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
Gerrit-Change-Number: 7960877
Gerrit-PatchSet: 4
Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
Gerrit-Attention: Ken Okada <ken...@chromium.org>
Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Comment-Date: Thu, 18 Jun 2026 04:51:50 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Ken Okada (Gerrit)

unread,
Jun 18, 2026, 5:14:51 AM (11 days ago) Jun 18
to Huanpo Lin, Rakina Zata Amni, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
Attention needed from Huanpo Lin and Rakina Zata Amni

Ken Okada added 5 comments

Patchset-level comments
File-level comment, Patchset 5 (Latest):
Ken Okada . resolved

Only high-level comments.

File components/page_load_metrics/browser/initiator_type_enum.h
Line 16, Patchset 5 (Latest):enum class InitiatorLocation {
Ken Okada . unresolved

Related to the comment at NavigationInitiatorLocationType.

I guess that it's not enough. InitiatorLocation looks to be a concept of enum open in //content and closed in //components/page_load_metrics, but

1. //components/page_load_metrics can't contain embedder's knowledge. For chrome specific knowledge, we must place them into //chrome/browser/page_load_metrics/, like NTP_PLMO is placed in it. https://source.chromium.org/chromium/chromium/src/+/main:components/page_load_metrics/README.md
2. And hence, it's not closed enum in //conponenets/page_load_metrics.

File content/public/browser/initiator_type_navigation_handle_user_data.h
Line 21, Patchset 5 (Latest):typedef uint16_t NavigationInitiatorLocationType;
Ken Okada . unresolved

This smells. I guess that using uint16_t to //content/public is for realizing an open enum, but how "order" open them and why it's legitimate?

In the current code, the conversion is done in components/page_load_metrics/browser/initiator_type_enum.h:

```
inline void AttachNewTabPageNavigationHandleUserData(
content::NavigationHandle& navigation_handle) {
content::InitiatorTypeNavigationHandleUserData::CreateForNavigationHandle(
navigation_handle,
content::NavigationInitiatorLocation{
content::NavigationSource::kEmbedder,
static_cast<content::NavigationInitiatorLocationType>(
InitiatorLocation::kNewTabPage)});
}
```

Who ensures that all callers use this correnpondence of plm::InitiatorLocation and content::NavigationInitiatorLocationType?

Why this is not enough? https://docs.google.com/document/d/1urfbqZd8Y6iCBenTWEpJFkLO4rm7GlUvnOjFRjQ-cII/edit?disco=AAAB9DbI8U0

Line 16, Patchset 5 (Latest):enum class NavigationSource {
Ken Okada . unresolved

Could you briefly explain what do the concepts NavigationSource, NavigationInitiatorLocationType, InitiatorType mean? I kind of understand the diff of NavigationSource and NavInitLocType, but cant't understand the diff of NavInitLocType and InitiatorType. (I guess that the latter would be just a holder, and feel that it's better to use more systematic naming, like PreloadServingMetrics (a container of metrics) and PreloadServingMetricsHolder (NavigationHandleUserData to hold it).)

Line 1, Patchset 5 (Latest):// Copyright 2026 The Chromium Authors
Ken Okada . unresolved

I think it's better to split CLs for just rename and modification.

Open in Gerrit

Related details

Attention is currently required from:
  • Huanpo Lin
  • Rakina Zata Amni
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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
    Gerrit-Change-Number: 7960877
    Gerrit-PatchSet: 5
    Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Thu, 18 Jun 2026 09:14:26 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Huanpo Lin (Gerrit)

    unread,
    Jun 23, 2026, 3:03:56 AM (6 days ago) Jun 23
    to android-bu...@system.gserviceaccount.com, Ken Okada, Rakina Zata Amni, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, omnibox-...@chromium.org, jdonnel...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
    Attention needed from Ken Okada and Rakina Zata Amni

    Huanpo Lin voted and added 4 comments

    Votes added by Huanpo Lin

    Commit-Queue+1

    4 comments

    File components/page_load_metrics/browser/initiator_type_enum.h
    Line 16, Patchset 5:enum class InitiatorLocation {
    Ken Okada . unresolved

    Related to the comment at NavigationInitiatorLocationType.

    I guess that it's not enough. InitiatorLocation looks to be a concept of enum open in //content and closed in //components/page_load_metrics, but

    1. //components/page_load_metrics can't contain embedder's knowledge. For chrome specific knowledge, we must place them into //chrome/browser/page_load_metrics/, like NTP_PLMO is placed in it. https://source.chromium.org/chromium/chromium/src/+/main:components/page_load_metrics/README.md
    2. And hence, it's not closed enum in //conponenets/page_load_metrics.

    Huanpo Lin

    Sorry, I'm a bit confused, I think that only `components/page_load_metrics/renderer/` cannot have embedder knowledge? `components/page_load_metrics/browser/navigation_handle_user_data.h` was originally located in `components/page_load_metrics/browser/` as well.

    File content/public/browser/initiator_type_navigation_handle_user_data.h
    Line 21, Patchset 5:typedef uint16_t NavigationInitiatorLocationType;
    Ken Okada . unresolved

    This smells. I guess that using uint16_t to //content/public is for realizing an open enum, but how "order" open them and why it's legitimate?

    In the current code, the conversion is done in components/page_load_metrics/browser/initiator_type_enum.h:

    ```
    inline void AttachNewTabPageNavigationHandleUserData(
    content::NavigationHandle& navigation_handle) {
    content::InitiatorTypeNavigationHandleUserData::CreateForNavigationHandle(
    navigation_handle,
    content::NavigationInitiatorLocation{
    content::NavigationSource::kEmbedder,
    static_cast<content::NavigationInitiatorLocationType>(
    InitiatorLocation::kNewTabPage)});
    }
    ```

    Who ensures that all callers use this correnpondence of plm::InitiatorLocation and content::NavigationInitiatorLocationType?

    Why this is not enough? https://docs.google.com/document/d/1urfbqZd8Y6iCBenTWEpJFkLO4rm7GlUvnOjFRjQ-cII/edit?disco=AAAB9DbI8U0

    Huanpo Lin

    The pattern is trying to follow what `DisabledReason` in `content/public/browser/back_forward_cache.h`, which also uses `uint16_t`, does.
    And the number will be numbered by (NavigationSource, NavigationInitiatorLocation), the first tuple will be multiplied by a number greater than 2^16 guaranteeing the uniqueness of the two-part key. But that's based on the assumption that the users should be aware of the enum should come from the correct headers. If needed I can add more comments about it in the corresponding headers.

    Line 16, Patchset 5:enum class NavigationSource {
    Ken Okada . unresolved

    Could you briefly explain what do the concepts NavigationSource, NavigationInitiatorLocationType, InitiatorType mean? I kind of understand the diff of NavigationSource and NavInitLocType, but cant't understand the diff of NavInitLocType and InitiatorType. (I guess that the latter would be just a holder, and feel that it's better to use more systematic naming, like PreloadServingMetrics (a container of metrics) and PreloadServingMetricsHolder (NavigationHandleUserData to hold it).)

    Huanpo Lin

    I've added more comments in this file. PTAL
    InitiatorTypeNavigationHandleUserData holds the tuple (NavigationSource, NavigationInitiatorLocation) representing the (content/embedder, trigger source id). The structure is trying to do what the document mentions (splitting content/embedder as some of the sources are in content/ like link clicks)

    Line 1, Patchset 5:// Copyright 2026 The Chromium Authors
    Ken Okada . unresolved

    I think it's better to split CLs for just rename and modification.

    Huanpo Lin

    To double check, the only 1-to-1 mapping in this CL is `page_load_metrics::NavigationHandleUserData::InitiatorLocation` to in `page_load_metrics::InitiatorLocation` in `page_load_metrics`components/page_load_metrics/browser/initiator_type_enum.h`, but nothing to do with this file.
    Do you mean to create ``page_load_metrics`components/page_load_metrics/browser/initiator_type_enum.h`` in another CL first or (?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ken Okada
    • Rakina Zata Amni
    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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
    Gerrit-Change-Number: 7960877
    Gerrit-PatchSet: 8
    Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Ken Okada <ken...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Tue, 23 Jun 2026 07:03:21 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Ken Okada <ken...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rakina Zata Amni (Gerrit)

    unread,
    Jun 25, 2026, 1:51:56 AM (4 days ago) Jun 25
    to Huanpo Lin, android-bu...@system.gserviceaccount.com, Ken Okada, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, omnibox-...@chromium.org, jdonnel...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
    Attention needed from Ken Okada

    Rakina Zata Amni added 3 comments

    Commit Message
    Line 12, Patchset 9:types.
    Rakina Zata Amni . unresolved

    Now this needs usage both outside and within `//content` (you need to do this, otherwise it doesn't belong as a `//content` public API and should be fully be in the embedder). Can you mention what your plan is for the "within `//content`" part?

    File content/public/browser/initiator_type_navigation_handle_user_data.h
    Line 47, Patchset 9:class CONTENT_EXPORT InitiatorTypeNavigationHandleUserData
    Rakina Zata Amni . unresolved

    Do we actually need a UserData now that we have `NavigationInitiatorLocation` in `//content`? I was thinking about putting it in `NavigationHandle` / `OpenURLParams` `NavigationController::LoadURLParams` directly. Then you can also avoid the many constructor functions for different sources?

    Line 21, Patchset 5:typedef uint16_t NavigationInitiatorLocationType;
    Ken Okada . unresolved

    This smells. I guess that using uint16_t to //content/public is for realizing an open enum, but how "order" open them and why it's legitimate?

    In the current code, the conversion is done in components/page_load_metrics/browser/initiator_type_enum.h:

    ```
    inline void AttachNewTabPageNavigationHandleUserData(
    content::NavigationHandle& navigation_handle) {
    content::InitiatorTypeNavigationHandleUserData::CreateForNavigationHandle(
    navigation_handle,
    content::NavigationInitiatorLocation{
    content::NavigationSource::kEmbedder,
    static_cast<content::NavigationInitiatorLocationType>(
    InitiatorLocation::kNewTabPage)});
    }
    ```

    Who ensures that all callers use this correnpondence of plm::InitiatorLocation and content::NavigationInitiatorLocationType?

    Why this is not enough? https://docs.google.com/document/d/1urfbqZd8Y6iCBenTWEpJFkLO4rm7GlUvnOjFRjQ-cII/edit?disco=AAAB9DbI8U0

    Huanpo Lin

    The pattern is trying to follow what `DisabledReason` in `content/public/browser/back_forward_cache.h`, which also uses `uint16_t`, does.
    And the number will be numbered by (NavigationSource, NavigationInitiatorLocation), the first tuple will be multiplied by a number greater than 2^16 guaranteeing the uniqueness of the two-part key. But that's based on the assumption that the users should be aware of the enum should come from the correct headers. If needed I can add more comments about it in the corresponding headers.

    Rakina Zata Amni

    Yeah following DisabledReason is good but I think there are some bugs here. The observers in chrome/ (e.g. `BookmarkBarMetricsObserver::OnCommit`) are blindly casting id to page_load_metrics::InitiatorLocation without checking if source == content::NavigationSource::kEmbedder.

    If content/ ever sets a NavigationInitiatorLocation with source = kContent and id = 1, BookmarkBarPageLoadMetricsObserver will incorrectly interpret it as kBookmarkBar (which is also 1) because it didn't verify the source.

    If you want to follow the BackForwardCache::DisabledReason pattern, you should never cast .id. Instead, compare the entire struct using its safe operator==:


    ```
    if (!navigation_userdata ||
    navigation_userdata->initiator_location() !=

    content::NavigationInitiatorLocation{
    content::NavigationSource::kEmbedder,
    static_cast<content::NavigationInitiatorLocationType>(
                    page_load_metrics::InitiatorLocation::kBookmarkBar)}) {
    return STOP_OBSERVING;
    }
    ```
    (Consider adding a small helper factory in page_load_metrics to make constructing these embedder locations less verbose for observers.)
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ken Okada
    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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
    Gerrit-Change-Number: 7960877
    Gerrit-PatchSet: 9
    Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Ken Okada <ken...@chromium.org>
    Gerrit-Comment-Date: Thu, 25 Jun 2026 05:51:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Huanpo Lin <robe...@chromium.org>
    Comment-In-Reply-To: Ken Okada <ken...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Huanpo Lin (Gerrit)

    unread,
    Jun 26, 2026, 1:47:49 AM (3 days ago) Jun 26
    to android-bu...@system.gserviceaccount.com, Ken Okada, Rakina Zata Amni, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, navigation...@chromium.org, lingqi...@chromium.org, alexmo...@chromium.org, omnibox-...@chromium.org, jdonnel...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
    Attention needed from Ken Okada and Rakina Zata Amni

    Huanpo Lin voted and added 3 comments

    Votes added by Huanpo Lin

    Commit-Queue+1

    3 comments

    Commit Message
    Rakina Zata Amni . resolved

    Now this needs usage both outside and within `//content` (you need to do this, otherwise it doesn't belong as a `//content` public API and should be fully be in the embedder). Can you mention what your plan is for the "within `//content`" part?

    Huanpo Lin

    Updated the comments, PTAL.
    The plan of adding kContent related NavigationInitiatorLocation is mentioned.

    File content/public/browser/initiator_type_navigation_handle_user_data.h
    Line 47, Patchset 9:class CONTENT_EXPORT InitiatorTypeNavigationHandleUserData
    Rakina Zata Amni . resolved

    Do we actually need a UserData now that we have `NavigationInitiatorLocation` in `//content`? I was thinking about putting it in `NavigationHandle` / `OpenURLParams` `NavigationController::LoadURLParams` directly. Then you can also avoid the many constructor functions for different sources?

    Huanpo Lin

    Thanks, I've just removed UserData to reduce the code complexity.
    The field is added to `NavigationHandle` directly.

    Huanpo Lin

    I see, I've created helper functions and limit the usage of static_cast to those functions only. PTAL.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ken Okada
    • Rakina Zata Amni
    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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
    Gerrit-Change-Number: 7960877
    Gerrit-PatchSet: 16
    Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Ken Okada <ken...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Fri, 26 Jun 2026 05:47:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Huanpo Lin <robe...@chromium.org>
    Comment-In-Reply-To: Ken Okada <ken...@chromium.org>
    Comment-In-Reply-To: Rakina Zata Amni <rak...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Huanpo Lin (Gerrit)

    unread,
    Jun 26, 2026, 1:48:56 AM (3 days ago) Jun 26
    to Thomas Lukaszewicz, android-bu...@system.gserviceaccount.com, Ken Okada, Rakina Zata Amni, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, navigation...@chromium.org, lingqi...@chromium.org, alexmo...@chromium.org, omnibox-...@chromium.org, jdonnel...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
    Attention needed from Ken Okada, Rakina Zata Amni and Thomas Lukaszewicz

    Huanpo Lin added 1 comment

    Patchset-level comments
    File-level comment, Patchset 16 (Latest):
    Huanpo Lin . resolved

    include tluk for desktop/bookmark/omnibox review.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ken Okada
    • Rakina Zata Amni
    • Thomas Lukaszewicz
    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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
    Gerrit-Change-Number: 7960877
    Gerrit-PatchSet: 16
    Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Thomas Lukaszewicz <tl...@chromium.org>
    Gerrit-Attention: Thomas Lukaszewicz <tl...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Fri, 26 Jun 2026 05:48:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rakina Zata Amni (Gerrit)

    unread,
    Jun 26, 2026, 4:24:10 AM (3 days ago) Jun 26
    to Huanpo Lin, Thomas Lukaszewicz, android-bu...@system.gserviceaccount.com, Ken Okada, Chromium LUCI CQ, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, navigation...@chromium.org, lingqi...@chromium.org, alexmo...@chromium.org, omnibox-...@chromium.org, jdonnel...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, gavin...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org, tburkar...@chromium.org
    Attention needed from Huanpo Lin, Ken Okada and Thomas Lukaszewicz

    Rakina Zata Amni added 3 comments

    Rakina Zata Amni . resolved

    Thanks! This CL is rather large, I think it's probably nicer to split at this point.

    File components/page_load_metrics/browser/initiator_type_enum.h
    Line 45, Patchset 18 (Latest):inline void AttachNewTabPageNavigationHandleUserData(
    Rakina Zata Amni . unresolved

    This name is now stale, and do we really need different functions for each instead of 1 generic function?

    File content/public/browser/navigation_handle.h
    Line 91, Patchset 18 (Latest):// Represents the initiator location of a navigation, uniquely identified by a
    Rakina Zata Amni . unresolved

    This needs more explanation of what it means, and how it differs from other similar things already e.g. PageTransition. When should someone rely on this instead of the others, and when should someone add new values here?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Huanpo Lin
    • Ken Okada
    • Thomas Lukaszewicz
    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: I310ace09f4c0a8f6a9f5e3f721c467736544fee8
    Gerrit-Change-Number: 7960877
    Gerrit-PatchSet: 18
    Gerrit-Owner: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Huanpo Lin <robe...@chromium.org>
    Gerrit-Reviewer: Ken Okada <ken...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Thomas Lukaszewicz <tl...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Attention: Ken Okada <ken...@chromium.org>
    Gerrit-Attention: Thomas Lukaszewicz <tl...@chromium.org>
    Gerrit-Comment-Date: Fri, 26 Jun 2026 08:23:42 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages