Updater: Clear CrxCache entries belonging to unregistered apps. [chromium/src : main]

69 views
Skip to first unread message

Joshua Pawlicki (Gerrit)

unread,
Apr 22, 2025, 3:40:51 PM4/22/25
to Noah Rose Ledesma, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
Attention needed from Noah Rose Ledesma

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Noah Rose Ledesma
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
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: I99133e5ab036f57ce384e88e593d32625af587c7
Gerrit-Change-Number: 6480696
Gerrit-PatchSet: 1
Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
Gerrit-Attention: Noah Rose Ledesma <noah...@google.com>
Gerrit-Comment-Date: Tue, 22 Apr 2025 19:40:44 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Noah Rose Ledesma (Gerrit)

unread,
Apr 22, 2025, 4:16:18 PM4/22/25
to Joshua Pawlicki, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
Attention needed from Joshua Pawlicki

Noah Rose Ledesma added 8 comments

File android_webview/nonembedded/component_updater/aw_component_updater_configurator.cc
Line 50, Patchset 1 (Latest): bool result = base::PathService::Get(chrome::DIR_USER_DATA, &path);
Noah Rose Ledesma . unresolved

Needs #include

File chrome/browser/extensions/updater/chrome_update_client_config.h
Line 83, Patchset 1 (Latest): scoped_refptr<update_client::CrxCache> GetCrxCache() const override;
Noah Rose Ledesma . unresolved

Needs decl?

File chrome/browser/extensions/updater/chrome_update_client_config.cc
Line 189, Patchset 1 (Latest): crx_cache_ = base::MakeRefCounted<update_client::CrxCache>(
Noah Rose Ledesma . unresolved

#include

File chrome/updater/cleanup_task.cc
Line 103, Patchset 1 (Latest): config->GetCrxCache()->RetainOnly(
config->GetUpdaterPersistedData()->GetAppIds(),
std::move(callback));
Noah Rose Ledesma . unresolved

Is this okay to do on the main sequence?

File chrome/updater/update_service_internal_impl_qualifying.cc
Line 155, Patchset 1 (Latest): if (qualified) {
Noah Rose Ledesma . unresolved

Do we want to keep qualification app instances in the CRX cache? If qualification fails on the first attempt could the second attempt involve a differential update? I wonder if allowing it to be cached at all adds non-determinism to the qualification process.

File components/update_client/crx_cache.h
Line 83, Patchset 1 (Latest): // app IDs. O(N+M) time.
Noah Rose Ledesma . unresolved

Is the time complexity of the operation particularly important? It seems unusual to document, though I note it's also done above.

File components/update_client/crx_cache.cc
Line 233, Patchset 1 (Latest): absl::flat_hash_set<std::string> retained_ids;
for (const auto& app_id : app_ids) {
retained_ids.insert(app_id);
}
Noah Rose Ledesma . unresolved

Consider using `absl::flat_hash_set`'s range constructor, e.g.

```
absl::flat_hash_set<std::string> retained_ids(app_ids.begin(), app_ids.end());
```

Alternatively, is the cost of linear search over the vector low enough to remove the set altogether? I can't imagine the cardinality of `app_ids` to be that great.

Line 237, Patchset 1 (Latest): std::multimap<std::string, std::string> hashes_by_app_id =
ListHashesByAppId();
Noah Rose Ledesma . unresolved

nit: inline?

Open in Gerrit

Related details

Attention is currently required from:
  • Joshua Pawlicki
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 1
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Comment-Date: Tue, 22 Apr 2025 20:16:10 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Noah Rose Ledesma (Gerrit)

    unread,
    Apr 22, 2025, 4:17:03 PM4/22/25
    to Joshua Pawlicki, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
    Attention needed from Joshua Pawlicki

    Noah Rose Ledesma added 1 comment

    File chrome/updater/cleanup_task.cc
    Line 103, Patchset 1 (Latest): config->GetCrxCache()->RetainOnly(
    config->GetUpdaterPersistedData()->GetAppIds(),
    std::move(callback));
    Noah Rose Ledesma . resolved

    Is this okay to do on the main sequence?

    Noah Rose Ledesma

    I see now that the impl posts and the instance needs to be accessed on the main sequence.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Joshua Pawlicki
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 1
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Comment-Date: Tue, 22 Apr 2025 20:16:51 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Noah Rose Ledesma <noah...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Joshua Pawlicki (Gerrit)

    unread,
    Apr 23, 2025, 12:31:49 PM4/23/25
    to AyeAye, Noah Rose Ledesma, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
    Attention needed from Noah Rose Ledesma

    Joshua Pawlicki added 7 comments

    File android_webview/nonembedded/component_updater/aw_component_updater_configurator.cc
    Line 50, Patchset 1: bool result = base::PathService::Get(chrome::DIR_USER_DATA, &path);
    Noah Rose Ledesma . resolved

    Needs #include

    Joshua Pawlicki

    Done (well, fixed the copypaste error)

    File chrome/browser/extensions/updater/chrome_update_client_config.h
    Line 83, Patchset 1: scoped_refptr<update_client::CrxCache> GetCrxCache() const override;
    Noah Rose Ledesma . resolved

    Needs decl?

    Joshua Pawlicki

    Done

    File chrome/browser/extensions/updater/chrome_update_client_config.cc
    Line 189, Patchset 1: crx_cache_ = base::MakeRefCounted<update_client::CrxCache>(
    Noah Rose Ledesma . resolved

    #include

    Joshua Pawlicki

    Done

    File chrome/updater/update_service_internal_impl_qualifying.cc
    Line 155, Patchset 1: if (qualified) {
    Noah Rose Ledesma . resolved

    Do we want to keep qualification app instances in the CRX cache? If qualification fails on the first attempt could the second attempt involve a differential update? I wonder if allowing it to be cached at all adds non-determinism to the qualification process.

    Joshua Pawlicki

    IIUC the trade-off is between the scenario that qualification "falsely" succeeds on the second attempt and the qualification reliably failing on further attempts. I think the former is rarer than the latter, and if the app reliably fails qualification post-download, I'd rather have it not stuck wasting user bandwidth by redownloading the same file.

    Even if the former scenario occurs, that ultimately is a successful qualification, even if it took the updater multiple attempts.

    Diff updates specifically shouldn't be an issue since we are caching the exact file we want to install (0 bytes differ).

    File components/update_client/crx_cache.h
    Line 83, Patchset 1: // app IDs. O(N+M) time.
    Noah Rose Ledesma . resolved

    Is the time complexity of the operation particularly important? It seems unusual to document, though I note it's also done above.

    Joshua Pawlicki

    I don't think so, but I wanted to be consistent with the above.

    File components/update_client/crx_cache.cc
    Line 233, Patchset 1: absl::flat_hash_set<std::string> retained_ids;

    for (const auto& app_id : app_ids) {
    retained_ids.insert(app_id);
    }
    Noah Rose Ledesma . resolved

    Consider using `absl::flat_hash_set`'s range constructor, e.g.

    ```
    absl::flat_hash_set<std::string> retained_ids(app_ids.begin(), app_ids.end());
    ```

    Alternatively, is the cost of linear search over the vector low enough to remove the set altogether? I can't imagine the cardinality of `app_ids` to be that great.

    Joshua Pawlicki

    range constructor, done. Good idea.

    Cardinality: yeah, I had the same thought, but then realized app_ids can be 1000s in the case of extension updater, and if in that case we did have 1000s of items in cache, I decided the O(NM) is too much to pay.

    Line 237, Patchset 1: std::multimap<std::string, std::string> hashes_by_app_id =
    ListHashesByAppId();
    Noah Rose Ledesma . resolved

    nit: inline?

    Joshua Pawlicki

    !
    Done.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Noah Rose Ledesma
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 3
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Attention: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Comment-Date: Wed, 23 Apr 2025 16:31:28 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Noah Rose Ledesma (Gerrit)

    unread,
    Apr 25, 2025, 12:19:02 PM4/25/25
    to Joshua Pawlicki, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
    Attention needed from Joshua Pawlicki

    Noah Rose Ledesma voted and added 1 comment

    Votes added by Noah Rose Ledesma

    Code-Review+1

    1 comment

    Patchset-level comments
    Noah Rose Ledesma . resolved

    LGTM, ty! Sorry, I did not realize that this change was still in my queue. Feel free to ping me if I'm slow on gerrit reviews, these have a nasty habit of falling out of my vision

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Joshua Pawlicki
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Review
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 7
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Comment-Date: Fri, 25 Apr 2025 16:18:49 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Joshua Pawlicki (Gerrit)

    unread,
    Apr 25, 2025, 12:20:27 PM4/25/25
    to Noah Rose Ledesma, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org

    Joshua Pawlicki added 1 comment

    Patchset-level comments
    Noah Rose Ledesma . resolved

    LGTM, ty! Sorry, I did not realize that this change was still in my queue. Feel free to ping me if I'm slow on gerrit reviews, these have a nasty habit of falling out of my vision

    Joshua Pawlicki

    No need to apologize, up until about 30 minutes ago there were still failing tests so I didn't feel a need to ping.

    (...hopefully the tests are passing now.)

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Review
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 7
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Comment-Date: Fri, 25 Apr 2025 16:20:17 +0000
    satisfied_requirement
    open
    diffy

    Sergio Collazos (Gerrit)

    unread,
    May 5, 2025, 2:09:28 PM5/5/25
    to Joshua Pawlicki, Adam Walls, Sorin Jianu, Noah Rose Ledesma, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
    Attention needed from Adam Walls, Joshua Pawlicki and Sorin Jianu

    Sergio Collazos voted and added 1 comment

    Votes added by Sergio Collazos

    Code-Review+1

    1 comment

    Patchset-level comments
    Sergio Collazos . resolved

    ios/ LGTM

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Adam Walls
    • Joshua Pawlicki
    • Sorin Jianu
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Review
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 7
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Adam Walls <avv...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Reviewer: Sergio Collazos <sc...@chromium.org>
    Gerrit-Reviewer: Sorin Jianu <so...@chromium.org>
    Gerrit-Attention: Sorin Jianu <so...@chromium.org>
    Gerrit-Attention: Adam Walls <avv...@chromium.org>
    Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Comment-Date: Mon, 05 May 2025 18:09:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Adam Walls (Gerrit)

    unread,
    May 5, 2025, 2:47:55 PM5/5/25
    to Joshua Pawlicki, Peter Pakkenberg, Sergio Collazos, Sorin Jianu, Noah Rose Ledesma, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
    Attention needed from Joshua Pawlicki and Sorin Jianu

    Adam Walls voted and added 1 comment

    Votes added by Adam Walls

    Code-Review+1

    1 comment

    Patchset-level comments
    Adam Walls . resolved

    aw lgtm

    +CC pbirk

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Joshua Pawlicki
    • Sorin Jianu
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Review
    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: I99133e5ab036f57ce384e88e593d32625af587c7
    Gerrit-Change-Number: 6480696
    Gerrit-PatchSet: 7
    Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Adam Walls <avv...@chromium.org>
    Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
    Gerrit-Reviewer: Sergio Collazos <sc...@chromium.org>
    Gerrit-Reviewer: Sorin Jianu <so...@chromium.org>
    Gerrit-CC: Peter Pakkenberg <pb...@chromium.org>
    Gerrit-Attention: Sorin Jianu <so...@chromium.org>
    Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
    Gerrit-Comment-Date: Mon, 05 May 2025 18:47:46 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Sorin Jianu (Gerrit)

    unread,
    May 5, 2025, 4:28:57 PM5/5/25
    to Joshua Pawlicki, Adam Walls, Peter Pakkenberg, Sergio Collazos, Noah Rose Ledesma, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
    Attention needed from Joshua Pawlicki

    Sorin Jianu added 8 comments

    Patchset-level comments
    Sorin Jianu . resolved

    ty Josh!

    Commit Message
    Line 13, Patchset 7 (Latest):scoped to the UpdateEngine to being scoped to the configuator's
    Sorin Jianu . unresolved

    typo

    File chrome/updater/cleanup_task.cc
    Line 105, Patchset 7 (Latest): std::move(callback));
    Sorin Jianu . unresolved

    <utility>

    File components/update_client/crx_cache.h
    Line 84, Patchset 7 (Latest): void RetainOnly(const std::vector<std::string>& app_ids,
    Sorin Jianu . unresolved

    RetainOnly(app_ids...) somehow suggests the opposite of what the function is documented to do. Maybe rename to `RemoveIfNot(app_id...)` or do `RemoveIf(pred...)` or `RetainIf(pred...`.

    Line 84, Patchset 7 (Latest): void RetainOnly(const std::vector<std::string>& app_ids,
    Sorin Jianu . unresolved

    <vector>

    File components/update_client/crx_cache.cc
    Line 47, Patchset 7 (Latest): virtual void RetainOnly(const std::vector<std::string>& app_ids) = 0;
    Sorin Jianu . unresolved

    <vector>

    Line 234, Patchset 7 (Latest): for (const auto& pair : ListHashesByAppId()) {
    Sorin Jianu . unresolved

    Can we destructure so we use something instead of `pair.first`?

    File components/update_client/crx_cache_unittest.cc
    Line 177, Patchset 7 (Latest): cache->RemoveAll("appid", base::DoNothing());
    Sorin Jianu . unresolved

    base/functional/callback_helpers.h

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Joshua Pawlicki
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I99133e5ab036f57ce384e88e593d32625af587c7
      Gerrit-Change-Number: 6480696
      Gerrit-PatchSet: 7
      Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Adam Walls <avv...@chromium.org>
      Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
      Gerrit-Reviewer: Sergio Collazos <sc...@chromium.org>
      Gerrit-Reviewer: Sorin Jianu <so...@chromium.org>
      Gerrit-CC: Peter Pakkenberg <pb...@chromium.org>
      Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Comment-Date: Mon, 05 May 2025 20:28:49 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Joshua Pawlicki (Gerrit)

      unread,
      May 6, 2025, 10:19:16 AM5/6/25
      to Adam Walls, Peter Pakkenberg, Sergio Collazos, Sorin Jianu, Noah Rose Ledesma, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
      Attention needed from Sorin Jianu

      Joshua Pawlicki voted and added 7 comments

      Votes added by Joshua Pawlicki

      Commit-Queue+2

      7 comments

      Commit Message
      Line 13, Patchset 7:scoped to the UpdateEngine to being scoped to the configuator's
      Sorin Jianu . resolved

      typo

      Joshua Pawlicki

      Done

      File chrome/updater/cleanup_task.cc
      Line 105, Patchset 7: std::move(callback));
      Sorin Jianu . resolved

      <utility>

      Joshua Pawlicki

      Done

      File components/update_client/crx_cache.h
      Line 84, Patchset 7: void RetainOnly(const std::vector<std::string>& app_ids,
      Sorin Jianu . resolved

      RetainOnly(app_ids...) somehow suggests the opposite of what the function is documented to do. Maybe rename to `RemoveIfNot(app_id...)` or do `RemoveIf(pred...)` or `RetainIf(pred...`.

      Joshua Pawlicki

      Done

      Line 84, Patchset 7: void RetainOnly(const std::vector<std::string>& app_ids,
      Sorin Jianu . resolved

      <vector>

      Joshua Pawlicki

      Done

      File components/update_client/crx_cache.cc
      Line 47, Patchset 7: virtual void RetainOnly(const std::vector<std::string>& app_ids) = 0;
      Sorin Jianu . resolved

      <vector>

      Joshua Pawlicki

      Done

      Line 234, Patchset 7: for (const auto& pair : ListHashesByAppId()) {
      Sorin Jianu . resolved

      Can we destructure so we use something instead of `pair.first`?

      Joshua Pawlicki

      Done

      File components/update_client/crx_cache_unittest.cc
      Line 177, Patchset 7: cache->RemoveAll("appid", base::DoNothing());
      Sorin Jianu . resolved

      base/functional/callback_helpers.h

      Joshua Pawlicki

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Sorin Jianu
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      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: I99133e5ab036f57ce384e88e593d32625af587c7
      Gerrit-Change-Number: 6480696
      Gerrit-PatchSet: 9
      Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Adam Walls <avv...@chromium.org>
      Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
      Gerrit-Reviewer: Sergio Collazos <sc...@chromium.org>
      Gerrit-Reviewer: Sorin Jianu <so...@chromium.org>
      Gerrit-CC: Peter Pakkenberg <pb...@chromium.org>
      Gerrit-Attention: Sorin Jianu <so...@chromium.org>
      Gerrit-Comment-Date: Tue, 06 May 2025 14:19:03 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Sorin Jianu <so...@chromium.org>
      satisfied_requirement
      open
      diffy

      Sorin Jianu (Gerrit)

      unread,
      May 6, 2025, 10:24:16 AM5/6/25
      to Joshua Pawlicki, Adam Walls, Peter Pakkenberg, Sergio Collazos, Noah Rose Ledesma, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org
      Attention needed from Joshua Pawlicki

      Sorin Jianu voted and added 1 comment

      Votes added by Sorin Jianu

      Code-Review+1

      1 comment

      Patchset-level comments
      File-level comment, Patchset 9 (Latest):
      Sorin Jianu . resolved

      lgtm ty!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Joshua Pawlicki
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      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: I99133e5ab036f57ce384e88e593d32625af587c7
      Gerrit-Change-Number: 6480696
      Gerrit-PatchSet: 9
      Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Adam Walls <avv...@chromium.org>
      Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
      Gerrit-Reviewer: Sergio Collazos <sc...@chromium.org>
      Gerrit-Reviewer: Sorin Jianu <so...@chromium.org>
      Gerrit-CC: Peter Pakkenberg <pb...@chromium.org>
      Gerrit-Attention: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Comment-Date: Tue, 06 May 2025 14:24:03 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Chromium LUCI CQ (Gerrit)

      unread,
      May 6, 2025, 11:51:38 AM5/6/25
      to Joshua Pawlicki, Sorin Jianu, Adam Walls, Peter Pakkenberg, Sergio Collazos, Noah Rose Ledesma, AyeAye, chromium...@chromium.org, mac-r...@chromium.org, android-web...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, ios-revie...@chromium.org, ios-rev...@chromium.org, ios-r...@chromium.org, ios-web-view...@google.com, marq+...@chromium.org

      Chromium LUCI CQ submitted the change

      Change information

      Commit message:
      Updater: Clear CrxCache entries belonging to unregistered apps.

      Additionally, proactively clear the qualification app from the cache
      after successful qualification.

      These changes required expanding the lifetime of the CrxCache from being
      scoped to the UpdateEngine to being scoped to the configurator's
      lifetime.
      Fixed: 407176851
      Change-Id: I99133e5ab036f57ce384e88e593d32625af587c7
      Reviewed-by: Sorin Jianu <so...@chromium.org>
      Reviewed-by: Adam Walls <avv...@chromium.org>
      Commit-Queue: Joshua Pawlicki <waf...@chromium.org>
      Reviewed-by: Noah Rose Ledesma <noah...@google.com>
      Reviewed-by: Sergio Collazos <sc...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#1456377}
      Files:
      • M android_webview/nonembedded/component_updater/aw_component_updater_configurator.cc
      • M android_webview/nonembedded/component_updater/aw_component_updater_configurator.h
      • M android_webview/nonembedded/component_updater/aw_component_updater_configurator_unittest.cc
      • M chrome/browser/component_updater/chrome_component_updater_configurator.cc
      • M chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc
      • M chrome/browser/extensions/updater/chrome_update_client_config.cc
      • M chrome/browser/extensions/updater/chrome_update_client_config.h
      • M chrome/updater/app/app_server.cc
      • M chrome/updater/app/app_uninstall.cc
      • M chrome/updater/cleanup_task.cc
      • M chrome/updater/cleanup_task.h
      • M chrome/updater/cleanup_task_mac_unittest.mm
      • M chrome/updater/cleanup_task_unittest.cc
      • M chrome/updater/configurator.cc
      • M chrome/updater/configurator.h
      • M chrome/updater/ping_configurator.cc
      • M chrome/updater/tools/updater_util.cc
      • M chrome/updater/update_service_impl_impl.cc
      • M chrome/updater/update_service_internal_impl_qualifying.cc
      • M components/update_client/component.cc
      • M components/update_client/configurator.h
      • M components/update_client/crx_cache.cc
      • M components/update_client/crx_cache.h
      • M components/update_client/crx_cache_unittest.cc
      • M components/update_client/ping_manager_unittest.cc
      • M components/update_client/test_configurator.cc
      • M components/update_client/test_configurator.h
      • M components/update_client/update_checker.cc
      • M components/update_client/update_checker_unittest.cc
      • M components/update_client/update_engine.cc
      • M components/update_client/update_engine.h
      • M ios/chrome/browser/component_updater/model/ios_component_updater_configurator.mm
      • M ios/web_view/internal/component_updater/web_view_component_updater_configurator.mm
      Change size: L
      Delta: 33 files changed, 210 insertions(+), 115 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Sorin Jianu, +1 by Sergio Collazos, +1 by Noah Rose Ledesma, +1 by Adam Walls
      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: I99133e5ab036f57ce384e88e593d32625af587c7
      Gerrit-Change-Number: 6480696
      Gerrit-PatchSet: 10
      Gerrit-Owner: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Adam Walls <avv...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Joshua Pawlicki <waf...@chromium.org>
      Gerrit-Reviewer: Noah Rose Ledesma <noah...@google.com>
      Gerrit-Reviewer: Sergio Collazos <sc...@chromium.org>
      Gerrit-Reviewer: Sorin Jianu <so...@chromium.org>
      open
      diffy
      satisfied_requirement
      Reply all
      Reply to author
      Forward
      0 new messages