[Voice Typing] add functionality to pipe audio level updates to waveform UI [chromium/src : main]

1 view
Skip to first unread message

Amya Singhal (Gerrit)

unread,
Jul 22, 2026, 3:22:28 PM (3 days ago) Jul 22
to Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org

Amya Singhal added 1 comment

Commit Message
Line 7, Patchset 3:[Voice Typing] add functionality to pipe audio level updates to waveform UI
Amya Singhal . resolved

instead of Layered Forwarding, approaching this with direct Backend-to-UI 'Fast Path' using base::RepeatingCallbackList in DictationMultiplexer. Helps bypass business logic and pipe real-time audio updates directly to WaveformView.
Reason: Prevents interface pollution in core business layers by keeping high-frequency audio updates isolated as a strict UI-only concern.

Open in Gerrit

Related details

Attention set is empty
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: I7cdaae65a488610022b88c2fa4439de8c08212b7
Gerrit-Change-Number: 8132639
Gerrit-PatchSet: 5
Gerrit-Owner: Amya Singhal <amyas...@google.com>
Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Comment-Date: Wed, 22 Jul 2026 19:22:15 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Amya Singhal (Gerrit)

unread,
Jul 22, 2026, 3:57:50 PM (3 days ago) Jul 22
to David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
Attention needed from David Bokan

Amya Singhal added 1 comment

File chrome/browser/dictation/dictation_multiplexer.h
Line 65, Patchset 7: base::RepeatingCallbackList<void(float)> audio_level_callback_list_;
Amya Singhal . unresolved

Not sure if I should use single callback approach or keep it to CallbackListSubscription. I did the current approach because it makes it almost impossible to create dangling pointers.
@bo...@chromium.org let me know your thoughts on this.

Open in Gerrit

Related details

Attention is currently required from:
  • David Bokan
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: I7cdaae65a488610022b88c2fa4439de8c08212b7
    Gerrit-Change-Number: 8132639
    Gerrit-PatchSet: 8
    Gerrit-Owner: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: David Bokan <bo...@chromium.org>
    Gerrit-Attention: David Bokan <bo...@chromium.org>
    Gerrit-Comment-Date: Wed, 22 Jul 2026 19:57:36 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Kevin McNee (Gerrit)

    unread,
    Jul 22, 2026, 4:09:13 PM (3 days ago) Jul 22
    to Amya Singhal, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
    Attention needed from Amya Singhal and David Bokan

    Kevin McNee added 1 comment

    File chrome/browser/dictation/dictation_multiplexer.h
    Line 21, Patchset 8 (Latest):class DictationMultiplexer {
    Kevin McNee . unresolved

    It doesn't look like we need to go through the multiplexer, since it's not tied to a stream. Could we do this on DictationKeyedService?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Amya Singhal
    • David Bokan
    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: I7cdaae65a488610022b88c2fa4439de8c08212b7
    Gerrit-Change-Number: 8132639
    Gerrit-PatchSet: 8
    Gerrit-Owner: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Kevin McNee <mc...@chromium.org>
    Gerrit-Attention: Amya Singhal <amyas...@google.com>
    Gerrit-Comment-Date: Wed, 22 Jul 2026 20:08:57 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Kevin McNee (Gerrit)

    unread,
    Jul 22, 2026, 4:20:44 PM (2 days ago) Jul 22
    to Amya Singhal, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
    Attention needed from Amya Singhal and David Bokan

    Kevin McNee added 1 comment

    File chrome/browser/ui/views/dictation/waveform_view.cc
    Line 13, Patchset 8 (Latest):#include "chrome/browser/dictation/dictation_multiplexer.h"
    Kevin McNee . unresolved

    Also I'm not sure this include is allowed. What you could do instead is create a delegate interface (like "AudioLevelProvider" or something) that lives in this views/dictation directory. And then have the class in c/b/dictation implement it.

    Gerrit-Comment-Date: Wed, 22 Jul 2026 20:20:26 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Amya Singhal (Gerrit)

    unread,
    Jul 22, 2026, 4:56:29 PM (2 days ago) Jul 22
    to Kevin McNee, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
    Attention needed from Kevin McNee

    Amya Singhal added 2 comments

    File chrome/browser/dictation/dictation_multiplexer.h
    Line 21, Patchset 8:class DictationMultiplexer {
    Kevin McNee . resolved

    It doesn't look like we need to go through the multiplexer, since it's not tied to a stream. Could we do this on DictationKeyedService?

    Amya Singhal

    you are right, I added this here because I was receiving streamID with audio_level before, followed your suggestion above and created ```AudioLevelProvider```

    File chrome/browser/ui/views/dictation/waveform_view.cc
    Line 13, Patchset 8:#include "chrome/browser/dictation/dictation_multiplexer.h"
    Kevin McNee . resolved

    Also I'm not sure this include is allowed. What you could do instead is create a delegate interface (like "AudioLevelProvider" or something) that lives in this views/dictation directory. And then have the class in c/b/dictation implement it.

    Amya Singhal

    thanks for the suggestion, done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Kevin McNee
    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: I7cdaae65a488610022b88c2fa4439de8c08212b7
    Gerrit-Change-Number: 8132639
    Gerrit-PatchSet: 11
    Gerrit-Owner: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Kevin McNee <mc...@chromium.org>
    Gerrit-Attention: Kevin McNee <mc...@chromium.org>
    Gerrit-Comment-Date: Wed, 22 Jul 2026 20:56:15 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Kevin McNee <mc...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Bokan (Gerrit)

    unread,
    Jul 23, 2026, 11:58:20 AM (2 days ago) Jul 23
    to Amya Singhal, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
    Attention needed from Amya Singhal and Kevin McNee

    David Bokan added 5 comments

    Patchset-level comments
    File-level comment, Patchset 12 (Latest):
    David Bokan . resolved

    not a strong preference but IMHO it'd be simpler to just add an UpdateAudioLevel method on the Ui interface and on the DictationBubbleUi and just have that call the equivalent method on the Waveform.

    File chrome/browser/dictation/BUILD.gn
    Line 27, Patchset 12 (Latest): "//chrome/browser/ui/views/dictation",
    David Bokan . unresolved

    Can you make this a regular `deps` or does something complain?

    File chrome/browser/dictation/dictation_keyed_service.cc
    Line 196, Patchset 12 (Latest):bool DictationKeyedService::UpdateAudioLevel(float audio_level) {
    audio_level_callback_list_.Notify(audio_level);
    return true;
    }

    base::CallbackListSubscription DictationKeyedService::AddAudioLevelCallback(
    base::RepeatingCallback<void(float)> callback) {
    return audio_level_callback_list_.Add(std::move(callback));
    }
    David Bokan . unresolved

    These should be in SessionController. DictationKeyedSerivce is more for browser-integration. This is a core dictation functionality which is what SessionController is for. i.e. if the feature was migrated to iOS (which doesn't have chrome/browser) we would still want the AudioLevel functionality of SessionController.

    You can keep UpdateAudioLevel here but it should forward the call to the SessionController if one is available

    File chrome/browser/dictation/session_ui_impl.cc
    Line 60, Patchset 12 (Latest): DictationKeyedService* service =
    DictationKeyedService::Get(window->GetProfile());
    CHECK(service);
    David Bokan . unresolved

    This class shouldn't know about DictationKeyedService, it should interact only with the SessionUiDelegate (which is the SessionController)

    File chrome/browser/ui/views/dictation/waveform_view.h
    Line 34, Patchset 12 (Latest): explicit WaveformView(AudioLevelProvider& provider);
    David Bokan . unresolved

    Do we need to do this through a callback? `SetAudioLevel` is already public, can the BubbleUi just call SetAudioLevel whenever an update arrives?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Amya Singhal
    • Kevin McNee
    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: I7cdaae65a488610022b88c2fa4439de8c08212b7
    Gerrit-Change-Number: 8132639
    Gerrit-PatchSet: 12
    Gerrit-Owner: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
    Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Amya Singhal <amyas...@google.com>
    Gerrit-Comment-Date: Thu, 23 Jul 2026 15:58:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Amya Singhal (Gerrit)

    unread,
    Jul 23, 2026, 3:16:48 PM (2 days ago) Jul 23
    to Kevin McNee, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
    Attention needed from David Bokan and Kevin McNee

    Amya Singhal voted and added 5 comments

    Votes added by Amya Singhal

    Commit-Queue+0

    5 comments

    File chrome/browser/dictation/BUILD.gn
    Line 27, Patchset 12: "//chrome/browser/ui/views/dictation",
    David Bokan . resolved

    Can you make this a regular `deps` or does something complain?

    Amya Singhal

    as we removed AudioLevelProvider, we can move it from ```public_deps``` to ```deps```

    File chrome/browser/dictation/dictation_keyed_service.cc
    Line 196, Patchset 12:bool DictationKeyedService::UpdateAudioLevel(float audio_level) {

    audio_level_callback_list_.Notify(audio_level);
    return true;
    }

    base::CallbackListSubscription DictationKeyedService::AddAudioLevelCallback(
    base::RepeatingCallback<void(float)> callback) {
    return audio_level_callback_list_.Add(std::move(callback));
    }
    David Bokan . resolved

    These should be in SessionController. DictationKeyedSerivce is more for browser-integration. This is a core dictation functionality which is what SessionController is for. i.e. if the feature was migrated to iOS (which doesn't have chrome/browser) we would still want the AudioLevel functionality of SessionController.

    You can keep UpdateAudioLevel here but it should forward the call to the SessionController if one is available

    Amya Singhal

    makes sense.
    the new flow looks like ```DictationKeyedService::UpdateAudioLevel``` --> ```SessionController::UpdateAudioLevel``` --> ```SessionUi::UpdateAudioLevel``` --> ```DictationBubbleUi::UpdateAudioLevel``` --> ```WaveformView::SetAudioLevel```

    File chrome/browser/dictation/dictation_multiplexer.h
    Line 65, Patchset 7: base::RepeatingCallbackList<void(float)> audio_level_callback_list_;
    Amya Singhal . resolved

    Not sure if I should use single callback approach or keep it to CallbackListSubscription. I did the current approach because it makes it almost impossible to create dangling pointers.
    @bo...@chromium.org let me know your thoughts on this.

    Amya Singhal

    Marked as resolved.

    File chrome/browser/dictation/session_ui_impl.cc
    Line 60, Patchset 12: DictationKeyedService* service =
    DictationKeyedService::Get(window->GetProfile());
    CHECK(service);
    David Bokan . resolved

    This class shouldn't know about DictationKeyedService, it should interact only with the SessionUiDelegate (which is the SessionController)

    Amya Singhal

    done

    File chrome/browser/ui/views/dictation/waveform_view.h
    Line 34, Patchset 12: explicit WaveformView(AudioLevelProvider& provider);
    David Bokan . resolved

    Do we need to do this through a callback? `SetAudioLevel` is already public, can the BubbleUi just call SetAudioLevel whenever an update arrives?

    Amya Singhal

    done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Bokan
    • Kevin McNee
    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: I7cdaae65a488610022b88c2fa4439de8c08212b7
      Gerrit-Change-Number: 8132639
      Gerrit-PatchSet: 13
      Gerrit-Owner: Amya Singhal <amyas...@google.com>
      Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
      Gerrit-Reviewer: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-Attention: Kevin McNee <mc...@chromium.org>
      Gerrit-Attention: David Bokan <bo...@chromium.org>
      Gerrit-Comment-Date: Thu, 23 Jul 2026 19:16:21 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: David Bokan <bo...@chromium.org>
      Comment-In-Reply-To: Amya Singhal <amyas...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kevin McNee (Gerrit)

      unread,
      Jul 23, 2026, 8:02:53 PM (2 days ago) Jul 23
      to Amya Singhal, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
      Attention needed from Amya Singhal and David Bokan

      Kevin McNee voted and added 7 comments

      Votes added by Kevin McNee

      Code-Review+1

      7 comments

      Patchset-level comments
      File chrome/browser/dictation/dictation_keyed_service.cc
      Line 200, Patchset 15 (Latest): return true;
      Kevin McNee . unresolved

      nit: At a glance, I don't see anything check the return value and it always returns true anyway. This method could return void.

      File chrome/browser/extensions/api/dictation_private/dictation_private_api.cc
      Line 99, Patchset 15 (Latest): service->UpdateAudioLevel(static_cast<float>(params->audio_level));
      Kevin McNee . unresolved

      Let's also check that this value is in a valid range and respond with an error if not.

      File chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc
      Line 11, Patchset 15 (Latest):#include "base/functional/bind.h"
      Kevin McNee . unresolved

      nit: Appears unused.

      File chrome/browser/ui/views/dictation/waveform_view.h
      Line 42, Patchset 15 (Latest): // Expose a public hook to drive the wave with real mic volume (0.0 to 1.0).
      Kevin McNee . unresolved

      Pre-existing nit: This sounds like a TODO rather than a description of the function. I'd just say "Drives the wave..."

      File chrome/browser/ui/views/dictation/waveform_view.cc
      Line 10, Patchset 15 (Latest):#include "base/functional/bind.h"
      Kevin McNee . unresolved

      nit: Appears unused.

      File chrome/common/extensions/api/dictation_private.webidl
      Line 104, Patchset 15 (Latest): // Updates the audio level of the stream.
      Kevin McNee . unresolved

      Let's also document the valid values for the audio level.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Amya Singhal
      • David Bokan
      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: I7cdaae65a488610022b88c2fa4439de8c08212b7
        Gerrit-Change-Number: 8132639
        Gerrit-PatchSet: 15
        Gerrit-Owner: Amya Singhal <amyas...@google.com>
        Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
        Gerrit-Reviewer: David Bokan <bo...@chromium.org>
        Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-Attention: David Bokan <bo...@chromium.org>
        Gerrit-Attention: Amya Singhal <amyas...@google.com>
        Gerrit-Comment-Date: Fri, 24 Jul 2026 00:02:30 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        David Bokan (Gerrit)

        unread,
        Jul 23, 2026, 10:16:05 PM (2 days ago) Jul 23
        to Amya Singhal, Tim, Justin Lulejian, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
        Attention needed from Amya Singhal, Justin Lulejian and Tim

        David Bokan added 8 comments

        Patchset-level comments
        David Bokan . resolved

        few nits + what Kevin said but otherwise LGTM

        +tjudkins@ for extensions API
        +jlulejian@ for enums.xml

        File chrome/browser/dictation/dictation_keyed_service.h
        Line 92, Patchset 15 (Latest): // Broadcasts audio level update to subscribers.
        David Bokan . unresolved

        Update comment - updates audio level in the current session

        File chrome/browser/dictation/session_ui_impl.cc
        Line 128, Patchset 15 (Latest): if (bubble_ui_) {
        David Bokan . unresolved

        nit: This is never null - it's created in the constructor and never cleared.

        File chrome/browser/extensions/api/dictation_private/dictation_private_api.cc
        Line 99, Patchset 15 (Latest): service->UpdateAudioLevel(static_cast<float>(params->audio_level));
        David Bokan . unresolved

        they shouldn't happen but use `base::saturated_cast` to handle any weird edge cases should they crop up

        File chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc
        Line 8, Patchset 15 (Latest):
        David Bokan . unresolved

        I think we need a test in this file corresponding to the `setAudioLevel` call in test.js

        File chrome/browser/ui/views/dictation/waveform_view.h
        Line 43, Patchset 15 (Latest): // Calling this will automatically disable the internal speech simulation.
        David Bokan . unresolved

        We should remove this now that we have real input (the comment and the functionality)

        Line 40, Patchset 15 (Latest): float audio_level() const { return audio_level_; }
        David Bokan . unresolved

        appears used only in testing, name it `audio_level_for_testing`

        File chrome/browser/ui/views/dictation/waveform_view.cc
        Line 57, Patchset 15 (Latest): constexpr float kBoostFactor = 10.0f;
        David Bokan . unresolved

        Add a description of what this is and where it comes from - I'm guessing this is experimentally determined to adjust the 0-1 audio level into a value that works well for the visualization. If so that's good to document in a comment so readers know this is arbitrary and used to adjust visual polish.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Amya Singhal
        • Justin Lulejian
        • Tim
        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: I7cdaae65a488610022b88c2fa4439de8c08212b7
        Gerrit-Change-Number: 8132639
        Gerrit-PatchSet: 15
        Gerrit-Owner: Amya Singhal <amyas...@google.com>
        Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
        Gerrit-Reviewer: David Bokan <bo...@chromium.org>
        Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
        Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
        Gerrit-Reviewer: Tim <tjud...@chromium.org>
        Gerrit-Attention: Tim <tjud...@chromium.org>
        Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
        Gerrit-Attention: Amya Singhal <amyas...@google.com>
        Gerrit-Comment-Date: Fri, 24 Jul 2026 02:15:51 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Justin Lulejian (Gerrit)

        unread,
        Jul 24, 2026, 10:35:53 AM (18 hours ago) Jul 24
        to Amya Singhal, Tim, Kevin McNee, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
        Attention needed from Amya Singhal and Tim

        Justin Lulejian voted and added 1 comment

        Votes added by Justin Lulejian

        Code-Review+1

        1 comment

        Patchset-level comments
        Justin Lulejian . resolved

        lgtm tools/metrics/histograms/metadata/extensions/enums.xml

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Amya Singhal
        • Tim
        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: I7cdaae65a488610022b88c2fa4439de8c08212b7
          Gerrit-Change-Number: 8132639
          Gerrit-PatchSet: 15
          Gerrit-Owner: Amya Singhal <amyas...@google.com>
          Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
          Gerrit-Reviewer: David Bokan <bo...@chromium.org>
          Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
          Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
          Gerrit-Reviewer: Tim <tjud...@chromium.org>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-Attention: Tim <tjud...@chromium.org>
          Gerrit-Attention: Amya Singhal <amyas...@google.com>
          Gerrit-Comment-Date: Fri, 24 Jul 2026 14:35:40 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Amya Singhal (Gerrit)

          unread,
          Jul 24, 2026, 10:46:20 AM (18 hours ago) Jul 24
          to Justin Lulejian, Tim, Kevin McNee, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
          Attention needed from David Bokan, Justin Lulejian, Kevin McNee and Tim

          Amya Singhal added 13 comments

          File chrome/browser/dictation/dictation_keyed_service.h
          Line 92, Patchset 15: // Broadcasts audio level update to subscribers.
          David Bokan . resolved

          Update comment - updates audio level in the current session

          Amya Singhal

          done

          File chrome/browser/dictation/dictation_keyed_service.cc
          Line 200, Patchset 15: return true;
          Kevin McNee . resolved

          nit: At a glance, I don't see anything check the return value and it always returns true anyway. This method could return void.

          Amya Singhal

          good catch, made the method void

          File chrome/browser/dictation/session_ui_impl.cc
          Line 128, Patchset 15: if (bubble_ui_) {
          David Bokan . resolved

          nit: This is never null - it's created in the constructor and never cleared.

          Amya Singhal

          makes sense, removed the check

          File chrome/browser/extensions/api/dictation_private/dictation_private_api.cc
          Line 99, Patchset 15: service->UpdateAudioLevel(static_cast<float>(params->audio_level));
          Kevin McNee . resolved

          Let's also check that this value is in a valid range and respond with an error if not.

          Amya Singhal

          added the check and error

          Line 99, Patchset 15: service->UpdateAudioLevel(static_cast<float>(params->audio_level));
          David Bokan . resolved

          they shouldn't happen but use `base::saturated_cast` to handle any weird edge cases should they crop up

          Amya Singhal

          done

          File chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc
          Line 8, Patchset 15:
          David Bokan . resolved

          I think we need a test in this file corresponding to the `setAudioLevel` call in test.js

          Amya Singhal

          In this browser test setup, we bypass StartSession to register the mock provider directly, meaning DictationKeyedService::session_ is null. As a result, UpdateAudioLevel is a no-op in C++ here and cannot be asserted upon.

          The API binding itself is smoke-tested via the call in test.js (which succeeds without throwing), while the actual backend propagation logic is thoroughly verified in dictation_keyed_service_unittest.cc

          Line 11, Patchset 15:#include "base/functional/bind.h"
          Kevin McNee . resolved

          nit: Appears unused.

          Amya Singhal

          removed

          File chrome/browser/ui/views/dictation/waveform_view.h
          Line 43, Patchset 15: // Calling this will automatically disable the internal speech simulation.
          David Bokan . resolved

          We should remove this now that we have real input (the comment and the functionality)

          Amya Singhal

          done

          Line 42, Patchset 15: // Expose a public hook to drive the wave with real mic volume (0.0 to 1.0).
          Kevin McNee . resolved

          Pre-existing nit: This sounds like a TODO rather than a description of the function. I'd just say "Drives the wave..."

          Amya Singhal

          fixed the comment

          Line 40, Patchset 15: float audio_level() const { return audio_level_; }
          David Bokan . resolved

          appears used only in testing, name it `audio_level_for_testing`

          Amya Singhal

          done

          File chrome/browser/ui/views/dictation/waveform_view.cc
          Line 10, Patchset 15:#include "base/functional/bind.h"
          Kevin McNee . resolved

          nit: Appears unused.

          Amya Singhal

          removed

          Line 57, Patchset 15: constexpr float kBoostFactor = 10.0f;
          David Bokan . resolved

          Add a description of what this is and where it comes from - I'm guessing this is experimentally determined to adjust the 0-1 audio level into a value that works well for the visualization. If so that's good to document in a comment so readers know this is arbitrary and used to adjust visual polish.

          Amya Singhal

          added a comment

          File chrome/common/extensions/api/dictation_private.webidl
          Line 104, Patchset 15: // Updates the audio level of the stream.
          Kevin McNee . resolved

          Let's also document the valid values for the audio level.

          Amya Singhal

          updated the comment to include valid values

          Open in Gerrit

          Related details

          Attention is currently required from:
          • David Bokan
          • Justin Lulejian
          • Kevin McNee
          • Tim
          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: I7cdaae65a488610022b88c2fa4439de8c08212b7
            Gerrit-Change-Number: 8132639
            Gerrit-PatchSet: 16
            Gerrit-Owner: Amya Singhal <amyas...@google.com>
            Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
            Gerrit-Reviewer: David Bokan <bo...@chromium.org>
            Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
            Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
            Gerrit-Reviewer: Tim <tjud...@chromium.org>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-Attention: Kevin McNee <mc...@chromium.org>
            Gerrit-Attention: Tim <tjud...@chromium.org>
            Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
            Gerrit-Attention: David Bokan <bo...@chromium.org>
            Gerrit-Comment-Date: Fri, 24 Jul 2026 14:46:10 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Kevin McNee <mc...@chromium.org>
            Comment-In-Reply-To: David Bokan <bo...@chromium.org>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            David Bokan (Gerrit)

            unread,
            Jul 24, 2026, 11:36:54 AM (17 hours ago) Jul 24
            to Amya Singhal, Justin Lulejian, Tim, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
            Attention needed from Amya Singhal, Justin Lulejian, Kevin McNee and Tim

            David Bokan added 1 comment

            File chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc
            Line 8, Patchset 15:
            David Bokan . unresolved

            I think we need a test in this file corresponding to the `setAudioLevel` call in test.js

            Amya Singhal

            In this browser test setup, we bypass StartSession to register the mock provider directly, meaning DictationKeyedService::session_ is null. As a result, UpdateAudioLevel is a no-op in C++ here and cannot be asserted upon.

            The API binding itself is smoke-tested via the call in test.js (which succeeds without throwing), while the actual backend propagation logic is thoroughly verified in dictation_keyed_service_unittest.cc

            David Bokan

            I see - please file a bug and add a TODO to update these tests to use a session like a real stream provider would.

            You could manually create a session here but I think the issue is you have no way to read the set value or expect a call...I think the right way to do this would be to use a MockDictationKeyedService which allows a test to mock the SessionUI and then add an EXPECT_CALL on UpdateAudioLevel - that would require the above bug to be fixed. Lets leave a bug+TODO here to add a test for this functionality once that's fixed. I'm tracking any missing test coverage under bug b/528859214 so you can make it a child of that.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Amya Singhal
            • Justin Lulejian
            • Kevin McNee
            • Tim
              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: I7cdaae65a488610022b88c2fa4439de8c08212b7
                Gerrit-Change-Number: 8132639
                Gerrit-PatchSet: 16
                Gerrit-Owner: Amya Singhal <amyas...@google.com>
                Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                Gerrit-Reviewer: Tim <tjud...@chromium.org>
                Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                Gerrit-Attention: Tim <tjud...@chromium.org>
                Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                Gerrit-Attention: Amya Singhal <amyas...@google.com>
                Gerrit-Comment-Date: Fri, 24 Jul 2026 15:36:38 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Amya Singhal (Gerrit)

                unread,
                Jul 24, 2026, 1:16:10 PM (15 hours ago) Jul 24
                to Justin Lulejian, Tim, Kevin McNee, David Bokan, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                Attention needed from David Bokan, Justin Lulejian, Kevin McNee and Tim

                Amya Singhal added 1 comment

                File chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc
                Line 8, Patchset 15:
                David Bokan . resolved

                I think we need a test in this file corresponding to the `setAudioLevel` call in test.js

                Amya Singhal

                In this browser test setup, we bypass StartSession to register the mock provider directly, meaning DictationKeyedService::session_ is null. As a result, UpdateAudioLevel is a no-op in C++ here and cannot be asserted upon.

                The API binding itself is smoke-tested via the call in test.js (which succeeds without throwing), while the actual backend propagation logic is thoroughly verified in dictation_keyed_service_unittest.cc

                David Bokan

                I see - please file a bug and add a TODO to update these tests to use a session like a real stream provider would.

                You could manually create a session here but I think the issue is you have no way to read the set value or expect a call...I think the right way to do this would be to use a MockDictationKeyedService which allows a test to mock the SessionUI and then add an EXPECT_CALL on UpdateAudioLevel - that would require the above bug to be fixed. Lets leave a bug+TODO here to add a test for this functionality once that's fixed. I'm tracking any missing test coverage under bug b/528859214 so you can make it a child of that.

                Amya Singhal

                added the todos

                Open in Gerrit

                Related details

                Attention is currently required from:
                • David Bokan
                • Justin Lulejian
                • Kevin McNee
                • Tim
                  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: I7cdaae65a488610022b88c2fa4439de8c08212b7
                    Gerrit-Change-Number: 8132639
                    Gerrit-PatchSet: 17
                    Gerrit-Owner: Amya Singhal <amyas...@google.com>
                    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                    Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                    Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                    Gerrit-Reviewer: Tim <tjud...@chromium.org>
                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                    Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                    Gerrit-Attention: Tim <tjud...@chromium.org>
                    Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                    Gerrit-Attention: David Bokan <bo...@chromium.org>
                    Gerrit-Comment-Date: Fri, 24 Jul 2026 17:16:01 +0000
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    David Bokan (Gerrit)

                    unread,
                    Jul 24, 2026, 1:17:55 PM (15 hours ago) Jul 24
                    to Amya Singhal, Justin Lulejian, Tim, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                    Attention needed from Amya Singhal, Justin Lulejian, Kevin McNee and Tim

                    David Bokan voted Code-Review+1

                    Code-Review+1
                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Amya Singhal
                    • Justin Lulejian
                    • Kevin McNee
                    • Tim
                      Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement is not 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: I7cdaae65a488610022b88c2fa4439de8c08212b7
                        Gerrit-Change-Number: 8132639
                        Gerrit-PatchSet: 17
                        Gerrit-Owner: Amya Singhal <amyas...@google.com>
                        Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                        Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                        Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                        Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                        Gerrit-Reviewer: Tim <tjud...@chromium.org>
                        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                        Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                        Gerrit-Attention: Tim <tjud...@chromium.org>
                        Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                        Gerrit-Attention: Amya Singhal <amyas...@google.com>
                        Gerrit-Comment-Date: Fri, 24 Jul 2026 17:17:43 +0000
                        Gerrit-HasComments: No
                        Gerrit-Has-Labels: Yes
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Justin Lulejian (Gerrit)

                        unread,
                        Jul 24, 2026, 2:33:56 PM (14 hours ago) Jul 24
                        to Amya Singhal, David Bokan, Tim, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                        Attention needed from Amya Singhal, Kevin McNee and Tim

                        Justin Lulejian voted Code-Review+1

                        Code-Review+1
                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Amya Singhal
                        • Kevin McNee
                        • Tim
                        Submit Requirements:
                          • requirement satisfiedCode-Coverage
                          • requirement is not satisfiedCode-Owners
                          • requirement satisfiedCode-Review
                          • requirement satisfiedReview-Enforcement
                          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                          Gerrit-MessageType: comment
                          Gerrit-Project: chromium/src
                          Gerrit-Branch: main
                          Gerrit-Change-Id: I7cdaae65a488610022b88c2fa4439de8c08212b7
                          Gerrit-Change-Number: 8132639
                          Gerrit-PatchSet: 17
                          Gerrit-Owner: Amya Singhal <amyas...@google.com>
                          Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                          Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                          Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                          Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                          Gerrit-Reviewer: Tim <tjud...@chromium.org>
                          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                          Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                          Gerrit-Attention: Tim <tjud...@chromium.org>
                          Gerrit-Attention: Amya Singhal <amyas...@google.com>
                          Gerrit-Comment-Date: Fri, 24 Jul 2026 18:33:46 +0000
                          Gerrit-HasComments: No
                          Gerrit-Has-Labels: Yes
                          satisfied_requirement
                          unsatisfied_requirement
                          open
                          diffy

                          Tim (Gerrit)

                          unread,
                          Jul 24, 2026, 5:15:37 PM (11 hours ago) Jul 24
                          to Amya Singhal, Justin Lulejian, David Bokan, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                          Attention needed from Amya Singhal and Kevin McNee

                          Tim voted and added 4 comments

                          Votes added by Tim

                          Code-Review+1

                          4 comments

                          Patchset-level comments
                          File-level comment, Patchset 17 (Latest):
                          Tim . resolved

                          Thanks Amya, extensions LGTM with a few nits.

                          File chrome/browser/extensions/api/dictation_private/dictation_private_api.cc
                          Line 24, Patchset 17 (Latest):constexpr std::string_view kInvalidAudioLevelError = "Invalid audio level.";
                          Tim . unresolved

                          optional: Do you want to make this error message a little more useful and actionable by stating the valid range?

                          File chrome/browser/ui/views/dictation/dictation_bubble_ui.cc
                          Line 242, Patchset 17 (Latest): views::AsViewClass<DictationToastView>(GetContentsView())
                          Tim . unresolved

                          optional: this could return nullptr if `GetContentsView()` ever returned something that wasn't a `DictationToastView` and then we'd immediately dereference it. Probably not something we need to worry about but something to be aware of with how this is written.

                          File chrome/common/extensions/api/dictation_private.webidl
                          Line 104, Patchset 17 (Latest): // Updates the audio level of the stream. Valid values are between 0.0 and 1.0.
                          Tim . unresolved

                          nit: we try to wrap comments in the IDL schemas at 80 characters where appropriate.

                          Open in Gerrit

                          Related details

                          Attention is currently required from:
                          • Amya Singhal
                          • Kevin McNee
                          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: I7cdaae65a488610022b88c2fa4439de8c08212b7
                          Gerrit-Change-Number: 8132639
                          Gerrit-PatchSet: 17
                          Gerrit-Owner: Amya Singhal <amyas...@google.com>
                          Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                          Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                          Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                          Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                          Gerrit-Reviewer: Tim <tjud...@chromium.org>
                          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                          Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                          Gerrit-Attention: Amya Singhal <amyas...@google.com>
                          Gerrit-Comment-Date: Fri, 24 Jul 2026 21:15:28 +0000
                          Gerrit-HasComments: Yes
                          Gerrit-Has-Labels: Yes
                          satisfied_requirement
                          unsatisfied_requirement
                          open
                          diffy

                          Amya Singhal (Gerrit)

                          unread,
                          Jul 24, 2026, 5:41:50 PM (11 hours ago) Jul 24
                          to Tim, Justin Lulejian, David Bokan, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                          Attention needed from David Bokan, Justin Lulejian, Kevin McNee and Tim

                          Amya Singhal added 3 comments

                          File chrome/browser/extensions/api/dictation_private/dictation_private_api.cc
                          Line 24, Patchset 17:constexpr std::string_view kInvalidAudioLevelError = "Invalid audio level.";
                          Tim . resolved

                          optional: Do you want to make this error message a little more useful and actionable by stating the valid range?

                          Amya Singhal

                          great suggestion, made the error more descriptive

                          File chrome/browser/ui/views/dictation/dictation_bubble_ui.cc
                          Line 242, Patchset 17: views::AsViewClass<DictationToastView>(GetContentsView())
                          Tim . resolved

                          optional: this could return nullptr if `GetContentsView()` ever returned something that wasn't a `DictationToastView` and then we'd immediately dereference it. Probably not something we need to worry about but something to be aware of with how this is written.

                          Amya Singhal

                          Agreed! It's safe in this specific case because the contents view type is invariant after construction, but definitely a pattern to be careful with.

                          File chrome/common/extensions/api/dictation_private.webidl
                          Line 104, Patchset 17: // Updates the audio level of the stream. Valid values are between 0.0 and 1.0.
                          Tim . resolved

                          nit: we try to wrap comments in the IDL schemas at 80 characters where appropriate.

                          Amya Singhal

                          done

                          Open in Gerrit

                          Related details

                          Attention is currently required from:
                          • David Bokan
                          • Justin Lulejian
                          • Kevin McNee
                          • Tim
                            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: I7cdaae65a488610022b88c2fa4439de8c08212b7
                              Gerrit-Change-Number: 8132639
                              Gerrit-PatchSet: 18
                              Gerrit-Owner: Amya Singhal <amyas...@google.com>
                              Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                              Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                              Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                              Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                              Gerrit-Reviewer: Tim <tjud...@chromium.org>
                              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                              Gerrit-Attention: Tim <tjud...@chromium.org>
                              Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                              Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                              Gerrit-Attention: David Bokan <bo...@chromium.org>
                              Gerrit-Comment-Date: Fri, 24 Jul 2026 21:41:41 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: No
                              Comment-In-Reply-To: Tim <tjud...@chromium.org>
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              David Bokan (Gerrit)

                              unread,
                              Jul 24, 2026, 5:43:24 PM (11 hours ago) Jul 24
                              to Amya Singhal, Tim, Justin Lulejian, Kevin McNee, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                              Attention needed from Amya Singhal, Justin Lulejian, Kevin McNee and Tim

                              David Bokan voted Code-Review+1

                              Code-Review+1
                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Amya Singhal
                              • Justin Lulejian
                              • Kevin McNee
                              • Tim
                                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: I7cdaae65a488610022b88c2fa4439de8c08212b7
                                  Gerrit-Change-Number: 8132639
                                  Gerrit-PatchSet: 18
                                  Gerrit-Owner: Amya Singhal <amyas...@google.com>
                                  Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                                  Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                                  Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                                  Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                                  Gerrit-Reviewer: Tim <tjud...@chromium.org>
                                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                  Gerrit-Attention: Tim <tjud...@chromium.org>
                                  Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                                  Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                                  Gerrit-Attention: Amya Singhal <amyas...@google.com>
                                  Gerrit-Comment-Date: Fri, 24 Jul 2026 21:43:16 +0000
                                  Gerrit-HasComments: No
                                  Gerrit-Has-Labels: Yes
                                  satisfied_requirement
                                  unsatisfied_requirement
                                  open
                                  diffy

                                  Kevin McNee (Gerrit)

                                  unread,
                                  Jul 24, 2026, 7:04:00 PM (9 hours ago) Jul 24
                                  to Amya Singhal, David Bokan, Tim, Justin Lulejian, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                                  Attention needed from Amya Singhal and Justin Lulejian

                                  Kevin McNee voted Code-Review+1

                                  Code-Review+1
                                  Open in Gerrit

                                  Related details

                                  Attention is currently required from:
                                  • Amya Singhal
                                  • Justin Lulejian
                                  Submit Requirements:
                                    • requirement satisfiedCode-Coverage
                                    • requirement satisfiedCode-Owners
                                    • requirement satisfiedCode-Review
                                    • requirement satisfiedReview-Enforcement
                                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                    Gerrit-MessageType: comment
                                    Gerrit-Project: chromium/src
                                    Gerrit-Branch: main
                                    Gerrit-Change-Id: I7cdaae65a488610022b88c2fa4439de8c08212b7
                                    Gerrit-Change-Number: 8132639
                                    Gerrit-PatchSet: 18
                                    Gerrit-Owner: Amya Singhal <amyas...@google.com>
                                    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                                    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                                    Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                                    Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                                    Gerrit-Reviewer: Tim <tjud...@chromium.org>
                                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                    Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                                    Gerrit-Attention: Amya Singhal <amyas...@google.com>
                                    Gerrit-Comment-Date: Fri, 24 Jul 2026 23:03:52 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    open
                                    diffy

                                    Kevin McNee (Gerrit)

                                    unread,
                                    Jul 24, 2026, 7:06:07 PM (9 hours ago) Jul 24
                                    to Amya Singhal, David Bokan, Tim, Justin Lulejian, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                                    Attention needed from Amya Singhal and Justin Lulejian

                                    Kevin McNee voted Commit-Queue+2

                                    Commit-Queue+2
                                    Gerrit-Comment-Date: Fri, 24 Jul 2026 23:05:59 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    open
                                    diffy

                                    David Bokan (Gerrit)

                                    unread,
                                    Jul 24, 2026, 9:55:41 PM (6 hours ago) Jul 24
                                    to Amya Singhal, Kevin McNee, Tim, Justin Lulejian, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                                    Attention needed from Amya Singhal, Justin Lulejian and Kevin McNee

                                    David Bokan voted Commit-Queue+2

                                    Commit-Queue+2
                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    • Amya Singhal
                                    • Justin Lulejian
                                    • Kevin McNee
                                    Submit Requirements:
                                    • requirement satisfiedCode-Coverage
                                    • requirement satisfiedCode-Owners
                                    • requirement satisfiedCode-Review
                                    • requirement satisfiedReview-Enforcement
                                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                    Gerrit-MessageType: comment
                                    Gerrit-Project: chromium/src
                                    Gerrit-Branch: main
                                    Gerrit-Change-Id: I7cdaae65a488610022b88c2fa4439de8c08212b7
                                    Gerrit-Change-Number: 8132639
                                    Gerrit-PatchSet: 18
                                    Gerrit-Owner: Amya Singhal <amyas...@google.com>
                                    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
                                    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
                                    Gerrit-Reviewer: Justin Lulejian <jlul...@chromium.org>
                                    Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
                                    Gerrit-Reviewer: Tim <tjud...@chromium.org>
                                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                    Gerrit-Attention: Kevin McNee <mc...@chromium.org>
                                    Gerrit-Attention: Justin Lulejian <jlul...@chromium.org>
                                    Gerrit-Attention: Amya Singhal <amyas...@google.com>
                                    Gerrit-Comment-Date: Sat, 25 Jul 2026 01:55:28 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    open
                                    diffy

                                    David Bokan (Gerrit)

                                    unread,
                                    1:37 AM (3 hours ago) 1:37 AM
                                    to Amya Singhal, Kevin McNee, Tim, Justin Lulejian, Chromium LUCI CQ, Chromium Metrics Reviews, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, asvitkine...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
                                    Gerrit-Comment-Date: Sat, 25 Jul 2026 05:37:47 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    open
                                    diffy
                                    Reply all
                                    Reply to author
                                    Forward
                                    0 new messages