Dictation: Perform component extension installation [chromium/src : main]

0 views
Skip to first unread message

David Bokan (Gerrit)

unread,
Jun 24, 2026, 12:59:32 AM (yesterday) Jun 24
to Kevin McNee, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
Attention needed from Amya Singhal, Andrea Orru and Kevin McNee

David Bokan voted and added 1 comment

Votes added by David Bokan

Commit-Queue+1

1 comment

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

+mcnee@, amyasinghal@ for overall CL
+andreaorru@ for gut check that component extension is being added correctly

Open in Gerrit

Related details

Attention is currently required from:
  • Amya Singhal
  • Andrea Orru
  • Kevin McNee
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: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
Gerrit-Change-Number: 7990595
Gerrit-PatchSet: 3
Gerrit-Owner: David Bokan <bo...@chromium.org>
Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
Gerrit-Reviewer: Andrea Orru <andre...@chromium.org>
Gerrit-Reviewer: David Bokan <bo...@chromium.org>
Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
Gerrit-Attention: Kevin McNee <mc...@chromium.org>
Gerrit-Attention: Andrea Orru <andre...@chromium.org>
Gerrit-Attention: Amya Singhal <amyas...@google.com>
Gerrit-Comment-Date: Wed, 24 Jun 2026 04:59:22 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Kevin McNee (Gerrit)

unread,
Jun 24, 2026, 1:06:06 PM (yesterday) Jun 24
to David Bokan, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
Attention needed from Amya Singhal, Andrea Orru and David Bokan

Kevin McNee voted and added 4 comments

Votes added by Kevin McNee

Code-Review+1

4 comments

Patchset-level comments
Kevin McNee . resolved

LGTM

Commit Message
Line 17, Patchset 3 (Latest):`--enable-features=Dictation:use_component_extension/false`
Kevin McNee . unresolved

Not necessarily for this CL, but as a future suggestion, since the feature flag will eventually go away, maybe we could have ListenerStreamProvider select the extension to dispatch to instead of broadcasting.

Something like: check the extensions listed in --allowlisted-extension-id followed by the production extension id. Dispatch to the first one that listens for the event.

File chrome/browser/dictation/dictation_keyed_service.cc
Line 115, Patchset 3 (Latest): // Until the connector extension is available consider the feature disabled.
Kevin McNee . unresolved

Optionally: I wonder if we would get essentially this logic for free by checking EventRouter::HasEventListener for the start stream event?

File chrome/browser/dictation/test_util.h
Line 34, Patchset 3 (Latest):base::test::ScopedFeatureList CreateEnablingFeatureList();
Kevin McNee . unresolved

Optional nit: Although it won't make a practical difference, for consistency, shall we use this in chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc as well?

Open in Gerrit

Related details

Attention is currently required from:
  • Amya Singhal
  • Andrea Orru
  • David Bokan
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: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
    Gerrit-Change-Number: 7990595
    Gerrit-PatchSet: 3
    Gerrit-Owner: David Bokan <bo...@chromium.org>
    Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
    Gerrit-Reviewer: Andrea Orru <andre...@chromium.org>
    Gerrit-Reviewer: David Bokan <bo...@chromium.org>
    Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
    Gerrit-Attention: David Bokan <bo...@chromium.org>
    Gerrit-Attention: Andrea Orru <andre...@chromium.org>
    Gerrit-Attention: Amya Singhal <amyas...@google.com>
    Gerrit-Comment-Date: Wed, 24 Jun 2026 17:05:49 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Bokan (Gerrit)

    unread,
    Jun 24, 2026, 1:51:35 PM (yesterday) Jun 24
    to Kevin McNee, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
    Attention needed from Amya Singhal, Andrea Orru and Kevin McNee

    David Bokan added 3 comments

    Commit Message
    Line 17, Patchset 3:`--enable-features=Dictation:use_component_extension/false`
    Kevin McNee . resolved

    Not necessarily for this CL, but as a future suggestion, since the feature flag will eventually go away, maybe we could have ListenerStreamProvider select the extension to dispatch to instead of broadcasting.

    Something like: check the extensions listed in --allowlisted-extension-id followed by the production extension id. Dispatch to the first one that listens for the event.

    David Bokan

    since the feature flag will eventually go away,

    An optimist, I see 😊

    Dispatch to the first one that listens for the event.

    Is it possible to query the extension for having registered a specific listener type?

    Another alternative is to just replace it with a command line flag when removing the base::Feature.

    File chrome/browser/dictation/dictation_keyed_service.cc
    Line 115, Patchset 3: // Until the connector extension is available consider the feature disabled.
    Kevin McNee . resolved

    Optionally: I wonder if we would get essentially this logic for free by checking EventRouter::HasEventListener for the start stream event?

    David Bokan

    I guess this answers my question above.

    It's an option - I see we can also register an observer to watch for an event listener being registered too...

    I don't feel too strongly but slightly prefer this approach because 1) it's already written 2) is more explicit 3) seems like it'd be easier to debug / diagnose where an issue lies when things break.

    But we can reevaluate later.

    File chrome/browser/dictation/test_util.h
    Line 34, Patchset 3:base::test::ScopedFeatureList CreateEnablingFeatureList();
    Kevin McNee . resolved

    Optional nit: Although it won't make a practical difference, for consistency, shall we use this in chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc as well?

    David Bokan

    Thanks, done.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Amya Singhal
    • Andrea Orru
    • Kevin McNee
    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: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
      Gerrit-Change-Number: 7990595
      Gerrit-PatchSet: 5
      Gerrit-Owner: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
      Gerrit-Reviewer: Andrea Orru <andre...@chromium.org>
      Gerrit-Reviewer: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
      Gerrit-Attention: Kevin McNee <mc...@chromium.org>
      Gerrit-Attention: Andrea Orru <andre...@chromium.org>
      Gerrit-Attention: Amya Singhal <amyas...@google.com>
      Gerrit-Comment-Date: Wed, 24 Jun 2026 17:51:21 +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,
      11:18 AM (10 hours ago) 11:18 AM
      to Kevin McNee, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
      Attention needed from Amya Singhal, Andrea Orru and Kevin McNee

      David Bokan added 1 comment

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

      andreaorru@: ping

      Gerrit-Comment-Date: Thu, 25 Jun 2026 15:18:24 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      David Bokan (Gerrit)

      unread,
      4:25 PM (5 hours ago) 4:25 PM
      to Kevin McNee, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
      Attention needed from Amya Singhal, Andrea Orru and Kevin McNee

      David Bokan voted and added 1 comment

      Votes added by David Bokan

      Commit-Queue+2

      1 comment

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

      Going to land to avoid rebase conflicts but Andrea, if you could PTAL and let me know if anything jumps out. (otherwise we'll test it live!)

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Amya Singhal
      • Andrea Orru
      • Kevin McNee
      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: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
      Gerrit-Change-Number: 7990595
      Gerrit-PatchSet: 7
      Gerrit-Owner: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
      Gerrit-Reviewer: Andrea Orru <andre...@chromium.org>
      Gerrit-Reviewer: David Bokan <bo...@chromium.org>
      Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
      Gerrit-Attention: Kevin McNee <mc...@chromium.org>
      Gerrit-Attention: Andrea Orru <andre...@chromium.org>
      Gerrit-Attention: Amya Singhal <amyas...@google.com>
      Gerrit-Comment-Date: Thu, 25 Jun 2026 20:25:09 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      David Bokan (Gerrit)

      unread,
      4:38 PM (5 hours ago) 4:38 PM
      to Kevin McNee, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
      Attention needed from Amya Singhal, Andrea Orru and Kevin McNee

      David Bokan voted Auto-Submit+1

      Auto-Submit+1
      Gerrit-Comment-Date: Thu, 25 Jun 2026 20:38:36 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kevin McNee (Gerrit)

      unread,
      4:40 PM (5 hours ago) 4:40 PM
      to David Bokan, Amya Singhal, Andrea Orru, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org
      Attention needed from Amya Singhal, Andrea Orru and David Bokan

      Kevin McNee voted

      Code-Review+1
      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Amya Singhal
      • Andrea Orru
      • David Bokan
      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: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
        Gerrit-Change-Number: 7990595
        Gerrit-PatchSet: 7
        Gerrit-Owner: David Bokan <bo...@chromium.org>
        Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
        Gerrit-Reviewer: Andrea Orru <andre...@chromium.org>
        Gerrit-Reviewer: David Bokan <bo...@chromium.org>
        Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
        Gerrit-Attention: David Bokan <bo...@chromium.org>
        Gerrit-Attention: Andrea Orru <andre...@chromium.org>
        Gerrit-Attention: Amya Singhal <amyas...@google.com>
        Gerrit-Comment-Date: Thu, 25 Jun 2026 20:40:14 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        4:46 PM (5 hours ago) 4:46 PM
        to David Bokan, Kevin McNee, Amya Singhal, Andrea Orru, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org

        Chromium LUCI CQ submitted the change

        Change information

        Commit message:
        Dictation: Perform component extension installation

        This CL implements the installation of the downloaded component
        extension into a profile's extensions. We do this by waiting for the
        download, adding the extension, then enabling the feature.

        For local development and testing we load the connector extension as a
        regular extension. To preserve this capability we add a feature param
        which skips the installation process:

        `--enable-features=Dictation:use_component_extension/false`
        Change-Id: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
        Bug: b:525858193
        Reviewed-by: Kevin McNee <mc...@chromium.org>
        Auto-Submit: David Bokan <bo...@chromium.org>
        Commit-Queue: Kevin McNee <mc...@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#1652689}
        Files:
        • M chrome/browser/dictation/BUILD.gn
        • A chrome/browser/dictation/connector_component_extension.cc
        • A chrome/browser/dictation/connector_component_extension.h
        • M chrome/browser/dictation/dictation_keyed_service.cc
        • M chrome/browser/dictation/dictation_keyed_service.h
        • M chrome/browser/dictation/dictation_keyed_service_browsertest.cc
        • M chrome/browser/dictation/dictation_keyed_service_unittest.cc
        • M chrome/browser/dictation/features.cc
        • M chrome/browser/dictation/features.h
        • M chrome/browser/dictation/policy_browsertest.cc
        • M chrome/browser/dictation/session_ui_impl_browsertest.cc
        • M chrome/browser/dictation/test_util.cc
        • M chrome/browser/dictation/test_util.h
        • M chrome/browser/extensions/api/dictation_private/dictation_private_apitest.cc
        • M chrome/test/data/extensions/dictation/README.md
        Change size: M
        Delta: 15 files changed, 214 insertions(+), 26 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Kevin McNee
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Ib7fd7b029d60da3e47eac174ad7cbc6136206623
        Gerrit-Change-Number: 7990595
        Gerrit-PatchSet: 8
        Gerrit-Owner: David Bokan <bo...@chromium.org>
        Gerrit-Reviewer: Amya Singhal <amyas...@google.com>
        Gerrit-Reviewer: Andrea Orru <andre...@chromium.org>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: David Bokan <bo...@chromium.org>
        Gerrit-Reviewer: Kevin McNee <mc...@chromium.org>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages