Keep browser alive while fetch keepalive URLLoaders exist [chromium/src : main]

0 views
Skip to first unread message

Helmut Januschka (Gerrit)

unread,
Jun 23, 2026, 4:09:52 AMJun 23
to Ming-Ying Chung, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
Attention needed from Ming-Ying Chung

Helmut Januschka added 1 comment

Patchset-level comments
File-level comment, Patchset 4 (Latest):
Helmut Januschka . resolved

hi @my...@chromium.org i think this solves it, verified it on on all platforms, could you PTAL and re-route if its better fit for other reviewers.

and please let me know if you want me to change anything.


for easier testing here is a sampler with a demo server: https://static.januschka.com/i-408010432/index.html if you want to take a look

Open in Gerrit

Related details

Attention is currently required from:
  • 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
Gerrit-Change-Number: 7972217
Gerrit-PatchSet: 4
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
Gerrit-Comment-Date: Tue, 23 Jun 2026 08:09:37 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Ming-Ying Chung (Gerrit)

unread,
Jun 25, 2026, 6:38:41 AMJun 25
to Helmut Januschka, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
Attention needed from Helmut Januschka

Ming-Ying Chung added 1 comment

File chrome/browser/chrome_content_browser_client.cc
Line 8337, Patchset 4 (Latest):void ChromeContentBrowserClient::OnFetchKeepAliveRequestCreated(
Ming-Ying Chung . unresolved

The overall idea looks okay. But I roughly remember one of the goal of the fetch keepalive in-browser migration is to get rid of the usage of `ScopedKeepAlive` (or all its callbacks `OnKeepaliveRequest*` above). Unfortunately the code is not cleaned up after it's launched.

Given that new callbacks to increase `num_fetch_keepalive_loaders_` are added, I think we want to make sure that they don't really depend on all other existing callbacks, i.e. we only want to keep the requests alive in extreme case (browser shutdown), not due to fetch keepalive legacy path.

Open in Gerrit

Related details

Attention is currently required from:
  • Helmut Januschka
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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
    Gerrit-Change-Number: 7972217
    Gerrit-PatchSet: 4
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Barry Pollard <barryp...@chromium.org>
    Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
    Gerrit-Comment-Date: Thu, 25 Jun 2026 10:38:08 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Helmut Januschka (Gerrit)

    unread,
    Jun 28, 2026, 3:12:30 PMJun 28
    to Barry Pollard, Ming-Ying Chung, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
    Attention needed from Ming-Ying Chung

    Helmut Januschka added 1 comment

    File chrome/browser/chrome_content_browser_client.cc
    Line 8337, Patchset 4 (Latest):void ChromeContentBrowserClient::OnFetchKeepAliveRequestCreated(
    Ming-Ying Chung . unresolved

    The overall idea looks okay. But I roughly remember one of the goal of the fetch keepalive in-browser migration is to get rid of the usage of `ScopedKeepAlive` (or all its callbacks `OnKeepaliveRequest*` above). Unfortunately the code is not cleaned up after it's launched.

    Given that new callbacks to increase `num_fetch_keepalive_loaders_` are added, I think we want to make sure that they don't really depend on all other existing callbacks, i.e. we only want to keep the requests alive in extreme case (browser shutdown), not due to fetch keepalive legacy path.

    Helmut Januschka

    thanks for the insights! the new `num_fetch_keepalive_loaders_` path is fully decoupled from the legacy `num_keepalive_requests_`/`keepalive_timer_` one.

    for the legacy cleanup i can file a tracking bug, WDYT?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
    Gerrit-Change-Number: 7972217
    Gerrit-PatchSet: 4
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
    Gerrit-CC: Barry Pollard <barryp...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
    Gerrit-Comment-Date: Sun, 28 Jun 2026 19:12:06 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Ming-Ying Chung <my...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Helmut Januschka (Gerrit)

    unread,
    Jul 8, 2026, 2:39:46 AMJul 8
    to Barry Pollard, Ming-Ying Chung, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
    Attention needed from Ming-Ying Chung

    Helmut Januschka added 1 comment

    Patchset-level comments
    Helmut Januschka . unresolved

    ping, please let me know if i should re-assign to someone else, or if you want me to address anything

    Gerrit-Comment-Date: Wed, 08 Jul 2026 06:39:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ming-Ying Chung (Gerrit)

    unread,
    Jul 8, 2026, 3:46:43 AMJul 8
    to Helmut Januschka, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
    Attention needed from Helmut Januschka

    Ming-Ying Chung voted and added 5 comments

    Votes added by Ming-Ying Chung

    Code-Review+1

    5 comments

    Patchset-level comments
    Helmut Januschka . resolved

    ping, please let me know if i should re-assign to someone else, or if you want me to address anything

    Ming-Ying Chung

    LGTM but you need owner review.

    File chrome/browser/chrome_content_browser_client.cc
    Line 8337, Patchset 4 (Latest):void ChromeContentBrowserClient::OnFetchKeepAliveRequestCreated(
    Ming-Ying Chung . resolved

    The overall idea looks okay. But I roughly remember one of the goal of the fetch keepalive in-browser migration is to get rid of the usage of `ScopedKeepAlive` (or all its callbacks `OnKeepaliveRequest*` above). Unfortunately the code is not cleaned up after it's launched.

    Given that new callbacks to increase `num_fetch_keepalive_loaders_` are added, I think we want to make sure that they don't really depend on all other existing callbacks, i.e. we only want to keep the requests alive in extreme case (browser shutdown), not due to fetch keepalive legacy path.

    Helmut Januschka

    thanks for the insights! the new `num_fetch_keepalive_loaders_` path is fully decoupled from the legacy `num_keepalive_requests_`/`keepalive_timer_` one.

    for the legacy cleanup i can file a tracking bug, WDYT?

    Ming-Ying Chung

    sgtm.

    Line 8337, Patchset 4 (Latest):void ChromeContentBrowserClient::OnFetchKeepAliveRequestCreated(
    Ming-Ying Chung . unresolved

    Better to have commentes (either here or in the header) explaining why we re-introduce the scoped keepalive usage even with the in-browser migration.

    Line 8358, Patchset 4 (Latest): fetch_keepalive_profile_keep_alive_ = ScopedProfileKeepAlive::TryAcquire(
    profile, ProfileKeepAliveOrigin::kFetchKeepAlive);
    Ming-Ying Chung . unresolved

    How if multiple requests from different profiles exist? It looks like only the last profile will be held.

    File chrome/browser/loader/keep_alive_browser_process_alive_browsertest.cc
    Line 23, Patchset 4 (Latest):// Tests for https://crbug.com/408010432.
    Ming-Ying Chung . unresolved

    We should have proper test description in addition to links to bug.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Helmut Januschka
    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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
      Gerrit-Change-Number: 7972217
      Gerrit-PatchSet: 4
      Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
      Gerrit-CC: Barry Pollard <barryp...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
      Gerrit-Comment-Date: Wed, 08 Jul 2026 07:46:19 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Helmut Januschka <hel...@januschka.com>
      Comment-In-Reply-To: Ming-Ying Chung <my...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Helmut Januschka (Gerrit)

      unread,
      Jul 8, 2026, 5:53:02 PMJul 8
      to Rakina Zata Amni, Nicolas Ouellet-Payeur, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
      Attention needed from Nicolas Ouellet-Payeur and Rakina Zata Amni

      Helmut Januschka added 3 comments

      File chrome/browser/chrome_content_browser_client.cc
      Line 8337, Patchset 4:void ChromeContentBrowserClient::OnFetchKeepAliveRequestCreated(
      Ming-Ying Chung . resolved

      Better to have commentes (either here or in the header) explaining why we re-introduce the scoped keepalive usage even with the in-browser migration.

      Helmut Januschka

      Done

      Line 8358, Patchset 4: fetch_keepalive_profile_keep_alive_ = ScopedProfileKeepAlive::TryAcquire(
      profile, ProfileKeepAliveOrigin::kFetchKeepAlive);
      Ming-Ying Chung . resolved

      How if multiple requests from different profiles exist? It looks like only the last profile will be held.

      Helmut Januschka

      gosh, good catch, now tracking loaders per BrowserContext: OnFetchKeepAliveRequestDestroyed() receives the BrowserContext too, and a ScopedProfileKeepAlive is held for every profile with in-flight loaders (acquired on that profile's first loader, released on its last). The pointer at destroy time may belong to a context mid-destruction, so it is only used as a lookup key and never dereferenced. Added a multi-profile browser test (HoldsEveryProfileWithInFlightLoaders) covering this.

      File chrome/browser/loader/keep_alive_browser_process_alive_browsertest.cc
      Line 23, Patchset 4:// Tests for https://crbug.com/408010432.
      Ming-Ying Chung . resolved

      We should have proper test description in addition to links to bug.

      Helmut Januschka

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Nicolas Ouellet-Payeur
      • Rakina Zata Amni
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
        Gerrit-Change-Number: 7972217
        Gerrit-PatchSet: 5
        Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
        Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-Comment-Date: Wed, 08 Jul 2026 21:52:40 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Ming-Ying Chung <my...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Rakina Zata Amni (Gerrit)

        unread,
        Jul 9, 2026, 8:44:45 PMJul 9
        to Helmut Januschka, Nicolas Ouellet-Payeur, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
        Attention needed from Helmut Januschka and Nicolas Ouellet-Payeur

        Rakina Zata Amni voted Code-Review+1

        Code-Review+1
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Helmut Januschka
        • Nicolas Ouellet-Payeur
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
        Gerrit-Change-Number: 7972217
        Gerrit-PatchSet: 6
        Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
        Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-CC: Barry Pollard <barryp...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
        Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Comment-Date: Fri, 10 Jul 2026 00:44:11 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Helmut Januschka (Gerrit)

        unread,
        Jul 10, 2026, 2:16:50 AMJul 10
        to Mohamed Amir Yosef, Alex Ilin, Greg Thompson, Kenichi Ishibashi, Rakina Zata Amni, Nicolas Ouellet-Payeur, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
        Attention needed from Alex Ilin, Greg Thompson, Kenichi Ishibashi and Nicolas Ouellet-Payeur

        Helmut Januschka removed Mohamed Amir Yosef from this change

        Deleted Reviewers:
        • Mohamed Amir Yosef
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Alex Ilin
        • Greg Thompson
        • Kenichi Ishibashi
        • Nicolas Ouellet-Payeur
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: deleteReviewer
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
        Gerrit-Change-Number: 7972217
        Gerrit-PatchSet: 6
        Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Alex Ilin <alex...@chromium.org>
        Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
        Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
        Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-CC: Barry Pollard <barryp...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-Attention: Alex Ilin <alex...@chromium.org>
        Gerrit-Attention: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Attention: Greg Thompson <g...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Helmut Januschka (Gerrit)

        unread,
        Jul 10, 2026, 2:17:12 AMJul 10
        to Alex Ilin, Greg Thompson, Kenichi Ishibashi, Rakina Zata Amni, Nicolas Ouellet-Payeur, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
        Attention needed from Greg Thompson, Kenichi Ishibashi and Nicolas Ouellet-Payeur

        Helmut Januschka removed Alex Ilin from this change

        Deleted Reviewers:
        • Alex Ilin
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Greg Thompson
        • Kenichi Ishibashi
        • Nicolas Ouellet-Payeur
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: deleteReviewer
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
        Gerrit-Change-Number: 7972217
        Gerrit-PatchSet: 6
        Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
        Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
        Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-CC: Barry Pollard <barryp...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Helmut Januschka (Gerrit)

        unread,
        Jul 10, 2026, 2:17:58 AMJul 10
        to Kenichi Ishibashi, Greg Thompson, Rakina Zata Amni, Nicolas Ouellet-Payeur, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
        Attention needed from Greg Thompson and Nicolas Ouellet-Payeur

        Helmut Januschka removed Kenichi Ishibashi from this change

        Deleted Reviewers:
        • Kenichi Ishibashi
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Greg Thompson
        • Nicolas Ouellet-Payeur
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: deleteReviewer
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
        Gerrit-Change-Number: 7972217
        Gerrit-PatchSet: 6
        Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
        Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
        Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
        Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-CC: Barry Pollard <barryp...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Nicolas Ouellet-Payeur (Gerrit)

        unread,
        Jul 13, 2026, 11:23:35 AMJul 13
        to Helmut Januschka, Greg Thompson, Rakina Zata Amni, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
        Attention needed from Greg Thompson and Helmut Januschka

        Nicolas Ouellet-Payeur voted and added 6 comments

        Votes added by Nicolas Ouellet-Payeur

        Code-Review+1

        6 comments

        Patchset-level comments
        File-level comment, Patchset 6 (Latest):
        Nicolas Ouellet-Payeur . resolved

        LGTM with a few nits

        File chrome/browser/chrome_content_browser_client.h
        Line 1440, Patchset 6 (Latest): uint64_t num_fetch_keepalive_loaders_ = 0;
        std::unique_ptr<ScopedKeepAlive> fetch_keepalive_request_keep_alive_;
        // Tracks in-flight fetch keepalive loaders per BrowserContext, holding a
        // ScopedProfileKeepAlive for the corresponding original profile while any
        // of its loaders exist. Every such profile needs its own hold: destroying
        // a profile (e.g. with features::kDestroyProfileOnBrowserClose) tears down
        // its StoragePartition and aborts that profile's in-flight loaders. Keys
        // are only used as identifiers and are never dereferenced on destruction;
        // entries are erased when their loader count drops to zero, which happens
        // no later than the corresponding context's destruction.
        struct FetchKeepAliveProfileHold {
        uint64_t num_loaders = 0;
        std::unique_ptr<ScopedProfileKeepAlive> profile_keep_alive;
        };
        std::map<raw_ptr<content::BrowserContext>, FetchKeepAliveProfileHold>
        fetch_keepalive_profile_holds_;
        base::TimeTicks fetch_keepalive_hold_started_;
        uint64_t fetch_keepalive_max_concurrent_ = 0;
        Nicolas Ouellet-Payeur . unresolved

        IMO this is quite a lot of things to store inline... is ChromeContentBrowserClient really the best place for these? Or could this be some kind of helper class?

        Line 1442, Patchset 6 (Latest): // Tracks in-flight fetch keepalive loaders per BrowserContext, holding a
        // ScopedProfileKeepAlive for the corresponding original profile while any
        // of its loaders exist. Every such profile needs its own hold: destroying
        // a profile (e.g. with features::kDestroyProfileOnBrowserClose) tears down
        // its StoragePartition and aborts that profile's in-flight loaders. Keys
        // are only used as identifiers and are never dereferenced on destruction;
        // entries are erased when their loader count drops to zero, which happens
        // no later than the corresponding context's destruction.
        Nicolas Ouellet-Payeur . unresolved

        I think this is the same as the comments in `.cc`? Consider deduping this

        File chrome/browser/chrome_content_browser_client.cc
        Line 8358, Patchset 6 (Latest): if (num_fetch_keepalive_loaders_ == 1 &&
        !fetch_keepalive_request_keep_alive_ &&
        Nicolas Ouellet-Payeur . unresolved

        Seems overly defensive: I think(?) if `num_fetch_keepalive_loaders_ == 1` then `!fetch_keepalive_request_keep_alive_` is true, and vice-versa. Maybe one of these could be a CHECK?

        Line 8371, Patchset 6 (Latest): fetch_keepalive_profile_holds_[browser_context];
        Nicolas Ouellet-Payeur . unresolved

        I guess this can still create 2 keepalives per profile?

        • `fetch_keepalive_profile_holds_[original]`
        • `fetch_keepalive_profile_holds_[incognito]`

        Not that this *breaks* anything(?), it's just a little hacky

        Line 8389, Patchset 6 (Latest): if (num_fetch_keepalive_loaders_ == 0) {
        return;
        }
        Nicolas Ouellet-Payeur . unresolved

        how can this happen? should it be a CHECK?

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Greg Thompson
        • Helmut Januschka
        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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
          Gerrit-Change-Number: 7972217
          Gerrit-PatchSet: 6
          Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
          Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
          Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
          Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
          Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
          Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
          Gerrit-CC: Barry Pollard <barryp...@chromium.org>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
          Gerrit-Attention: Greg Thompson <g...@chromium.org>
          Gerrit-Comment-Date: Mon, 13 Jul 2026 15:23:25 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Helmut Januschka (Gerrit)

          unread,
          Jul 13, 2026, 6:31:55 PMJul 13
          to Nicolas Ouellet-Payeur, Greg Thompson, Rakina Zata Amni, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
          Attention needed from Greg Thompson, Ming-Ying Chung, Nicolas Ouellet-Payeur and Rakina Zata Amni

          Helmut Januschka added 5 comments

          File chrome/browser/chrome_content_browser_client.h
          Line 1440, Patchset 6: uint64_t num_fetch_keepalive_loaders_ = 0;

          std::unique_ptr<ScopedKeepAlive> fetch_keepalive_request_keep_alive_;
          // Tracks in-flight fetch keepalive loaders per BrowserContext, holding a
          // ScopedProfileKeepAlive for the corresponding original profile while any
          // of its loaders exist. Every such profile needs its own hold: destroying
          // a profile (e.g. with features::kDestroyProfileOnBrowserClose) tears down
          // its StoragePartition and aborts that profile's in-flight loaders. Keys
          // are only used as identifiers and are never dereferenced on destruction;
          // entries are erased when their loader count drops to zero, which happens
          // no later than the corresponding context's destruction.
          struct FetchKeepAliveProfileHold {
          uint64_t num_loaders = 0;
          std::unique_ptr<ScopedProfileKeepAlive> profile_keep_alive;
          };
          std::map<raw_ptr<content::BrowserContext>, FetchKeepAliveProfileHold>
          fetch_keepalive_profile_holds_;
          base::TimeTicks fetch_keepalive_hold_started_;
          uint64_t fetch_keepalive_max_concurrent_ = 0;
          Nicolas Ouellet-Payeur . resolved

          IMO this is quite a lot of things to store inline... is ChromeContentBrowserClient really the best place for these? Or could this be some kind of helper class?

          Helmut Januschka

          pulled this out into a dedicated `FetchKeepAliveProcessManager` under `chrome/browser/loader/`

          Line 1442, Patchset 6: // Tracks in-flight fetch keepalive loaders per BrowserContext, holding a

          // ScopedProfileKeepAlive for the corresponding original profile while any
          // of its loaders exist. Every such profile needs its own hold: destroying
          // a profile (e.g. with features::kDestroyProfileOnBrowserClose) tears down
          // its StoragePartition and aborts that profile's in-flight loaders. Keys
          // are only used as identifiers and are never dereferenced on destruction;
          // entries are erased when their loader count drops to zero, which happens
          // no later than the corresponding context's destruction.
          Nicolas Ouellet-Payeur . resolved

          I think this is the same as the comments in `.cc`? Consider deduping this

          Helmut Januschka

          Done

          File chrome/browser/chrome_content_browser_client.cc
          Line 8358, Patchset 6: if (num_fetch_keepalive_loaders_ == 1 &&
          !fetch_keepalive_request_keep_alive_ &&
          Nicolas Ouellet-Payeur . resolved

          Seems overly defensive: I think(?) if `num_fetch_keepalive_loaders_ == 1` then `!fetch_keepalive_request_keep_alive_` is true, and vice-versa. Maybe one of these could be a CHECK?

          Helmut Januschka

          Done. Dropped the redundant `!process_keep_alive_` and replaced it with a `CHECK(!process_keep_alive_)`

          Line 8371, Patchset 6: fetch_keepalive_profile_holds_[browser_context];
          Nicolas Ouellet-Payeur . unresolved

          I guess this can still create 2 keepalives per profile?

          • `fetch_keepalive_profile_holds_[original]`
          • `fetch_keepalive_profile_holds_[incognito]`

          Not that this *breaks* anything(?), it's just a little hacky

          Helmut Januschka

          yeah that's right, original + OTR both with loaders = two keepalives on the same original profile, but harmles, both pin it, and each drops when its own context's loaders drain.

          it's keyed by BrowserContext on purpose, in OnRequestDestroyed the context may already be mid-teardown, so we can only use the raw ptr as a lookup key and can't deref it to find the original.

          Line 8389, Patchset 6: if (num_fetch_keepalive_loaders_ == 0) {
          return;
          }
          Nicolas Ouellet-Payeur . resolved

          how can this happen? should it be a CHECK?

          Helmut Januschka

          It can't, made it a CHECK. OnFetchKeepAliveRequestCreated/Destroyed are called from KeepAliveURLLoader's constructor/destructor, so they're strictly 1:1 per loader

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Greg Thompson
          • Ming-Ying Chung
          • Nicolas Ouellet-Payeur
          • 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
              Gerrit-Change-Number: 7972217
              Gerrit-PatchSet: 7
              Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
              Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
              Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
              Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
              Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-CC: Barry Pollard <barryp...@chromium.org>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
              Gerrit-Attention: Greg Thompson <g...@chromium.org>
              Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
              Gerrit-Comment-Date: Mon, 13 Jul 2026 22:31:38 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Nicolas Ouellet-Payeur <nico...@chromium.org>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Rakina Zata Amni (Gerrit)

              unread,
              Jul 13, 2026, 8:30:57 PMJul 13
              to Helmut Januschka, Nicolas Ouellet-Payeur, Greg Thompson, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
              Attention needed from Greg Thompson, Helmut Januschka, Ming-Ying Chung and Nicolas Ouellet-Payeur

              Rakina Zata Amni voted Code-Review+1

              Code-Review+1
              Open in Gerrit

              Related details

              Attention is currently required from:
              • Greg Thompson
              • Helmut Januschka
              • Ming-Ying Chung
              • Nicolas Ouellet-Payeur
              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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                Gerrit-Change-Number: 7972217
                Gerrit-PatchSet: 7
                Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
                Gerrit-Attention: Greg Thompson <g...@chromium.org>
                Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                Gerrit-Comment-Date: Tue, 14 Jul 2026 00:30:21 +0000
                Gerrit-HasComments: No
                Gerrit-Has-Labels: Yes
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Nicolas Ouellet-Payeur (Gerrit)

                unread,
                Jul 14, 2026, 10:22:47 AMJul 14
                to Helmut Januschka, Rakina Zata Amni, Greg Thompson, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                Attention needed from Greg Thompson, Helmut Januschka and Ming-Ying Chung

                Nicolas Ouellet-Payeur voted and added 2 comments

                Votes added by Nicolas Ouellet-Payeur

                Code-Review+1

                2 comments

                File chrome/browser/chrome_content_browser_client.cc
                Line 8354, Patchset 7 (Latest): !fetch_keepalive_process_manager_) {
                Nicolas Ouellet-Payeur . unresolved

                nit: CHECK instead. `OnFetchKeepAliveRequestCreated` is always called first, right?

                Line 8371, Patchset 6: fetch_keepalive_profile_holds_[browser_context];
                Nicolas Ouellet-Payeur . resolved

                I guess this can still create 2 keepalives per profile?

                • `fetch_keepalive_profile_holds_[original]`
                • `fetch_keepalive_profile_holds_[incognito]`

                Not that this *breaks* anything(?), it's just a little hacky

                Helmut Januschka

                yeah that's right, original + OTR both with loaders = two keepalives on the same original profile, but harmles, both pin it, and each drops when its own context's loaders drain.

                it's keyed by BrowserContext on purpose, in OnRequestDestroyed the context may already be mid-teardown, so we can only use the raw ptr as a lookup key and can't deref it to find the original.

                Nicolas Ouellet-Payeur

                Acknowledged

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Greg Thompson
                • Helmut Januschka
                • Ming-Ying Chung
                Gerrit-Attention: Greg Thompson <g...@chromium.org>
                Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                Gerrit-Comment-Date: Tue, 14 Jul 2026 14:22:32 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: Yes
                Comment-In-Reply-To: Helmut Januschka <hel...@januschka.com>
                Comment-In-Reply-To: Nicolas Ouellet-Payeur <nico...@chromium.org>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Helmut Januschka (Gerrit)

                unread,
                Jul 14, 2026, 12:19:40 PMJul 14
                to Nicolas Ouellet-Payeur, Rakina Zata Amni, Greg Thompson, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                Attention needed from Greg Thompson and Ming-Ying Chung

                Helmut Januschka added 1 comment

                File chrome/browser/chrome_content_browser_client.cc
                Line 8354, Patchset 7: !fetch_keepalive_process_manager_) {
                Nicolas Ouellet-Payeur . resolved

                nit: CHECK instead. `OnFetchKeepAliveRequestCreated` is always called first, right?

                Helmut Januschka

                Done

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Greg Thompson
                • Ming-Ying Chung
                Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                  Gerrit-Change-Number: 7972217
                  Gerrit-PatchSet: 8
                  Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                  Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                  Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                  Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                  Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                  Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                  Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-Attention: Greg Thompson <g...@chromium.org>
                  Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                  Gerrit-Comment-Date: Tue, 14 Jul 2026 16:19:21 +0000
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Ming-Ying Chung (Gerrit)

                  unread,
                  Jul 16, 2026, 12:47:40 PMJul 16
                  to Helmut Januschka, Nicolas Ouellet-Payeur, Rakina Zata Amni, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                  Attention needed from Greg Thompson and Helmut Januschka

                  Ming-Ying Chung voted Code-Review+1

                  Code-Review+1
                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Greg Thompson
                  • Helmut Januschka
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                  Gerrit-Change-Number: 7972217
                  Gerrit-PatchSet: 8
                  Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                  Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                  Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                  Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                  Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                  Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                  Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                  Gerrit-Attention: Greg Thompson <g...@chromium.org>
                  Gerrit-Comment-Date: Thu, 16 Jul 2026 16:47:04 +0000
                  Gerrit-HasComments: No
                  Gerrit-Has-Labels: Yes
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Greg Thompson (Gerrit)

                  unread,
                  Jul 20, 2026, 6:04:44 AM (11 days ago) Jul 20
                  to Helmut Januschka, Ming-Ying Chung, Nicolas Ouellet-Payeur, Rakina Zata Amni, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                  Attention needed from Helmut Januschka

                  Greg Thompson added 10 comments

                  File chrome/browser/browser_features.h
                  Line 58, Patchset 8 (Latest):BASE_DECLARE_FEATURE(kKeepAliveBrowserProcessAlive);
                  Greg Thompson . unresolved

                  the comment on line 25 says not to add to this file. how about introducing a `chrome/browser/loader/features.{cc,h}` pair for this?

                  File chrome/browser/chrome_content_browser_client.h
                  Line 21, Patchset 8 (Latest):#include "base/memory/raw_ptr.h"
                  Greg Thompson . unresolved

                  unused

                  Line 10, Patchset 8 (Latest):#include <map>
                  Greg Thompson . unresolved

                  unused

                  File chrome/browser/chrome_content_browser_client.cc
                  Line 103, Patchset 8 (Latest):#include "chrome/browser/loader/fetch_keepalive_process_manager.h"
                  Greg Thompson . unresolved

                  move down into the `#if !BUILDFLAG(IS_ANDROID)` block below

                  File chrome/browser/loader/fetch_keepalive_process_manager.h
                  Line 70, Patchset 8 (Latest): std::map<raw_ptr<content::BrowserContext>, ProfileHold> profile_holds_;
                  Line 53, Patchset 8 (Latest): void OnRequestCreated(content::BrowserContext* browser_context);
                  Greg Thompson . unresolved

                  since we're in `//chrome`, wdyt about using `Profile` here rather than `BrowserContext`? could that work, or would we run into trouble during the shutdown/destroyed case?

                  Line 8, Patchset 8 (Latest):#include <cstdint>
                  Greg Thompson . unresolved

                  please use `<stdint.h>` since we say `uint64_t` rather than `std::uint64_t`.

                  File chrome/browser/loader/fetch_keepalive_process_manager.cc
                  Line 39, Patchset 8 (Latest): if (browser_context) {
                  Greg Thompson . unresolved

                  how will this ever be nullptr? as per comment in content/public/browser/content_browser_client.h, pass `browser_context` by non-const ref if it cannot be null.

                  Line 80, Patchset 8 (Latest): if (!hold_started_.is_null()) {
                  Greg Thompson . unresolved

                  how could this ever not be true?

                  File content/public/browser/content_browser_client.h
                  Line 2904, Patchset 8 (Latest): virtual void OnFetchKeepAliveRequestCreated(BrowserContext* browser_context);
                  Greg Thompson . unresolved

                  will this ever be nullptr? if not, pass by non-const reference rather than pointer as per https://google.github.io/styleguide/cppguide.html#Inputs_and_Outputs

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Helmut Januschka
                  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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                    Gerrit-Change-Number: 7972217
                    Gerrit-PatchSet: 8
                    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                    Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                    Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                    Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                    Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                    Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                    Gerrit-Comment-Date: Mon, 20 Jul 2026 10:04:23 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Helmut Januschka (Gerrit)

                    unread,
                    Jul 21, 2026, 5:01:59 AM (10 days ago) Jul 21
                    to Ming-Ying Chung, Nicolas Ouellet-Payeur, Rakina Zata Amni, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                    Attention needed from Greg Thompson, Ming-Ying Chung, Nicolas Ouellet-Payeur and Rakina Zata Amni

                    Helmut Januschka added 10 comments

                    File chrome/browser/browser_features.h
                    Line 58, Patchset 8:BASE_DECLARE_FEATURE(kKeepAliveBrowserProcessAlive);
                    Greg Thompson . resolved

                    the comment on line 25 says not to add to this file. how about introducing a `chrome/browser/loader/features.{cc,h}` pair for this?

                    Helmut Januschka

                    sorry missed that comment! done, moved it to loader/features

                    File chrome/browser/chrome_content_browser_client.h
                    Line 21, Patchset 8:#include "base/memory/raw_ptr.h"
                    Greg Thompson . resolved

                    unused

                    Helmut Januschka

                    Done

                    Line 10, Patchset 8:#include <map>
                    Greg Thompson . resolved

                    unused

                    Helmut Januschka

                    Done

                    File chrome/browser/chrome_content_browser_client.cc
                    Line 103, Patchset 8:#include "chrome/browser/loader/fetch_keepalive_process_manager.h"
                    Greg Thompson . resolved

                    move down into the `#if !BUILDFLAG(IS_ANDROID)` block below

                    Helmut Januschka

                    Done

                    File chrome/browser/loader/fetch_keepalive_process_manager.h
                    Line 70, Patchset 8: std::map<raw_ptr<content::BrowserContext>, ProfileHold> profile_holds_;
                    Greg Thompson . resolved
                    Helmut Januschka

                    Done

                    Line 53, Patchset 8: void OnRequestCreated(content::BrowserContext* browser_context);
                    Greg Thompson . unresolved

                    since we're in `//chrome`, wdyt about using `Profile` here rather than `BrowserContext`? could that work, or would we run into trouble during the shutdown/destroyed case?

                    Helmut Januschka

                    Switched the manager API and tracking map to `Profile*`. The destroyed path converts the still-live `BrowserContext` to `Profile*` at the callback boundary.

                    Line 8, Patchset 8:#include <cstdint>
                    Greg Thompson . resolved

                    please use `<stdint.h>` since we say `uint64_t` rather than `std::uint64_t`.

                    Helmut Januschka

                    Done

                    File chrome/browser/loader/fetch_keepalive_process_manager.cc
                    Line 39, Patchset 8: if (browser_context) {
                    Greg Thompson . resolved

                    how will this ever be nullptr? as per comment in content/public/browser/content_browser_client.h, pass `browser_context` by non-const ref if it cannot be null.

                    Helmut Januschka

                    Done

                    Line 80, Patchset 8: if (!hold_started_.is_null()) {
                    Greg Thompson . unresolved

                    how could this ever not be true?

                    Helmut Januschka

                    this can happen in the `IsShuttingDown()` path, creating a `ScopedKeepAlive` would CHECK, but pending work can still create a loader during teardown.

                    File content/public/browser/content_browser_client.h
                    Line 2904, Patchset 8: virtual void OnFetchKeepAliveRequestCreated(BrowserContext* browser_context);
                    Greg Thompson . unresolved

                    will this ever be nullptr? if not, pass by non-const reference rather than pointer as per https://google.github.io/styleguide/cppguide.html#Inputs_and_Outputs

                    Helmut Januschka

                    Good point. `StoragePartition::browser_context()` is non-null, changed both callbacks to take non-const references.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Greg Thompson
                    • Ming-Ying Chung
                    • Nicolas Ouellet-Payeur
                    • 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                        Gerrit-Change-Number: 7972217
                        Gerrit-PatchSet: 9
                        Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                        Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                        Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                        Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                        Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                        Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                        Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
                        Gerrit-Attention: Greg Thompson <g...@chromium.org>
                        Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                        Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
                        Gerrit-Comment-Date: Tue, 21 Jul 2026 09:01:41 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        Comment-In-Reply-To: Greg Thompson <g...@chromium.org>
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Greg Thompson (Gerrit)

                        unread,
                        Jul 21, 2026, 5:29:19 AM (10 days ago) Jul 21
                        to Helmut Januschka, Ming-Ying Chung, Nicolas Ouellet-Payeur, Rakina Zata Amni, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                        Attention needed from Helmut Januschka, Ming-Ying Chung, Nicolas Ouellet-Payeur and Rakina Zata Amni

                        Greg Thompson voted and added 2 comments

                        Votes added by Greg Thompson

                        Code-Review+1

                        2 comments

                        File chrome/browser/chrome_content_browser_client.h
                        Line 60, Patchset 9 (Latest):class FetchKeepAliveProcessManager;
                        Greg Thompson . unresolved

                        wrap this in `#if !BUILDFLAG(IS_ANDROID)`.

                        (sorry i missed this earlier)

                        File chrome/browser/chrome_content_browser_client.cc
                        Line 103, Patchset 9 (Latest):#include "chrome/browser/loader/features.h"
                        Greg Thompson . unresolved

                        this also goes in the `!IS_ANDROID` block below

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Helmut Januschka
                        • Ming-Ying Chung
                        • Nicolas Ouellet-Payeur
                        • Rakina Zata Amni
                          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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                            Gerrit-Change-Number: 7972217
                            Gerrit-PatchSet: 9
                            Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                            Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                            Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                            Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                            Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                            Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                            Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                            Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                            Gerrit-Attention: Nicolas Ouellet-Payeur <nico...@chromium.org>
                            Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                            Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
                            Gerrit-Comment-Date: Tue, 21 Jul 2026 09:29:00 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Nicolas Ouellet-Payeur (Gerrit)

                            unread,
                            Jul 21, 2026, 1:27:48 PM (10 days ago) Jul 21
                            to Helmut Januschka, Greg Thompson, Ming-Ying Chung, Rakina Zata Amni, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                            Attention needed from Helmut Januschka, Ming-Ying Chung and Rakina Zata Amni

                            Nicolas Ouellet-Payeur voted Code-Review+1

                            Code-Review+1
                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Helmut Januschka
                            • Ming-Ying Chung
                            • Rakina Zata Amni
                            Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                            Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
                            Gerrit-Comment-Date: Tue, 21 Jul 2026 17:27:36 +0000
                            Gerrit-HasComments: No
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Helmut Januschka (Gerrit)

                            unread,
                            Jul 22, 2026, 4:58:26 AM (9 days ago) Jul 22
                            to Nicolas Ouellet-Payeur, Greg Thompson, Ming-Ying Chung, Rakina Zata Amni, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                            Attention needed from Ming-Ying Chung and Rakina Zata Amni

                            Helmut Januschka added 3 comments

                            File chrome/browser/chrome_content_browser_client.h
                            Line 60, Patchset 9:class FetchKeepAliveProcessManager;
                            Greg Thompson . resolved

                            wrap this in `#if !BUILDFLAG(IS_ANDROID)`.

                            (sorry i missed this earlier)

                            Helmut Januschka

                            Done

                            File chrome/browser/chrome_content_browser_client.cc
                            Line 103, Patchset 9:#include "chrome/browser/loader/features.h"
                            Greg Thompson . resolved

                            this also goes in the `!IS_ANDROID` block below

                            Helmut Januschka

                            Done

                            File content/public/browser/content_browser_client.h
                            Line 2904, Patchset 8: virtual void OnFetchKeepAliveRequestCreated(BrowserContext* browser_context);
                            Greg Thompson . resolved

                            will this ever be nullptr? if not, pass by non-const reference rather than pointer as per https://google.github.io/styleguide/cppguide.html#Inputs_and_Outputs

                            Helmut Januschka

                            Good point. `StoragePartition::browser_context()` is non-null, changed both callbacks to take non-const references.

                            Helmut Januschka

                            Done

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Ming-Ying Chung
                            • Rakina Zata Amni
                            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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                            Gerrit-Change-Number: 7972217
                            Gerrit-PatchSet: 11
                            Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                            Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                            Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                            Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                            Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                            Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                            Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                            Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                            Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
                            Gerrit-Comment-Date: Wed, 22 Jul 2026 08:58:06 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: No
                            Comment-In-Reply-To: Helmut Januschka <hel...@januschka.com>
                            Comment-In-Reply-To: Greg Thompson <g...@chromium.org>
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Rakina Zata Amni (Gerrit)

                            unread,
                            Jul 22, 2026, 8:32:48 AM (9 days ago) Jul 22
                            to Helmut Januschka, Nicolas Ouellet-Payeur, Greg Thompson, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                            Attention needed from Helmut Januschka and Ming-Ying Chung

                            Rakina Zata Amni voted Code-Review+1

                            Code-Review+1
                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Helmut Januschka
                            • Ming-Ying Chung
                            Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                            Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                            Gerrit-Comment-Date: Wed, 22 Jul 2026 12:32:21 +0000
                            Gerrit-HasComments: No
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Helmut Januschka (Gerrit)

                            unread,
                            Jul 29, 2026, 11:36:34 AM (2 days ago) Jul 29
                            to Ryan Sultanem, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                            Attention needed from Ming-Ying Chung and Ryan Sultanem

                            Helmut Januschka added 2 comments

                            File chrome/browser/loader/fetch_keepalive_process_manager.h
                            Line 53, Patchset 8: void OnRequestCreated(content::BrowserContext* browser_context);
                            Greg Thompson . resolved

                            since we're in `//chrome`, wdyt about using `Profile` here rather than `BrowserContext`? could that work, or would we run into trouble during the shutdown/destroyed case?

                            Helmut Januschka

                            Switched the manager API and tracking map to `Profile*`. The destroyed path converts the still-live `BrowserContext` to `Profile*` at the callback boundary.

                            Helmut Januschka

                            Done

                            File chrome/browser/loader/fetch_keepalive_process_manager.cc
                            Line 80, Patchset 8: if (!hold_started_.is_null()) {
                            Greg Thompson . resolved

                            how could this ever not be true?

                            Helmut Januschka

                            this can happen in the `IsShuttingDown()` path, creating a `ScopedKeepAlive` would CHECK, but pending work can still create a loader during teardown.

                            Helmut Januschka

                            Done

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Ming-Ying Chung
                            • Ryan Sultanem
                            Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement is not 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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                              Gerrit-Change-Number: 7972217
                              Gerrit-PatchSet: 11
                              Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                              Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                              Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                              Gerrit-Reviewer: Ryan Sultanem <rs...@google.com>
                              Gerrit-Attention: Ryan Sultanem <rs...@google.com>
                              Gerrit-Attention: Ming-Ying Chung <my...@chromium.org>
                              Gerrit-Comment-Date: Wed, 29 Jul 2026 15:36:15 +0000
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Helmut Januschka (Gerrit)

                              unread,
                              Jul 29, 2026, 11:36:49 AM (2 days ago) Jul 29
                              to Ryan Sultanem, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Ming-Ying Chung, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                              Attention needed from Ming-Ying Chung and Ryan Sultanem

                              Helmut Januschka voted Auto-Submit+1

                              Auto-Submit+1
                              Gerrit-Comment-Date: Wed, 29 Jul 2026 15:36:28 +0000
                              Gerrit-HasComments: No
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Ming-Ying Chung (Gerrit)

                              unread,
                              Jul 30, 2026, 1:29:22 AM (yesterday) Jul 30
                              to Helmut Januschka, Ryan Sultanem, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                              Attention needed from Helmut Januschka and Ryan Sultanem

                              Ming-Ying Chung voted Code-Review+1

                              Code-Review+1
                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Helmut Januschka
                              • Ryan Sultanem
                              Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Attention: Ryan Sultanem <rs...@google.com>
                              Gerrit-Comment-Date: Thu, 30 Jul 2026 05:28:44 +0000
                              Gerrit-HasComments: No
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Ryan Sultanem (Gerrit)

                              unread,
                              Jul 30, 2026, 4:06:17 AM (yesterday) Jul 30
                              to Helmut Januschka, Ming-Ying Chung, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                              Attention needed from Helmut Januschka

                              Ryan Sultanem voted and added 1 comment

                              Votes added by Ryan Sultanem

                              Code-Review+1
                              Commit-Queue+2

                              1 comment

                              Patchset-level comments
                              File-level comment, Patchset 11 (Latest):
                              Ryan Sultanem . resolved

                              LGTM for `chrome/browser/profiles/keep_alive/profile_keep_alive_types.*` and `profile/enums.xml`

                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Helmut Januschka
                              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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                              Gerrit-Change-Number: 7972217
                              Gerrit-PatchSet: 11
                              Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                              Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                              Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                              Gerrit-Reviewer: Ryan Sultanem <rs...@google.com>
                              Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                              Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Comment-Date: Thu, 30 Jul 2026 08:05:54 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              open
                              diffy

                              Helmut Januschka (Gerrit)

                              unread,
                              Jul 30, 2026, 4:24:31 AM (yesterday) Jul 30
                              to Ryan Sultanem, Ming-Ying Chung, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org
                              Attention needed from Ryan Sultanem

                              Helmut Januschka voted Commit-Queue+2

                              Commit-Queue+2
                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Ryan Sultanem
                              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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                              Gerrit-Change-Number: 7972217
                              Gerrit-PatchSet: 12
                              Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                              Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                              Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                              Gerrit-Reviewer: Ryan Sultanem <rs...@google.com>
                              Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                              Gerrit-Attention: Ryan Sultanem <rs...@google.com>
                              Gerrit-Comment-Date: Thu, 30 Jul 2026 08:24:13 +0000
                              Gerrit-HasComments: No
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              open
                              diffy

                              Chromium LUCI CQ (Gerrit)

                              unread,
                              Jul 30, 2026, 5:22:21 AM (yesterday) Jul 30
                              to Helmut Januschka, Ryan Sultanem, Ming-Ying Chung, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org

                              Chromium LUCI CQ submitted the change with unreviewed changes

                              Unreviewed changes

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

                              ```
                              The name of the file: chrome/browser/loader/keep_alive_browser_process_alive_browsertest.cc
                              Insertions: 1, Deletions: 1.

                              @@ -83,7 +83,7 @@
                              IN_PROC_BROWSER_TEST_F(FetchKeepAliveProcessAliveBrowserTest,
                              HoldsEveryProfileWithInFlightLoaders) {
                              ProfileManager* profile_manager = g_browser_process->profile_manager();
                              - Profile* first_profile = browser()->profile();
                              + Profile* first_profile = browser()->GetProfile();
                              Profile& second_profile = profiles::testing::CreateProfileSync(
                              profile_manager,
                              profile_manager->user_data_dir().AppendASCII("Profile 2"));
                              ```

                              Change information

                              Commit message:
                              Keep browser alive while fetch keepalive URLLoaders exist

                              Holds a ScopedKeepAlive while any fetch keepalive URLLoader (including
                              pending fetchLater) exists, gated by the default-off
                              kKeepAliveBrowserProcessAlive feature, so closing the last window does
                              not drop pending requests.
                              Bug: 408010432
                              Change-Id: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                              Reviewed-by: Rakina Zata Amni <rak...@chromium.org>
                              Reviewed-by: Ming-Ying Chung <my...@chromium.org>
                              Reviewed-by: Ryan Sultanem <rs...@google.com>
                              Auto-Submit: Helmut Januschka <hel...@januschka.com>
                              Reviewed-by: Nicolas Ouellet-Payeur <nico...@chromium.org>
                              Reviewed-by: Greg Thompson <g...@chromium.org>
                              Commit-Queue: Helmut Januschka <hel...@januschka.com>
                              Cr-Commit-Position: refs/heads/main@{#1670925}
                              Files:
                              • M chrome/browser/chrome_content_browser_client.cc
                              • M chrome/browser/chrome_content_browser_client.h
                              • M chrome/browser/loader/BUILD.gn
                              • A chrome/browser/loader/features.cc
                              • A chrome/browser/loader/features.h
                              • A chrome/browser/loader/fetch_keepalive_process_manager.cc
                              • A chrome/browser/loader/fetch_keepalive_process_manager.h
                              • A chrome/browser/loader/keep_alive_browser_process_alive_browsertest.cc
                              • M chrome/browser/profiles/keep_alive/profile_keep_alive_types.cc
                              • M chrome/browser/profiles/keep_alive/profile_keep_alive_types.h
                              • M components/keep_alive_registry/keep_alive_types.cc
                              • M components/keep_alive_registry/keep_alive_types.h
                              • M content/browser/loader/keep_alive_url_loader.cc
                              • M content/public/browser/content_browser_client.cc
                              • M content/public/browser/content_browser_client.h
                              • M tools/metrics/histograms/metadata/chrome/histograms.xml
                              • M tools/metrics/histograms/metadata/profile/enums.xml
                              Change size: L
                              Delta: 17 files changed, 479 insertions(+), 1 deletion(-)
                              Branch: refs/heads/main
                              Submit Requirements:
                              • requirement satisfiedCode-Review: +1 by Rakina Zata Amni, +1 by Ming-Ying Chung, +1 by Greg Thompson, +1 by Nicolas Ouellet-Payeur, +1 by Ryan Sultanem
                              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: I8a8d2d7a8770e8f1cdedf9d279db2359a5192ff4
                              Gerrit-Change-Number: 7972217
                              Gerrit-PatchSet: 13
                              Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                              Gerrit-Reviewer: Greg Thompson <g...@chromium.org>
                              Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
                              Gerrit-Reviewer: Ming-Ying Chung <my...@chromium.org>
                              Gerrit-Reviewer: Nicolas Ouellet-Payeur <nico...@chromium.org>
                              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
                              Gerrit-Reviewer: Ryan Sultanem <rs...@google.com>
                              Gerrit-CC: Barry Pollard <barryp...@chromium.org>
                              open
                              diffy
                              satisfied_requirement

                              Shunya Shishido (Gerrit)

                              unread,
                              Jul 30, 2026, 9:56:37 PM (8 hours ago) Jul 30
                              to Helmut Januschka, Chromium LUCI CQ, Ryan Sultanem, Ming-Ying Chung, Rakina Zata Amni, Nicolas Ouellet-Payeur, Greg Thompson, Barry Pollard, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, asvitkine...@chromium.org, loading...@chromium.org

                              Shunya Shishido has created a revert of this change

                              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