[searchprefetch] Set the tracking logic for keep alive beacon requests [chromium/src : main]

0 views
Skip to first unread message

Lingqi Chi (Gerrit)

unread,
Jan 21, 2026, 12:24:25 AM (10 days ago) Jan 21
to Hiroki Nakagawa, Ming-Ying Chung, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org
Attention needed from Hiroki Nakagawa and Ming-Ying Chung

Lingqi Chi added 1 comment

Patchset-level comments
File-level comment, Patchset 14 (Latest):
Lingqi Chi . resolved

PTAL 😊

Open in Gerrit

Related details

Attention is currently required from:
  • Hiroki Nakagawa
  • 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
Gerrit-Change-Number: 6649433
Gerrit-PatchSet: 14
Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
Gerrit-Comment-Date: Wed, 21 Jan 2026 05:23:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Ming-Ying Chung (Gerrit)

unread,
Jan 23, 2026, 1:10:02 AM (8 days ago) Jan 23
to Lingqi Chi, Code Review Nudger, Hiroki Nakagawa, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org
Attention needed from Hiroki Nakagawa and Lingqi Chi

Ming-Ying Chung voted and added 3 comments

Votes added by Ming-Ying Chung

Code-Review+1

3 comments

Patchset-level comments
Ming-Ying Chung . resolved

lgtm

File chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc
Line 24, Patchset 14 (Latest):GURL GetDefaultSearchEngineUrl(content::BrowserContext* browser_context) {
Ming-Ying Chung . unresolved

can this be null?

Line 176, Patchset 14 (Latest): std::string_view query_piece = url.query();
url::Component query(0, query_piece.length());
url::Component key;
url::Component value;
while (url::ExtractQueryKeyValue(query_piece, &query, &key, &value)) {
std::string_view key_view = query_piece.substr(key.begin, key.len);
std::string_view value_view = query_piece.substr(value.begin, value.len);
if (key_view != "pf") {
continue;
}
if (value_view == kNavigationPrefetchParam.Get() ||
value_view == kSuggestPrefetchParam.Get()) {
return true;
}
}
Ming-Ying Chung . unresolved

not sure about the intention here but can we use existing helper like `net::GetValueForKeyInQuery()` instead?

Open in Gerrit

Related details

Attention is currently required from:
  • Hiroki Nakagawa
  • Lingqi Chi
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
    Gerrit-Change-Number: 6649433
    Gerrit-PatchSet: 14
    Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Comment-Date: Fri, 23 Jan 2026 06:09:29 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Jan 23, 2026, 1:38:30 AM (8 days ago) Jan 23
    to Lingqi Chi, Ming-Ying Chung, Code Review Nudger, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org
    Attention needed from Lingqi Chi

    Hiroki Nakagawa voted and added 6 comments

    Votes added by Hiroki Nakagawa

    Code-Review+1

    6 comments

    Patchset-level comments
    Hiroki Nakagawa . resolved

    LGTM, thank you!

    File chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc
    Line 169, Patchset 14 (Latest): if (url.ReplaceComponents(replacements) != host) {
    Hiroki Nakagawa . unresolved

    `url.GetHost()` should work?

    File chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_keep_alive_request_tracker.cc
    File chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
    Line 4346, Patchset 14 (Latest): EXPECT_NE(nullptr, search_prefetch_service);
    Hiroki Nakagawa . unresolved

    `ASSERT` may be more appropriate? (this is a pre-condition of the test)

    Line 4378, Patchset 14 (Latest): fetch("$1", { method: "POST",keepalive: true})
    Hiroki Nakagawa . unresolved

    nit: `{ method: "POST", keepalive: true }` (adding spaces before "keepalive" and after "true" for consistency)

    Line 4381, Patchset 14 (Latest): "/ack?pf=" + kSuggestPrefetchParam.Get());
    Hiroki Nakagawa . unresolved

    Can we add other random query parameters to check if the implementation correctly extract the pf?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Lingqi Chi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
    Gerrit-Change-Number: 6649433
    Gerrit-PatchSet: 14
    Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Comment-Date: Fri, 23 Jan 2026 06:38:02 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Jan 26, 2026, 11:23:20 PM (4 days ago) Jan 26
    to Hiroki Nakagawa, Ming-Ying Chung, Code Review Nudger, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org
    Attention needed from Hiroki Nakagawa and Ming-Ying Chung

    Lingqi Chi added 7 comments

    File chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc
    Line 24, Patchset 14:GURL GetDefaultSearchEngineUrl(content::BrowserContext* browser_context) {
    Ming-Ying Chung . unresolved

    can this be null?

    Lingqi Chi

    in most cases no..

    It will be null only if the corresponding storage partition is being destroyed. And I'm not sure if we will hit this case or not, so I use pointer here.
    Should I add a DumpWithoutCrash to ensure it will never be null when reaching here?

    Line 169, Patchset 14: if (url.ReplaceComponents(replacements) != host) {
    Hiroki Nakagawa . resolved

    `url.GetHost()` should work?

    Lingqi Chi

    Done

    Line 176, Patchset 14: std::string_view query_piece = url.query();

    url::Component query(0, query_piece.length());
    url::Component key;
    url::Component value;
    while (url::ExtractQueryKeyValue(query_piece, &query, &key, &value)) {
    std::string_view key_view = query_piece.substr(key.begin, key.len);
    std::string_view value_view = query_piece.substr(value.begin, value.len);
    if (key_view != "pf") {
    continue;
    }
    if (value_view == kNavigationPrefetchParam.Get() ||
    value_view == kSuggestPrefetchParam.Get()) {
    return true;
    }
    }
    Ming-Ying Chung . resolved

    not sure about the intention here but can we use existing helper like `net::GetValueForKeyInQuery()` instead?

    Lingqi Chi

    TIL!!

    File chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_keep_alive_request_tracker.cc
    Line 52, Patchset 14: // It should not happen in our case?
    Hiroki Nakagawa . resolved
    Lingqi Chi

    Thanks!!

    File chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
    Line 4346, Patchset 14: EXPECT_NE(nullptr, search_prefetch_service);
    Hiroki Nakagawa . resolved

    `ASSERT` may be more appropriate? (this is a pre-condition of the test)

    Lingqi Chi

    Done

    Line 4378, Patchset 14: fetch("$1", { method: "POST",keepalive: true})
    Hiroki Nakagawa . resolved

    nit: `{ method: "POST", keepalive: true }` (adding spaces before "keepalive" and after "true" for consistency)

    Lingqi Chi

    Done

    Line 4381, Patchset 14: "/ack?pf=" + kSuggestPrefetchParam.Get());
    Hiroki Nakagawa . unresolved

    Can we add other random query parameters to check if the implementation correctly extract the pf?

    Lingqi Chi

    I updated the unit tests a little bit, to enrich the test cases.
    Ideally the unit tests can catch a bug if the implementation cannot correctly extract the pf

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Ming-Ying Chung
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
    Gerrit-Change-Number: 6649433
    Gerrit-PatchSet: 16
    Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
    Gerrit-Comment-Date: Tue, 27 Jan 2026 04:22:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    Comment-In-Reply-To: Ming-Ying Chung <my...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Jan 26, 2026, 11:24:35 PM (4 days ago) Jan 26
    to Hiroki Nakagawa, Ming-Ying Chung, Code Review Nudger, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org

    Lingqi Chi added 1 comment

    Patchset-level comments
    File-level comment, Patchset 16 (Latest):
    Lingqi Chi . resolved

    oops, I forgot to commit the patch that removing the debugging code.. sorry.

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
    Gerrit-Change-Number: 6649433
    Gerrit-PatchSet: 16
    Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Comment-Date: Tue, 27 Jan 2026 04:24:11 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Jan 28, 2026, 2:21:14 AM (3 days ago) Jan 28
    to Hiroki Nakagawa, Ming-Ying Chung, Code Review Nudger, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org
    Attention needed from Hiroki Nakagawa and Ming-Ying Chung

    Lingqi Chi added 1 comment

    Patchset-level comments
    File-level comment, Patchset 18 (Latest):
    Lingqi Chi . resolved

    thank you!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Ming-Ying Chung
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
    Gerrit-Change-Number: 6649433
    Gerrit-PatchSet: 18
    Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
    Gerrit-Comment-Date: Wed, 28 Jan 2026 07:20:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    5:12 AM (19 hours ago) 5:12 AM
    to Lingqi Chi, Ming-Ying Chung, Code Review Nudger, Chromium LUCI CQ, AyeAye, loading...@chromium.org, lingqi...@chromium.org, prerenderi...@chromium.org, tburkar...@chromium.org, gavin...@chromium.org
    Attention needed from Lingqi Chi and Ming-Ying Chung

    Hiroki Nakagawa voted and added 1 comment

    Votes added by Hiroki Nakagawa

    Code-Review+1

    1 comment

    File chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
    Line 4381, Patchset 14: "/ack?pf=" + kSuggestPrefetchParam.Get());
    Hiroki Nakagawa . resolved

    Can we add other random query parameters to check if the implementation correctly extract the pf?

    Lingqi Chi

    I updated the unit tests a little bit, to enrich the test cases.
    Ideally the unit tests can catch a bug if the implementation cannot correctly extract the pf

    Hiroki Nakagawa

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Lingqi Chi
    • Ming-Ying Chung
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: If904268a08571bc775cc1bb44b2d698a3d2b3743
    Gerrit-Change-Number: 6649433
    Gerrit-PatchSet: 18
    Gerrit-Owner: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
    Gerrit-Comment-Date: Fri, 30 Jan 2026 10:12:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages