Implement showing the opt in UI in attempt otp filling tool [chromium/src : main]

0 views
Skip to first unread message

Trang Mai (Gerrit)

unread,
Jul 1, 2026, 1:11:26 PM (7 days ago) Jul 1
to Stephan Drab, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Stephan Drab

Trang Mai added 1 comment

Patchset-level comments
File-level comment, Patchset 8 (Latest):
Trang Mai . unresolved

The test failures are related to the change.

Open in Gerrit

Related details

Attention is currently required from:
  • Stephan Drab
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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
Gerrit-Change-Number: 8019622
Gerrit-PatchSet: 8
Gerrit-Owner: Stephan Drab <sd...@google.com>
Gerrit-Reviewer: Stephan Drab <sd...@google.com>
Gerrit-Reviewer: Trang Mai <tra...@google.com>
Gerrit-Attention: Stephan Drab <sd...@google.com>
Gerrit-Comment-Date: Wed, 01 Jul 2026 17:11:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Stephan Drab (Gerrit)

unread,
Jul 1, 2026, 1:18:36 PM (7 days ago) Jul 1
to Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Trang Mai

Stephan Drab added 1 comment

Patchset-level comments
Trang Mai . unresolved

The test failures are related to the change.

Stephan Drab

The test ran fine on my local machine, investigating... 🤔

Open in Gerrit

Related details

Attention is currently required from:
  • Trang Mai
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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
Gerrit-Change-Number: 8019622
Gerrit-PatchSet: 8
Gerrit-Owner: Stephan Drab <sd...@google.com>
Gerrit-Reviewer: Stephan Drab <sd...@google.com>
Gerrit-Reviewer: Trang Mai <tra...@google.com>
Gerrit-Attention: Trang Mai <tra...@google.com>
Gerrit-Comment-Date: Wed, 01 Jul 2026 17:18:20 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Trang Mai <tra...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Salma Aly (Gerrit)

unread,
Jul 2, 2026, 5:13:04 AM (6 days ago) Jul 2
to Stephan Drab, Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Stephan Drab

Salma Aly added 1 comment

File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
Line 175, Patchset 10 (Latest): // Consume the context. The service clears its state and stops observing.
std::optional<autofill::ActorLoginContext> context =
tool_delegate()
.GetActorOneTimeTokenFillingService()
.ConsumeLoginContext();

if (context.has_value() &&
IsActorLoginFlow(GetTargetTab(), trigger_fields_, *context)) {
// Verified sign-in journey: proceed with silent OTP filling.
// TODO(crbug.com/504573041): Implement
} else {
// No recent login, origin mismatch, untracked frame, or sequence broken
// by too many navigations: require confirmation UI (Post-MVP).
// TODO(crbug.com/504573041): Implement
}
Salma Aly . unresolved

This logic is about whether we will show a confirmation UI or not. I think this should come after we show/check the opt-in UI.

