Use change password form filler in `PasswordChangeFromCheckupDelegate` [chromium/src : main]

0 views
Skip to first unread message

Fiorella Barrientos Villalta (Gerrit)

unread,
Mar 6, 2026, 4:10:40 AM (6 days ago) Mar 6
to Viktor Semeniuk, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, gcasto+w...@chromium.org, vasilii+watchlis...@chromium.org
Attention needed from Viktor Semeniuk

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Viktor Semeniuk
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: I9704803e6bb73730fbf085923d7f7459ec859c1e
Gerrit-Change-Number: 7633444
Gerrit-PatchSet: 13
Gerrit-Owner: Fiorella Barrientos Villalta <fior...@google.com>
Gerrit-Reviewer: Fiorella Barrientos Villalta <fior...@google.com>
Gerrit-Reviewer: Viktor Semeniuk <vsem...@google.com>
Gerrit-Attention: Viktor Semeniuk <vsem...@google.com>
Gerrit-Comment-Date: Fri, 06 Mar 2026 09:10:22 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Vasilii Sukhanov (Gerrit)

unread,
Mar 11, 2026, 7:57:51 AM (yesterday) Mar 11
to Fiorella Barrientos Villalta, Viktor Semeniuk, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, gcasto+w...@chromium.org, vasilii+watchlis...@chromium.org
Attention needed from Fiorella Barrientos Villalta and Viktor Semeniuk

Vasilii Sukhanov added 8 comments