Therefore, I think we should move this AFTER the opt-in UI check. Currently in line 236 we call retrieve, instead we should do this check here (or maybe optimise it? run the `IsActorLoginFlow` which the dialog do it's thing? can be an optimisation in another CL), the `IsActorLoginFlow` check will call retrieve. Also keep in mind that in https://chromium-review.git.corp.google.com/c/chromium/src/+/8026692 this logic is being changed 😄 so one of you will suffer while solving merge conflicts 😐

Open in Gerrit

Related details

Attention is currently required from:
  • Stephan Drab
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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
Gerrit-Change-Number: 8019622
Gerrit-PatchSet: 10
Gerrit-Owner: Stephan Drab <sd...@google.com>
Gerrit-Reviewer: Stephan Drab <sd...@google.com>
Gerrit-Reviewer: Trang Mai <tra...@google.com>
Gerrit-CC: Salma Aly <salmaab...@google.com>
Gerrit-Attention: Stephan Drab <sd...@google.com>
Gerrit-Comment-Date: Thu, 02 Jul 2026 09:12:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Salma Aly (Gerrit)

unread,
Jul 2, 2026, 5:59:50 AM (6 days ago) Jul 2
to Stephan Drab, Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Stephan Drab

Salma Aly added 1 comment

File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
Line 175, Patchset 10 (Latest): // Consume the context. The service clears its state and stops observing.
std::optional<autofill::ActorLoginContext> context =
tool_delegate()
.GetActorOneTimeTokenFillingService()
.ConsumeLoginContext();

if (context.has_value() &&
IsActorLoginFlow(GetTargetTab(), trigger_fields_, *context)) {
// Verified sign-in journey: proceed with silent OTP filling.
// TODO(crbug.com/504573041): Implement
} else {
// No recent login, origin mismatch, untracked frame, or sequence broken
// by too many navigations: require confirmation UI (Post-MVP).
// TODO(crbug.com/504573041): Implement
}
Salma Aly . unresolved

This logic is about whether we will show a confirmation UI or not. I think this should come after we show/check the opt-in UI.

Therefore, I think we should move this AFTER the opt-in UI check. Currently in line 236 we call retrieve, instead we should do this check here (or maybe optimise it? run the `IsActorLoginFlow` which the dialog do it's thing? can be an optimisation in another CL), the `IsActorLoginFlow` check will call retrieve. Also keep in mind that in https://chromium-review.git.corp.google.com/c/chromium/src/+/8026692 this logic is being changed 😄 so one of you will suffer while solving merge conflicts 😐

Salma Aly

you can see in https://chromium-review.git.corp.google.com/c/chromium/src/+/8034083 the retrieve is called after the check

Let me know if a GVC to discuss this is a good idea :)

Gerrit-Comment-Date: Thu, 02 Jul 2026 09:59:33 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Salma Aly <salmaab...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Stephan Drab (Gerrit)

unread,
Jul 2, 2026, 7:48:02 AM (6 days ago) Jul 2
to Salma Aly, Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Salma Aly and Trang Mai

Stephan Drab added 2 comments

Patchset-level comments

The test failures are related to the change.

Stephan Drab

The test ran fine on my local machine, investigating... 🤔

Stephan Drab

Should be fixed now.

File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
Line 175, Patchset 10: // Consume the context. The service clears its state and stops observing.

std::optional<autofill::ActorLoginContext> context =
tool_delegate()
.GetActorOneTimeTokenFillingService()
.ConsumeLoginContext();

if (context.has_value() &&
IsActorLoginFlow(GetTargetTab(), trigger_fields_, *context)) {
// Verified sign-in journey: proceed with silent OTP filling.
// TODO(crbug.com/504573041): Implement
} else {
// No recent login, origin mismatch, untracked frame, or sequence broken
// by too many navigations: require confirmation UI (Post-MVP).
// TODO(crbug.com/504573041): Implement
}
Salma Aly . resolved

This logic is about whether we will show a confirmation UI or not. I think this should come after we show/check the opt-in UI.

Therefore, I think we should move this AFTER the opt-in UI check. Currently in line 236 we call retrieve, instead we should do this check here (or maybe optimise it? run the `IsActorLoginFlow` which the dialog do it's thing? can be an optimisation in another CL), the `IsActorLoginFlow` check will call retrieve. Also keep in mind that in https://chromium-review.git.corp.google.com/c/chromium/src/+/8026692 this logic is being changed 😄 so one of you will suffer while solving merge conflicts 😐

Salma Aly

you can see in https://chromium-review.git.corp.google.com/c/chromium/src/+/8034083 the retrieve is called after the check

Let me know if a GVC to discuss this is a good idea :)

Stephan Drab

That makes sense, changed it. Thanks for the heads up for Oleksandr's change!

Open in Gerrit

Related details

Attention is currently required from:
  • Salma Aly
  • Trang Mai
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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
    Gerrit-Change-Number: 8019622
    Gerrit-PatchSet: 12
    Gerrit-Owner: Stephan Drab <sd...@google.com>
    Gerrit-Reviewer: Stephan Drab <sd...@google.com>
    Gerrit-Reviewer: Trang Mai <tra...@google.com>
    Gerrit-CC: Salma Aly <salmaab...@google.com>
    Gerrit-Attention: Trang Mai <tra...@google.com>
    Gerrit-Attention: Salma Aly <salmaab...@google.com>
    Gerrit-Comment-Date: Thu, 02 Jul 2026 11:47:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Trang Mai <tra...@google.com>
    Comment-In-Reply-To: Salma Aly <salmaab...@google.com>
    Comment-In-Reply-To: Stephan Drab <sd...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Salma Aly (Gerrit)

    unread,
    Jul 2, 2026, 7:59:21 AM (6 days ago) Jul 2
    to Stephan Drab, Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
    Attention needed from Stephan Drab and Trang Mai

    Salma Aly added 1 comment

    File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
    Line 175, Patchset 10: // Consume the context. The service clears its state and stops observing.
    std::optional<autofill::ActorLoginContext> context =
    tool_delegate()
    .GetActorOneTimeTokenFillingService()
    .ConsumeLoginContext();

    if (context.has_value() &&
    IsActorLoginFlow(GetTargetTab(), trigger_fields_, *context)) {
    // Verified sign-in journey: proceed with silent OTP filling.
    // TODO(crbug.com/504573041): Implement
    } else {
    // No recent login, origin mismatch, untracked frame, or sequence broken
    // by too many navigations: require confirmation UI (Post-MVP).
    // TODO(crbug.com/504573041): Implement
    }
    Salma Aly . resolved

    This logic is about whether we will show a confirmation UI or not. I think this should come after we show/check the opt-in UI.

    Therefore, I think we should move this AFTER the opt-in UI check. Currently in line 236 we call retrieve, instead we should do this check here (or maybe optimise it? run the `IsActorLoginFlow` which the dialog do it's thing? can be an optimisation in another CL), the `IsActorLoginFlow` check will call retrieve. Also keep in mind that in https://chromium-review.git.corp.google.com/c/chromium/src/+/8026692 this logic is being changed 😄 so one of you will suffer while solving merge conflicts 😐

    Salma Aly

    you can see in https://chromium-review.git.corp.google.com/c/chromium/src/+/8034083 the retrieve is called after the check

    Let me know if a GVC to discuss this is a good idea :)

    Stephan Drab

    That makes sense, changed it. Thanks for the heads up for Oleksandr's change!

    Salma Aly

    nice, looks much better now!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Stephan Drab
    • Trang Mai
    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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
    Gerrit-Change-Number: 8019622
    Gerrit-PatchSet: 12
    Gerrit-Owner: Stephan Drab <sd...@google.com>
    Gerrit-Reviewer: Stephan Drab <sd...@google.com>
    Gerrit-Reviewer: Trang Mai <tra...@google.com>
    Gerrit-CC: Salma Aly <salmaab...@google.com>
    Gerrit-Attention: Trang Mai <tra...@google.com>
    Gerrit-Attention: Stephan Drab <sd...@google.com>
    Gerrit-Comment-Date: Thu, 02 Jul 2026 11:59:05 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Bokan (Gerrit)

    unread,
    Jul 2, 2026, 1:46:54 PM (6 days ago) Jul 2
    to Stephan Drab, Salma Aly, Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
    Attention needed from Stephan Drab and Trang Mai

    David Bokan added 2 comments

    File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
    Line 186, Patchset 12 (Latest): base::Time dismissal_timestamp =
    autofill::prefs::GetAutofillGmailOtpFillingActivationDismissalTimestamp(
    prefs);
    if (dismissal_timestamp != base::Time() &&
    (base::Time::Now() - dismissal_timestamp < base::Days(90))) {
    LOG(INFO) << "Within cool off period => Don't show opt-in card";
    std::move(callback).Run(
    MakeResult(mojom::ActionResultCode::kFormFillingAutofillUnavailable,
    /*requires_page_stabilization=*/false,
    "Within 90-day cool-off period."));
    return;
    }

    LOG(INFO) << "Outside of cool off period => Show Gmail OTP opt-in card";
    tool_delegate().RequestToShowGmailOtpOptInDialog(
    base::BindOnce(&AttemptOtpFillingTool::OnGmailOtpOptInResponse,
    weak_factory_.GetWeakPtr(), std::move(callback)));
    David Bokan . unresolved

    This seems like it would fit better in the Validate method (we're checking a precondition of using the tool). Invoke should only contain the actual tool logic and only be called one we know all preconditions have been met.

    Line 265, Patchset 12 (Latest): LOG(INFO) << "Retrieved Gmail OTP is empty (tool timeout)";
    David Bokan . unresolved

    Chrome shouldn't have any LOGs in production. If you want/need this use VLOG instead. That said, most logging should happen through the actor journal, e.g. https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/actor/tools/navigate_tool.cc;l=127;drc=63ec5d57642d302b1f2be8207a6672edd989c034

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Stephan Drab
    • Trang Mai
    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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
      Gerrit-Change-Number: 8019622
      Gerrit-PatchSet: 12
      Gerrit-Owner: Stephan Drab <sd...@google.com>
      Gerrit-Reviewer: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Stephan Drab <sd...@google.com>
      Gerrit-Reviewer: Trang Mai <tra...@google.com>
      Gerrit-CC: Salma Aly <salmaab...@google.com>
      Gerrit-Attention: Trang Mai <tra...@google.com>
      Gerrit-Attention: Stephan Drab <sd...@google.com>
      Gerrit-Comment-Date: Thu, 02 Jul 2026 17:46:44 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Trang Mai (Gerrit)

      unread,
      Jul 3, 2026, 3:29:30 PM (5 days ago) Jul 3
      to Stephan Drab, David Bokan, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
      Attention needed from Stephan Drab

      Trang Mai added 2 comments

      File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
      Line 209, Patchset 12 (Latest): // TODO(crbug.com/511944669): In the case of !is_permission_granted(), the
      Trang Mai . unresolved

      This bug is marked as fixed, did you mean to leave some other bug number here?

      Line 213, Patchset 12 (Latest): if (response && response->is_permission_granted() &&
      Trang Mai . unresolved

      If the dialog fails to display or if a Mojo channel error occurs, this would be false and we'll SetAutofillGmailOtpFillingActivationDismissalTimestamp even though the user did not see the dialog. Maybe we need to handle that case differently.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Stephan Drab
      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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
      Gerrit-Change-Number: 8019622
      Gerrit-PatchSet: 12
      Gerrit-Owner: Stephan Drab <sd...@google.com>
      Gerrit-Reviewer: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Stephan Drab <sd...@google.com>
      Gerrit-Reviewer: Trang Mai <tra...@google.com>
      Gerrit-CC: Salma Aly <salmaab...@google.com>
      Gerrit-Attention: Stephan Drab <sd...@google.com>
      Gerrit-Comment-Date: Fri, 03 Jul 2026 19:29:13 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Stephan Drab (Gerrit)

      unread,
      Jul 6, 2026, 8:07:09 AM (2 days ago) Jul 6
      to Dave Tapuska, Salma Aly, Trang Mai, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
      Attention needed from Dave Tapuska and Trang Mai

      Stephan Drab added 4 comments

      File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
      Line 186, Patchset 12: base::Time dismissal_timestamp =

      autofill::prefs::GetAutofillGmailOtpFillingActivationDismissalTimestamp(
      prefs);
      if (dismissal_timestamp != base::Time() &&
      (base::Time::Now() - dismissal_timestamp < base::Days(90))) {
      LOG(INFO) << "Within cool off period => Don't show opt-in card";
      std::move(callback).Run(
      MakeResult(mojom::ActionResultCode::kFormFillingAutofillUnavailable,
      /*requires_page_stabilization=*/false,
      "Within 90-day cool-off period."));
      return;
      }

      LOG(INFO) << "Outside of cool off period => Show Gmail OTP opt-in card";
      tool_delegate().RequestToShowGmailOtpOptInDialog(
      base::BindOnce(&AttemptOtpFillingTool::OnGmailOtpOptInResponse,
      weak_factory_.GetWeakPtr(), std::move(callback)));
      David Bokan . resolved

      This seems like it would fit better in the Validate method (we're checking a precondition of using the tool). Invoke should only contain the actual tool logic and only be called one we know all preconditions have been met.

      Stephan Drab

      Hi David, thanks for the hint! I changed the implementation accordingly and updated the tests.

      Line 209, Patchset 12: // TODO(crbug.com/511944669): In the case of !is_permission_granted(), the
      Trang Mai . resolved

      This bug is marked as fixed, did you mean to leave some other bug number here?

      Stephan Drab

      Removed the comment altogether

      Line 213, Patchset 12: if (response && response->is_permission_granted() &&
      Trang Mai . resolved

      If the dialog fails to display or if a Mojo channel error occurs, this would be false and we'll SetAutofillGmailOtpFillingActivationDismissalTimestamp even though the user did not see the dialog. Maybe we need to handle that case differently.

      Stephan Drab

      You're right. I had the same thought and added error handling for this and changed this implementation already!

      Line 265, Patchset 12: LOG(INFO) << "Retrieved Gmail OTP is empty (tool timeout)";
      David Bokan . resolved

      Chrome shouldn't have any LOGs in production. If you want/need this use VLOG instead. That said, most logging should happen through the actor journal, e.g. https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/actor/tools/navigate_tool.cc;l=127;drc=63ec5d57642d302b1f2be8207a6672edd989c034

      Stephan Drab

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dave Tapuska
      • Trang Mai
      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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
        Gerrit-Change-Number: 8019622
        Gerrit-PatchSet: 16
        Gerrit-Owner: Stephan Drab <sd...@google.com>
        Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
        Gerrit-Reviewer: Stephan Drab <sd...@google.com>
        Gerrit-Reviewer: Trang Mai <tra...@google.com>
        Gerrit-CC: Salma Aly <salmaab...@google.com>
        Gerrit-Attention: Trang Mai <tra...@google.com>
        Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
        Gerrit-Comment-Date: Mon, 06 Jul 2026 12:06:52 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Trang Mai <tra...@google.com>
        Comment-In-Reply-To: David Bokan <bo...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Trang Mai (Gerrit)

        unread,
        Jul 6, 2026, 8:48:46 AM (2 days ago) Jul 6
        to Stephan Drab, Dave Tapuska, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Dave Tapuska and Stephan Drab

        Trang Mai voted and added 2 comments

        Votes added by Trang Mai

        Code-Review+1

        2 comments

        File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
        Line 234, Patchset 17 (Latest): response->is_permission_granted())
        .Add("is_error_reason", response->is_error_reason())
        Trang Mai . unresolved

        `response` can be null, so response->is_permission_granted() and response->is_error_reason() can cause NPE

        Line 248, Patchset 17 (Latest): bool opt_in_permission_granted = response->get_permission_granted();
        Trang Mai . unresolved

        Please fix this WARNING reported by autoreview issue finding: This seems redundant. The `if` block above (lines 228-245) already handles the case where permission is NOT granted. If execution reaches here, `response->get_permission_granted()` must be true. The `if (!opt_in_permission_granted)` block on line 257 will never be entered.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dave Tapuska
        • Stephan Drab
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement is not 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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
          Gerrit-Change-Number: 8019622
          Gerrit-PatchSet: 17
          Gerrit-Owner: Stephan Drab <sd...@google.com>
          Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
          Gerrit-Reviewer: Stephan Drab <sd...@google.com>
          Gerrit-Reviewer: Trang Mai <tra...@google.com>
          Gerrit-CC: Salma Aly <salmaab...@google.com>
          Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
          Gerrit-Attention: Stephan Drab <sd...@google.com>
          Gerrit-Comment-Date: Mon, 06 Jul 2026 12:48:30 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Dave Tapuska (Gerrit)

          unread,
          Jul 6, 2026, 10:09:09 AM (2 days ago) Jul 6
          to Stephan Drab, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
          Attention needed from Stephan Drab

          Dave Tapuska voted and added 3 comments

          Votes added by Dave Tapuska

          Code-Review+1

          3 comments

          File chrome/browser/actor/tools/attempt_otp_filling_tool.h
          Line 72, Patchset 17 (Latest): std::vector<mojom::JournalDetailsPtr> journal_details = {});
          Dave Tapuska . unresolved

          Every call used here, passes the details in, so there is no need to pass a default initializer. Also you can then use the -forward mojom header for the actor_types if you do that.

          Line 18, Patchset 17 (Latest):#include "chrome/common/actor_webui.mojom.h"
          Dave Tapuska . unresolved

          -forward? (we try not to include the full mojom.h headers in headers).

          File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
          Line 194, Patchset 17 (Latest): bool within_cool_off_period = time_since_last_dismissal < base::Days(90);
          Dave Tapuska . unresolved

          constants should be labeled constants in the annonymous namespace.

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Stephan Drab
          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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
            Gerrit-Change-Number: 8019622
            Gerrit-PatchSet: 17
            Gerrit-Owner: Stephan Drab <sd...@google.com>
            Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
            Gerrit-Reviewer: Stephan Drab <sd...@google.com>
            Gerrit-Reviewer: Trang Mai <tra...@google.com>
            Gerrit-CC: Salma Aly <salmaab...@google.com>
            Gerrit-Attention: Stephan Drab <sd...@google.com>
            Gerrit-Comment-Date: Mon, 06 Jul 2026 14:08:55 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Stephan Drab (Gerrit)

            unread,
            Jul 6, 2026, 10:51:37 AM (2 days ago) Jul 6
            to Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
            Attention needed from Dave Tapuska and Trang Mai

            Stephan Drab added 5 comments

            File chrome/browser/actor/tools/attempt_otp_filling_tool.h
            Line 72, Patchset 17: std::vector<mojom::JournalDetailsPtr> journal_details = {});
            Dave Tapuska . resolved

            Every call used here, passes the details in, so there is no need to pass a default initializer. Also you can then use the -forward mojom header for the actor_types if you do that.

            Stephan Drab

            Thanks! Done

            Line 18, Patchset 17:#include "chrome/common/actor_webui.mojom.h"
            Dave Tapuska . resolved

            -forward? (we try not to include the full mojom.h headers in headers).

            Stephan Drab

            Thanks for the hint! Done

            File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
            Line 194, Patchset 17: bool within_cool_off_period = time_since_last_dismissal < base::Days(90);
            Dave Tapuska . resolved

            constants should be labeled constants in the annonymous namespace.

            Stephan Drab

            Done

            Line 234, Patchset 17: response->is_permission_granted())

            .Add("is_error_reason", response->is_error_reason())
            Trang Mai . resolved

            `response` can be null, so response->is_permission_granted() and response->is_error_reason() can cause NPE

            Stephan Drab

            Done

            Line 248, Patchset 17: bool opt_in_permission_granted = response->get_permission_granted();
            Trang Mai . resolved

            Please fix this WARNING reported by autoreview issue finding: This seems redundant. The `if` block above (lines 228-245) already handles the case where permission is NOT granted. If execution reaches here, `response->get_permission_granted()` must be true. The `if (!opt_in_permission_granted)` block on line 257 will never be entered.

            Stephan Drab

            I think this is not true. The block above checks using `is_....` whether the response is a permission granted response. If is't a permission granted response, the method `get_permission_granted` retrieves the value of the permission granted field (`true` or `false`). See unit tests `ValidateOptInPermissionGrantedCallbackSucceedsAndEnablesOptInAndResetsDismissalTimestamp` and `ValidateOptInPermissionDeniedCallbackFailsAndDoesNotEnableOptInAndUpdatesDismissalTimestamp` that successfully execute the two code paths.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Dave Tapuska
            • Trang Mai
            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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
              Gerrit-Change-Number: 8019622
              Gerrit-PatchSet: 18
              Gerrit-Owner: Stephan Drab <sd...@google.com>
              Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
              Gerrit-Reviewer: Stephan Drab <sd...@google.com>
              Gerrit-Reviewer: Trang Mai <tra...@google.com>
              Gerrit-CC: Salma Aly <salmaab...@google.com>
              Gerrit-Attention: Trang Mai <tra...@google.com>
              Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
              Gerrit-Comment-Date: Mon, 06 Jul 2026 14:51:20 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Trang Mai <tra...@google.com>
              Comment-In-Reply-To: Dave Tapuska <dtap...@chromium.org>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Dominic Battré (Gerrit)

              unread,
              Jul 6, 2026, 12:53:10 PM (2 days ago) Jul 6
              to Stephan Drab, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
              Attention needed from Dave Tapuska, Stephan Drab and Trang Mai

              Dominic Battré added 6 comments

              Patchset-level comments
              File-level comment, Patchset 19 (Latest):
              Dominic Battré . resolved

              Looking good, but maybe you can take a pass as the tests.

              File chrome/browser/actor/tools/attempt_otp_filling_tool_unittest.cc
              Line 207, Patchset 19 (Latest): ValidateOptInPermissionGrantedCallbackSucceedsAndEnablesOptInAndResetsDismissalTimestamp) {
              Dominic Battré . unresolved

              lol
              YouCertainlyCannotDenyYourJavaBackgroundFromPreviousProjects_ITypicallyUseAShorterTestCaseNamenAndPutTheDescriptionInACommentAsThatIsEasierToRead_AlsoTheGrammaticalStructureIsABitHardToParseAndIWonderIfOurToolingDoesWellWithThis_YouCertainlyCannotDisableThisTestAndWriteACLTitleWithTheTestNameThatIsLessThan72Characters :-)

              Line 208, Patchset 19 (Latest): EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
              Dominic Battré . unresolved

              nit: you can drop this if you don't validate any parameters.

              Line 205, Patchset 19 (Latest):TEST_F(
              AttemptOtpFillingToolTest,
              ValidateOptInPermissionGrantedCallbackSucceedsAndEnablesOptInAndResetsDismissalTimestamp) {
              EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
              .WillOnce(base::test::RunOnceCallback<0>(
              webui::mojom::GmailOtpOptInResult::NewPermissionGranted(true)));
              AttemptOtpFillingTool tool(TaskId(1), delegate(), mock_tab().GetHandle(),
              {PageTarget(gfx::Point(10, 10))},
              /*for_signin=*/true);
              autofill::prefs::SetAutofillGmailOtpFillingEnabled(prefs(), false);

              base::test::TestFuture<mojom::ActionResultPtr> future;
              tool.Validate(future.GetCallback());

              mojom::ActionResultPtr result = future.Take();
              EXPECT_EQ(mojom::ActionResultCode::kOk, result->code);
              EXPECT_TRUE(autofill::prefs::IsAutofillGmailOtpFillingEnabled(prefs()));
              EXPECT_EQ(
              base::Time(),
              autofill::prefs::GetAutofillGmailOtpFillingActivationDismissalTimestamp(
              prefs()));
              }
              Dominic Battré . unresolved

              I think that a few modifications would make the tests easier to maintain in the future. Here is a suggestion.

              ```suggestion
              namespace {
              using autofill::prefs::SetAutofillGmailOtpFillingEnabled;
              using autofill::prefs::IsAutofillGmailOtpFillingEnabled;
              using autofill::prefs::GetAutofillGmailOtpFillingActivationDismissalTimestamp;
              using base::test::TestFuture;
              using webui::mojom::GmailOtpOptInResult;
              }

              // Test the case that user grants permission to access GMailOTPs during
              // the validation of the tool. The decision should be persisted in prefs.
              TEST_F(AttemptOtpFillingToolTest, UserApprovesGmailOtpOptIn) {
              // Simulate that request to opt in to GmailOTPs is approved.
              EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog)
              .WillOnce(base::test::RunOnceCallback<0>(
              GmailOtpOptInResult::NewPermissionGranted(true)));
              // Disable GMailOtp setting.
              SetAutofillGmailOtpFillingEnabled(prefs(), false);
                // Simulate use of calling the AttemptOtpFillingTool.
              AttemptOtpFillingTool tool(TaskId(1), delegate(), mock_tab().GetHandle(),
              {PageTarget(gfx::Point(10, 10))},
              /*for_signin=*/true);
              TestFuture<mojom::ActionResultPtr> future;
              tool.Validate(future.GetCallback());
                // Validate expectations.
              mojom::ActionResultPtr result = future.Take();
              EXPECT_EQ(mojom::ActionResultCode::kOk, result->code);
              EXPECT_TRUE(IsAutofillGmailOtpFillingEnabled(prefs()));
              EXPECT_EQ(
              base::Time(),
              GetAutofillGmailOtpFillingActivationDismissalTimestamp(prefs()));
              }
              ```
              Line 230, Patchset 19 (Latest): ValidateOptInPermissionDeniedCallbackFailsAndDoesNotEnableOptInAndUpdatesDismissalTimestamp) {
              Dominic Battré . unresolved

              FindingTheDeltaToThePreviousStringIsABitLikeWhereIsWaldo

              Line 250, Patchset 19 (Latest):}
              Dominic Battré . unresolved

              Nit: new lines after tests

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Dave Tapuska
              • Stephan Drab
              • Trang Mai
              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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                Gerrit-Change-Number: 8019622
                Gerrit-PatchSet: 19
                Gerrit-Owner: Stephan Drab <sd...@google.com>
                Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                Gerrit-Reviewer: Trang Mai <tra...@google.com>
                Gerrit-CC: Salma Aly <salmaab...@google.com>
                Gerrit-Attention: Trang Mai <tra...@google.com>
                Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                Gerrit-Attention: Stephan Drab <sd...@google.com>
                Gerrit-Comment-Date: Mon, 06 Jul 2026 16:52:53 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Stephan Drab (Gerrit)

                unread,
                Jul 7, 2026, 4:29:12 AM (yesterday) Jul 7
                to Dominic Battré, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                Attention needed from Dave Tapuska, Dominic Battré and Trang Mai

                Stephan Drab added 5 comments

                File chrome/browser/actor/tools/attempt_otp_filling_tool_unittest.cc
                Line 207, Patchset 19: ValidateOptInPermissionGrantedCallbackSucceedsAndEnablesOptInAndResetsDismissalTimestamp) {
                Dominic Battré . resolved

                lol
                YouCertainlyCannotDenyYourJavaBackgroundFromPreviousProjects_ITypicallyUseAShorterTestCaseNamenAndPutTheDescriptionInACommentAsThatIsEasierToRead_AlsoTheGrammaticalStructureIsABitHardToParseAndIWonderIfOurToolingDoesWellWithThis_YouCertainlyCannotDisableThisTestAndWriteACLTitleWithTheTestNameThatIsLessThan72Characters :-)

                Stephan Drab

                Thanks for the comment! 😂

                I changed the test names to the pattern `When_Given` and omits the `Then` part go/unit-testing-practices?polyglot=cpp#behavior-testing without strictly enforcing the 72 char limit.

                Line 208, Patchset 19: EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
                Dominic Battré . resolved

                nit: you can drop this if you don't validate any parameters.

                Stephan Drab

                OK, but I need this for

                • the test setup to call the callback with `NewPermissionGranted(true)` and
                • the assertion that this method is in fact called.

                If I comment this out, the test takes quite long because it seems to wait for the callback.

                Am I missing something?


                AttemptOtpFillingToolTest,
                ValidateOptInPermissionGrantedCallbackSucceedsAndEnablesOptInAndResetsDismissalTimestamp) {
                EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
                .WillOnce(base::test::RunOnceCallback<0>(
                webui::mojom::GmailOtpOptInResult::NewPermissionGranted(true)));
                AttemptOtpFillingTool tool(TaskId(1), delegate(), mock_tab().GetHandle(),
                {PageTarget(gfx::Point(10, 10))},
                /*for_signin=*/true);
                autofill::prefs::SetAutofillGmailOtpFillingEnabled(prefs(), false);

                base::test::TestFuture<mojom::ActionResultPtr> future;
                tool.Validate(future.GetCallback());

                mojom::ActionResultPtr result = future.Take();
                EXPECT_EQ(mojom::ActionResultCode::kOk, result->code);
                EXPECT_TRUE(autofill::prefs::IsAutofillGmailOtpFillingEnabled(prefs()));
                EXPECT_EQ(
                base::Time(),
                autofill::prefs::GetAutofillGmailOtpFillingActivationDismissalTimestamp(
                prefs()));
                }
                Dominic Battré . resolved
                Stephan Drab

                Thanks for the hint. I added a few more namespace usages and used a bit less comments in the test.

                Line 230, Patchset 19: ValidateOptInPermissionDeniedCallbackFailsAndDoesNotEnableOptInAndUpdatesDismissalTimestamp) {
                Dominic Battré . resolved

                FindingTheDeltaToThePreviousStringIsABitLikeWhereIsWaldo

                Stephan Drab

                Done

                Line 250, Patchset 19:}
                Dominic Battré . resolved

                Nit: new lines after tests

                Stephan Drab

                Done

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Dave Tapuska
                • Dominic Battré
                • Trang Mai
                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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                  Gerrit-Change-Number: 8019622
                  Gerrit-PatchSet: 20
                  Gerrit-Owner: Stephan Drab <sd...@google.com>
                  Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                  Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                  Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                  Gerrit-Reviewer: Trang Mai <tra...@google.com>
                  Gerrit-CC: Salma Aly <salmaab...@google.com>
                  Gerrit-Attention: Dominic Battré <bat...@chromium.org>
                  Gerrit-Attention: Trang Mai <tra...@google.com>
                  Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                  Gerrit-Comment-Date: Tue, 07 Jul 2026 08:28:55 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  Comment-In-Reply-To: Dominic Battré <bat...@chromium.org>
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Dominic Battré (Gerrit)

                  unread,
                  Jul 7, 2026, 5:07:32 AM (yesterday) Jul 7
                  to Stephan Drab, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                  Attention needed from Dave Tapuska, Stephan Drab and Trang Mai

                  Dominic Battré added 9 comments

                  Patchset-level comments
                  File-level comment, Patchset 20 (Latest):
                  Dominic Battré . resolved

                  Thanks!

                  File chrome/browser/actor/tools/attempt_otp_filling_tool_unittest.cc
                  Line 208, Patchset 19: EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
                  Dominic Battré . unresolved

                  nit: you can drop this if you don't validate any parameters.

                  Stephan Drab

                  OK, but I need this for

                  • the test setup to call the callback with `NewPermissionGranted(true)` and
                  • the assertion that this method is in fact called.

                  If I comment this out, the test takes quite long because it seems to wait for the callback.

                  Am I missing something?

                  Dominic Battré

                  Maybe I got this wrong. My proposal was to write
                  ```
                  EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog)
                  ```
                  instead of
                  ```
                  EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
                  ```

                  It's possible that you need the `_` for the `RunOnceCallback<0>`?

                  Line 230, Patchset 20 (Latest):// remove the dismissal timestamp
                  Dominic Battré . unresolved

                  nit: period at the end.

                  Line 303, Patchset 20 (Latest): EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_)).Times(0);
                  EXPECT_CALL(delegate().mock_otp_service(), RetrieveOtp(_, _, _)).Times(0);
                  Dominic Battré . unresolved
                  ```suggestion
                  EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog).Times(0);
                  EXPECT_CALL(delegate().mock_otp_service(), RetrieveOtp).Times(0);
                  ```
                  Line 317, Patchset 20 (Latest):}
                  Dominic Battré . unresolved

                  Check here that `GetAutofillGmailOtpFillingActivationDismissalTimestamp(prefs())` did not change?

                  Line 324, Patchset 20 (Latest): EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_));
                  Dominic Battré . unresolved
                  ```suggestion
                  EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog);
                  ```
                  Line 338, Patchset 20 (Latest):TEST_F(AttemptOtpFillingToolTest, TimeOfUseValidation_TabWentAway) {
                  Dominic Battré . unresolved

                  Do you want to be consistent with adding comments to the tests?

                  Here I can conclude it but for "NoLastObservation" it's not obvious anymore. I'd need to check the enum to understand what this is about.

                  Line 397, Patchset 20 (Latest): [](tabs::TabHandle, const std::vector<autofill::FieldGlobalId>&,
                  base::OnceCallback<void(
                  base::expected<std::string,
                  one_time_tokens::OneTimeTokenRetrievalError>)>
                  cb) { std::move(cb).Run("123456"); });
                  Dominic Battré . unresolved

                  Can you simplify this to

                  ```
                  RunOnceCallback<2>("123456")
                  ```
                  ?

                  Similarly below

                  Line 403, Patchset 20 (Latest): .WillOnce([](tabs::TabHandle, const std::vector<autofill::FieldGlobalId>&,
                  const std::string&, base::OnceCallback<void(bool)> cb) {
                  std::move(cb).Run(true);
                  });
                  Dominic Battré . unresolved
                  ```suggestion
                  .WillOnce(RunOnceCallback<2>(true)));
                  ```
                  ?
                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Dave Tapuska
                  • Stephan Drab
                  • Trang Mai
                  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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                    Gerrit-Change-Number: 8019622
                    Gerrit-PatchSet: 20
                    Gerrit-Owner: Stephan Drab <sd...@google.com>
                    Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                    Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                    Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                    Gerrit-Reviewer: Trang Mai <tra...@google.com>
                    Gerrit-CC: Salma Aly <salmaab...@google.com>
                    Gerrit-Attention: Trang Mai <tra...@google.com>
                    Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                    Gerrit-Attention: Stephan Drab <sd...@google.com>
                    Gerrit-Comment-Date: Tue, 07 Jul 2026 09:07:16 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Dominic Battré <bat...@chromium.org>
                    Comment-In-Reply-To: Stephan Drab <sd...@google.com>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Stephan Drab (Gerrit)

                    unread,
                    Jul 7, 2026, 12:36:50 PM (21 hours ago) Jul 7
                    to Dominic Battré, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                    Attention needed from Dave Tapuska, Dominic Battré and Trang Mai

                    Stephan Drab added 8 comments

                    File chrome/browser/actor/tools/attempt_otp_filling_tool_unittest.cc
                    Line 208, Patchset 19: EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
                    Dominic Battré . resolved

                    nit: you can drop this if you don't validate any parameters.

                    Stephan Drab

                    OK, but I need this for

                    • the test setup to call the callback with `NewPermissionGranted(true)` and
                    • the assertion that this method is in fact called.

                    If I comment this out, the test takes quite long because it seems to wait for the callback.

                    Am I missing something?

                    Dominic Battré

                    Maybe I got this wrong. My proposal was to write
                    ```
                    EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog)
                    ```
                    instead of
                    ```
                    EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_))
                    ```

                    It's possible that you need the `_` for the `RunOnceCallback<0>`?

                    Stephan Drab

                    Ah, that works! Done

                    Line 230, Patchset 20:// remove the dismissal timestamp
                    Dominic Battré . resolved

                    nit: period at the end.

                    Stephan Drab

                    Done

                    Line 303, Patchset 20: EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_)).Times(0);
                    EXPECT_CALL(delegate().mock_otp_service(), RetrieveOtp(_, _, _)).Times(0);
                    Dominic Battré . resolved
                    ```suggestion
                    EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog).Times(0);
                    EXPECT_CALL(delegate().mock_otp_service(), RetrieveOtp).Times(0);
                    ```
                    Stephan Drab

                    Done

                    Line 317, Patchset 20:}
                    Dominic Battré . resolved

                    Check here that `GetAutofillGmailOtpFillingActivationDismissalTimestamp(prefs())` did not change?

                    Stephan Drab

                    Done

                    Line 324, Patchset 20: EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog(_));
                    Dominic Battré . resolved
                    ```suggestion
                    EXPECT_CALL(delegate(), RequestToShowGmailOtpOptInDialog);
                    ```
                    Stephan Drab

                    Done

                    Line 338, Patchset 20:TEST_F(AttemptOtpFillingToolTest, TimeOfUseValidation_TabWentAway) {
                    Dominic Battré . resolved

                    Do you want to be consistent with adding comments to the tests?

                    Here I can conclude it but for "NoLastObservation" it's not obvious anymore. I'd need to check the enum to understand what this is about.

                    Stephan Drab

                    I did add tests for those methods for code that already existed, but I figured I wouldn't add comments, since I didn't have such a good overview of what this should do. But you're right, out of consistency, the comments make sense. Added them.

                    Line 397, Patchset 20: [](tabs::TabHandle, const std::vector<autofill::FieldGlobalId>&,

                    base::OnceCallback<void(
                    base::expected<std::string,
                    one_time_tokens::OneTimeTokenRetrievalError>)>
                    cb) { std::move(cb).Run("123456"); });
                    Dominic Battré . resolved

                    Can you simplify this to

                    ```
                    RunOnceCallback<2>("123456")
                    ```
                    ?

                    Similarly below

                    Stephan Drab

                    I also fixed the other occurrences. Done

                    Line 403, Patchset 20: .WillOnce([](tabs::TabHandle, const std::vector<autofill::FieldGlobalId>&,

                    const std::string&, base::OnceCallback<void(bool)> cb) {
                    std::move(cb).Run(true);
                    });
                    Dominic Battré . resolved
                    ```suggestion
                    .WillOnce(RunOnceCallback<2>(true)));
                    ```
                    ?
                    Stephan Drab

                    Done

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Dave Tapuska
                    • Dominic Battré
                    • Trang Mai
                    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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                      Gerrit-Change-Number: 8019622
                      Gerrit-PatchSet: 21
                      Gerrit-Owner: Stephan Drab <sd...@google.com>
                      Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                      Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                      Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                      Gerrit-Reviewer: Trang Mai <tra...@google.com>
                      Gerrit-CC: Salma Aly <salmaab...@google.com>
                      Gerrit-Attention: Dominic Battré <bat...@chromium.org>
                      Gerrit-Attention: Trang Mai <tra...@google.com>
                      Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                      Gerrit-Comment-Date: Tue, 07 Jul 2026 16:36:29 +0000
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Dave Tapuska (Gerrit)

                      unread,
                      Jul 7, 2026, 2:15:27 PM (20 hours ago) Jul 7
                      to Stephan Drab, Dominic Battré, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                      Attention needed from Dominic Battré, Stephan Drab and Trang Mai

                      Dave Tapuska added 1 comment

                      File chrome/browser/actor/tools/attempt_otp_filling_tool.h
                      Line 18, Patchset 21 (Latest):#include "chrome/common/actor_webui.mojom.h"
                      Dave Tapuska . unresolved

                      actor_webui.mojom-forward.h

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Dominic Battré
                      • Stephan Drab
                      • Trang Mai
                      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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                        Gerrit-Change-Number: 8019622
                        Gerrit-PatchSet: 21
                        Gerrit-Owner: Stephan Drab <sd...@google.com>
                        Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                        Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                        Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                        Gerrit-Reviewer: Trang Mai <tra...@google.com>
                        Gerrit-CC: Salma Aly <salmaab...@google.com>
                        Gerrit-Attention: Dominic Battré <bat...@chromium.org>
                        Gerrit-Attention: Trang Mai <tra...@google.com>
                        Gerrit-Attention: Stephan Drab <sd...@google.com>
                        Gerrit-Comment-Date: Tue, 07 Jul 2026 18:15:08 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Dave Tapuska (Gerrit)

                        unread,
                        Jul 7, 2026, 2:17:23 PM (20 hours ago) Jul 7
                        to Stephan Drab, Dominic Battré, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                        Attention needed from Dominic Battré, Stephan Drab and Trang Mai

                        Dave Tapuska voted Code-Review+1

                        Code-Review+1
                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Dominic Battré
                        • Stephan Drab
                        • Trang Mai
                        Submit Requirements:
                          • requirement satisfiedCode-Coverage
                          • requirement is not satisfiedCode-Owners
                          • requirement is not 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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                          Gerrit-Change-Number: 8019622
                          Gerrit-PatchSet: 21
                          Gerrit-Owner: Stephan Drab <sd...@google.com>
                          Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                          Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                          Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                          Gerrit-Reviewer: Trang Mai <tra...@google.com>
                          Gerrit-CC: Salma Aly <salmaab...@google.com>
                          Gerrit-Attention: Dominic Battré <bat...@chromium.org>
                          Gerrit-Attention: Trang Mai <tra...@google.com>
                          Gerrit-Attention: Stephan Drab <sd...@google.com>
                          Gerrit-Comment-Date: Tue, 07 Jul 2026 18:17:09 +0000
                          Gerrit-HasComments: No
                          Gerrit-Has-Labels: Yes
                          satisfied_requirement
                          unsatisfied_requirement
                          open
                          diffy

                          Stephan Drab (Gerrit)

                          unread,
                          1:10 AM (9 hours ago) 1:10 AM
                          to Dave Tapuska, Dominic Battré, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                          Attention needed from Dave Tapuska, Dominic Battré and Trang Mai

                          Stephan Drab added 1 comment

                          File chrome/browser/actor/tools/attempt_otp_filling_tool.h
                          Line 18, Patchset 21:#include "chrome/common/actor_webui.mojom.h"
                          Dave Tapuska . resolved

                          actor_webui.mojom-forward.h

                          Stephan Drab

                          Done

                          Open in Gerrit

                          Related details

                          Attention is currently required from:
                          • Dave Tapuska
                          • Dominic Battré
                          • Trang Mai
                          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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                            Gerrit-Change-Number: 8019622
                            Gerrit-PatchSet: 22
                            Gerrit-Owner: Stephan Drab <sd...@google.com>
                            Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                            Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                            Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                            Gerrit-Reviewer: Trang Mai <tra...@google.com>
                            Gerrit-CC: Salma Aly <salmaab...@google.com>
                            Gerrit-Attention: Dominic Battré <bat...@chromium.org>
                            Gerrit-Attention: Trang Mai <tra...@google.com>
                            Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                            Gerrit-Comment-Date: Wed, 08 Jul 2026 05:10:00 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: No
                            Comment-In-Reply-To: Dave Tapuska <dtap...@chromium.org>
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Dominic Battré (Gerrit)

                            unread,
                            3:07 AM (7 hours ago) 3:07 AM
                            to Stephan Drab, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                            Attention needed from Dave Tapuska, Stephan Drab and Trang Mai

                            Dominic Battré voted and added 7 comments

                            Votes added by Dominic Battré

                            Code-Review+1

                            7 comments

                            File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
                            Line 219, Patchset 24 (Latest): "Gmail OTP disabled and within 90-day cool-off period "
                            Dominic Battré . unresolved

                            I would recommend dropping this number (as the constant could change) or using base::StringPrintf to add it do the string.

                            File chrome/browser/actor/tools/attempt_otp_filling_tool_unittest.cc
                            Line 305, Patchset 24 (Latest):// persisted prefs did not change
                            Dominic Battré . unresolved

                            Period at the end.

                            Line 338, Patchset 20:TEST_F(AttemptOtpFillingToolTest, TimeOfUseValidation_TabWentAway) {
                            Dominic Battré . resolved

                            Do you want to be consistent with adding comments to the tests?

                            Here I can conclude it but for "NoLastObservation" it's not obvious anymore. I'd need to check the enum to understand what this is about.

                            Stephan Drab

                            I did add tests for those methods for code that already existed, but I figured I wouldn't add comments, since I didn't have such a good overview of what this should do. But you're right, out of consistency, the comments make sense. Added them.

                            Dominic Battré

                            Thanks, by doing the research once, you safe the work for everybody in the future.

                            Line 361, Patchset 24 (Latest):// observation is null.
                            Dominic Battré . unresolved

                            do you want to document what this means?

                            Line 372, Patchset 24 (Latest):// Time of use validation returns kFormFillingFieldNotFound when trigger fields
                            Dominic Battré . unresolved

                            plural or singular?

                            Line 426, Patchset 24 (Latest):// Invoke fails with kOtpFillFailure when the result of
                            Dominic Battré . unresolved

                            "Invoke()"? That makes reading the sentence easier because it's not obvious that this is a function name. Same below.

                            Line 427, Patchset 24 (Latest):// retrieving the OTP is false.
                            Dominic Battré . unresolved

                            filling

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Dave Tapuska
                            • Stephan Drab
                            • Trang Mai
                            Submit Requirements:
                            • requirement satisfiedCode-Coverage
                            • requirement satisfiedCode-Owners
                            • requirement is not 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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                            Gerrit-Change-Number: 8019622
                            Gerrit-PatchSet: 24
                            Gerrit-Owner: Stephan Drab <sd...@google.com>
                            Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                            Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                            Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                            Gerrit-Reviewer: Trang Mai <tra...@google.com>
                            Gerrit-CC: Salma Aly <salmaab...@google.com>
                            Gerrit-Attention: Trang Mai <tra...@google.com>
                            Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                            Gerrit-Attention: Stephan Drab <sd...@google.com>
                            Gerrit-Comment-Date: Wed, 08 Jul 2026 07:06:52 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Stephan Drab (Gerrit)

                            unread,
                            4:31 AM (5 hours ago) 4:31 AM
                            to Dominic Battré, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                            Attention needed from Dave Tapuska, Dominic Battré and Trang Mai

                            Stephan Drab added 6 comments

                            File chrome/browser/actor/tools/attempt_otp_filling_tool.cc
                            Line 219, Patchset 24: "Gmail OTP disabled and within 90-day cool-off period "
                            Dominic Battré . resolved

                            I would recommend dropping this number (as the constant could change) or using base::StringPrintf to add it do the string.

                            Stephan Drab

                            Done

                            File chrome/browser/actor/tools/attempt_otp_filling_tool_unittest.cc
                            Line 305, Patchset 24:// persisted prefs did not change
                            Dominic Battré . resolved

                            Period at the end.

                            Stephan Drab

                            Done

                            Line 361, Patchset 24:// observation is null.
                            Dominic Battré . resolved

                            do you want to document what this means?

                            Stephan Drab

                            Done

                            Line 372, Patchset 24:// Time of use validation returns kFormFillingFieldNotFound when trigger fields
                            Dominic Battré . resolved

                            plural or singular?

                            Stephan Drab

                            Done

                            Line 426, Patchset 24:// Invoke fails with kOtpFillFailure when the result of
                            Dominic Battré . resolved

                            "Invoke()"? That makes reading the sentence easier because it's not obvious that this is a function name. Same below.

                            Stephan Drab

                            Done

                            Line 427, Patchset 24:// retrieving the OTP is false.
                            Dominic Battré . resolved

                            filling

                            Stephan Drab

                            Done

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Dave Tapuska
                            • Dominic Battré
                            • Trang Mai
                            Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement 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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                              Gerrit-Change-Number: 8019622
                              Gerrit-PatchSet: 27
                              Gerrit-Owner: Stephan Drab <sd...@google.com>
                              Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                              Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                              Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                              Gerrit-Reviewer: Trang Mai <tra...@google.com>
                              Gerrit-CC: Salma Aly <salmaab...@google.com>
                              Gerrit-Attention: Dominic Battré <bat...@chromium.org>
                              Gerrit-Attention: Trang Mai <tra...@google.com>
                              Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                              Gerrit-Comment-Date: Wed, 08 Jul 2026 08:30:47 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: No
                              Comment-In-Reply-To: Dominic Battré <bat...@chromium.org>
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Dominic Battré (Gerrit)

                              unread,
                              4:34 AM (5 hours ago) 4:34 AM
                              to Stephan Drab, Dave Tapuska, Trang Mai, Salma Aly, Chromium LUCI CQ, chromium...@chromium.org, browser-comp...@chromium.org, mfoltz+wa...@chromium.org
                              Attention needed from Dave Tapuska, Stephan Drab and Trang Mai

                              Dominic Battré voted Code-Review+1

                              Code-Review+1
                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Dave Tapuska
                              • Stephan Drab
                              • Trang Mai
                              Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement satisfiedCode-Owners
                                • requirement is not 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: Icf61fcbbaf89420b6c78b9de046f217571b975bb
                                Gerrit-Change-Number: 8019622
                                Gerrit-PatchSet: 27
                                Gerrit-Owner: Stephan Drab <sd...@google.com>
                                Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
                                Gerrit-Reviewer: Dominic Battré <bat...@chromium.org>
                                Gerrit-Reviewer: Stephan Drab <sd...@google.com>
                                Gerrit-Reviewer: Trang Mai <tra...@google.com>
                                Gerrit-CC: Salma Aly <salmaab...@google.com>
                                Gerrit-Attention: Trang Mai <tra...@google.com>
                                Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
                                Gerrit-Attention: Stephan Drab <sd...@google.com>
                                Gerrit-Comment-Date: Wed, 08 Jul 2026 08:34:12 +0000
                                Gerrit-HasComments: No
                                Gerrit-Has-Labels: Yes
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy
                                Reply all
                                Reply to author
                                Forward
                                0 new messages