File chrome/browser/password_manager/password_change/BUILD.gn
Line 34, Patchset 17 (Parent): sources += [
Vasilii Sukhanov . unresolved

Why are you moving the files to the bigger polluted target ?

File chrome/browser/password_manager/password_change/password_change_from_checkup_delegate.cc
Line 210, Patchset 17 (Latest): ChangePasswordFormFillingSubmissionHelper::SubmissionResult result) {
Vasilii Sukhanov . unresolved

You have a browser test but this code isn't executed there for some reason?

File chrome/browser/password_manager/password_change_from_checkup_browsertest.cc
Line 8, Patchset 17 (Latest):#include "base/run_loop.h"
Vasilii Sukhanov . unresolved

Don't add includes that are not used.

Line 41, Patchset 17 (Latest): void SetUpOnMainThread() override {
Vasilii Sukhanov . unresolved

Any need to declare it?

Line 46, Patchset 17 (Latest): password_manager::CredentialUIEntry CreateEntry(
Vasilii Sukhanov . unresolved

It can be implemented outside of the class

Line 50, Patchset 17 (Latest): form.signon_realm = url_string;
Vasilii Sukhanov . unresolved

Realm should be typically without the path.

Line 88, Patchset 17 (Latest): EXPECT_FALSE(delegate->HasActorTaskSubscriptionForTesting());
Vasilii Sukhanov . unresolved

Is it useful after you have the same condition in the `RunUntil`?

Line 92, Patchset 17 (Latest): FlowDoesntStartWhenThereIsActiveTask) {
Vasilii Sukhanov . unresolved

What exactly does this test check?
That if Bluedog is running, we don't start the flow? Why is it desired?

Open in Gerrit

Related details

Attention is currently required from:
  • Fiorella Barrientos Villalta
  • Viktor Semeniuk
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: I9704803e6bb73730fbf085923d7f7459ec859c1e
    Gerrit-Change-Number: 7633444
    Gerrit-PatchSet: 17
    Gerrit-Owner: Fiorella Barrientos Villalta <fior...@google.com>
    Gerrit-Reviewer: Fiorella Barrientos Villalta <fior...@google.com>
    Gerrit-Reviewer: Vasilii Sukhanov <vas...@chromium.org>
    Gerrit-Reviewer: Viktor Semeniuk <vsem...@google.com>
    Gerrit-Attention: Viktor Semeniuk <vsem...@google.com>
    Gerrit-Attention: Fiorella Barrientos Villalta <fior...@google.com>
    Gerrit-Comment-Date: Wed, 11 Mar 2026 11:57:39 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Fiorella Barrientos Villalta (Gerrit)

    unread,
    Mar 11, 2026, 1:38:40 PM (23 hours ago) Mar 11
    to Vasilii Sukhanov, Viktor Semeniuk, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, gcasto+w...@chromium.org, vasilii+watchlis...@chromium.org
    Attention needed from Fiorella Barrientos Villalta, Vasilii Sukhanov and Viktor Semeniuk

    Fiorella Barrientos Villalta voted and added 8 comments

    Votes added by Fiorella Barrientos Villalta

    Commit-Queue+1

    8 comments

    File chrome/browser/password_manager/password_change/BUILD.gn
    Vasilii Sukhanov . resolved

    Why are you moving the files to the bigger polluted target ?

    Fiorella Barrientos Villalta

    Need chrome client and it creates a circular dependency to have it in here. The traditional APC also is in the bigger target and depends on the client so I am following that pattern. I can also change this in a separate CL and have it in a separate target that depends on traditional APC as a refactor. But kept it this way for now.

    File chrome/browser/password_manager/password_change/password_change_from_checkup_delegate.cc
    Line 210, Patchset 17: ChangePasswordFormFillingSubmissionHelper::SubmissionResult result) {
    Vasilii Sukhanov . resolved

    You have a browser test but this code isn't executed there for some reason?

    Fiorella Barrientos Villalta

    Updated, did not add it before because there is no state change. I plan to add this in a next CL, but temporarily checking that this is reset in the browser test.

    File chrome/browser/password_manager/password_change_from_checkup_browsertest.cc
    Line 8, Patchset 17:#include "base/run_loop.h"
    Vasilii Sukhanov . resolved

    Don't add includes that are not used.

    Fiorella Barrientos Villalta

    Done

    Line 41, Patchset 17: void SetUpOnMainThread() override {
    Vasilii Sukhanov . resolved

    Any need to declare it?

    Fiorella Barrientos Villalta

    No need before, but with the new changes it is.

    Line 46, Patchset 17: password_manager::CredentialUIEntry CreateEntry(
    Vasilii Sukhanov . resolved

    It can be implemented outside of the class

    Fiorella Barrientos Villalta

    True, moved to namespace.

    Line 50, Patchset 17: form.signon_realm = url_string;
    Vasilii Sukhanov . resolved

    Realm should be typically without the path.

    Fiorella Barrientos Villalta

    Thanks, updated. Also just removed the param, we do not need it for now.

    Line 88, Patchset 17: EXPECT_FALSE(delegate->HasActorTaskSubscriptionForTesting());
    Vasilii Sukhanov . resolved

    Is it useful after you have the same condition in the `RunUntil`?

    Fiorella Barrientos Villalta

    Removed.

    Line 92, Patchset 17: FlowDoesntStartWhenThereIsActiveTask) {
    Vasilii Sukhanov . resolved

    What exactly does this test check?
    That if Bluedog is running, we don't start the flow? Why is it desired?

    Fiorella Barrientos Villalta

    Yes I added this to prevent the flow from starting if another BD task was running to simplify auto-login handling. Because my first idea for handling AL was to 'allow always' for a credential when there is an APC flow running, but this would be undesired if there is another BD task in the same site (unrelated to APC) running at the same time...or it would require more thought. But after talking with Ioana, I think that it is better to remove this check and just figure out how to handle these cases.

    So, I updated the delegate logic to retrieve the task ID directly from the tab instead of subscribing to a single existing task like in previous patch (under the assumption that only an APC task is running).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Fiorella Barrientos Villalta
    • Vasilii Sukhanov
    • Viktor Semeniuk
    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: I9704803e6bb73730fbf085923d7f7459ec859c1e
      Gerrit-Change-Number: 7633444
      Gerrit-PatchSet: 22
      Gerrit-Owner: Fiorella Barrientos Villalta <fior...@google.com>
      Gerrit-Reviewer: Fiorella Barrientos Villalta <fior...@google.com>
      Gerrit-Reviewer: Vasilii Sukhanov <vas...@chromium.org>
      Gerrit-Reviewer: Viktor Semeniuk <vsem...@google.com>
      Gerrit-Attention: Viktor Semeniuk <vsem...@google.com>
      Gerrit-Attention: Fiorella Barrientos Villalta <fior...@google.com>
      Gerrit-Attention: Vasilii Sukhanov <vas...@chromium.org>
      Gerrit-Comment-Date: Wed, 11 Mar 2026 17:38:21 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Vasilii Sukhanov <vas...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Viktor Semeniuk (Gerrit)

      unread,
      9:42 AM (3 hours ago) 9:42 AM
      to Fiorella Barrientos Villalta, Vasilii Sukhanov, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, gcasto+w...@chromium.org, vasilii+watchlis...@chromium.org
      Attention needed from Fiorella Barrientos Villalta and Vasilii Sukhanov

      Viktor Semeniuk added 3 comments

      File chrome/browser/password_manager/password_change/BUILD.gn
      Vasilii Sukhanov . unresolved

      Why are you moving the files to the bigger polluted target ?

      Fiorella Barrientos Villalta

      Need chrome client and it creates a circular dependency to have it in here. The traditional APC also is in the bigger target and depends on the client so I am following that pattern. I can also change this in a separate CL and have it in a separate target that depends on traditional APC as a refactor. But kept it this way for now.

      Viktor Semeniuk

      ChangePasswordFormWaiter only needs `password_manager::PasswordFormManager` which you can provide in a constructor to avoid depending on ChromePasswordFormManager directly. Let's try to avoid extending `chrome/browser/BUILD.gn` if possible

      File chrome/browser/password_manager/password_change/password_change_from_checkup_delegate.h
      Line 75, Patchset 22 (Latest): std::unique_ptr<ModelQualityLogsUploader> logs_uploader_;
      Viktor Semeniuk . unresolved

      Why are we using this? I don't think we want to emit MQLS for regular APC. Let's not mix them

      Line 71, Patchset 22 (Latest): std::optional<actor::TaskId> actor_task_id;
      Viktor Semeniuk . unresolved

      actor_task_id_

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Fiorella Barrientos Villalta
      • Vasilii Sukhanov
      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: I9704803e6bb73730fbf085923d7f7459ec859c1e
        Gerrit-Change-Number: 7633444
        Gerrit-PatchSet: 22
        Gerrit-Owner: Fiorella Barrientos Villalta <fior...@google.com>
        Gerrit-Reviewer: Fiorella Barrientos Villalta <fior...@google.com>
        Gerrit-Reviewer: Vasilii Sukhanov <vas...@chromium.org>
        Gerrit-Reviewer: Viktor Semeniuk <vsem...@google.com>
        Gerrit-Attention: Fiorella Barrientos Villalta <fior...@google.com>
        Gerrit-Attention: Vasilii Sukhanov <vas...@chromium.org>
        Gerrit-Comment-Date: Thu, 12 Mar 2026 13:42:26 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Fiorella Barrientos Villalta <fior...@google.com>
        Comment-In-Reply-To: Vasilii Sukhanov <vas...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Vasilii Sukhanov (Gerrit)

        unread,
        9:59 AM (2 hours ago) 9:59 AM
        to Fiorella Barrientos Villalta, Viktor Semeniuk, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, gcasto+w...@chromium.org, vasilii+watchlis...@chromium.org
        Attention needed from Fiorella Barrientos Villalta

        Vasilii Sukhanov voted and added 2 comments

        Votes added by Vasilii Sukhanov

        Code-Review+1

        2 comments

        File chrome/browser/password_manager/password_change_from_checkup_browsertest.cc
        Line 47, Patchset 22 (Latest): form.signon_realm = url.DeprecatedGetOriginAsURL().spec();
        Vasilii Sukhanov . unresolved

        Don't use deprecated functions.

        Line 60, Patchset 22 (Latest): create_services_subscription_ =
        BrowserContextDependencyManager::GetInstance()
        ->RegisterCreateServicesCallbackForTesting(
        base::BindRepeating([](content::BrowserContext* context) {
        OptimizationGuideKeyedServiceFactory::GetInstance()
        ->SetTestingFactory(
        context,
        base::BindRepeating(
        [](content::BrowserContext* context)
        -> std::unique_ptr<KeyedService> {
        return std::make_unique<testing::NiceMock<
        MockOptimizationGuideKeyedService>>();
        }));
        }));
        Vasilii Sukhanov . unresolved

        Why isn't simple `OptimizationGuideKeyedServiceFactory::SetTestingFactory` enough?

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Fiorella Barrientos Villalta
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement 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: I9704803e6bb73730fbf085923d7f7459ec859c1e
        Gerrit-Change-Number: 7633444
        Gerrit-PatchSet: 22
        Gerrit-Owner: Fiorella Barrientos Villalta <fior...@google.com>
        Gerrit-Reviewer: Fiorella Barrientos Villalta <fior...@google.com>
        Gerrit-Reviewer: Vasilii Sukhanov <vas...@chromium.org>
        Gerrit-Reviewer: Viktor Semeniuk <vsem...@google.com>
        Gerrit-Attention: Fiorella Barrientos Villalta <fior...@google.com>
        Gerrit-Comment-Date: Thu, 12 Mar 2026 13:58:42 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages