Package AIM eligibility WebUI in a component extension [chromium/src : main]

0 views
Skip to first unread message

Moe Ahmadi (Gerrit)

unread,
Jun 15, 2026, 9:29:47 AM (12 days ago) Jun 15
to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
Attention needed from Colin Blundell, Demetrios Papadopoulos, Devlin Cronin and Nasko Oskov

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Colin Blundell
  • Demetrios Papadopoulos
  • Devlin Cronin
  • Nasko Oskov
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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
Gerrit-Change-Number: 7921547
Gerrit-PatchSet: 8
Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
Gerrit-CC: Chris Thompson <cth...@chromium.org>
Gerrit-CC: Duncan Mercer <mer...@google.com>
Gerrit-CC: Ryan Sultanem <rs...@google.com>
Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Attention: Nasko Oskov <na...@chromium.org>
Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Attention: Colin Blundell <blun...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Jun 2026 13:29:40 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Colin Blundell (Gerrit)

unread,
Jun 15, 2026, 10:33:14 AM (12 days ago) Jun 15
to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
Attention needed from Demetrios Papadopoulos, Devlin Cronin, Moe Ahmadi and Nasko Oskov

Colin Blundell added 1 comment

Patchset-level comments
File-level comment, Patchset 8 (Latest):
Colin Blundell . resolved

Thanks! Moe, what kind of feedback are you looking for here at this point? e.g., where on the spectrum is this from (a) POC that you're looking to get folks' insight on the high-level approach and how to remove any hacks to (z) CL that you want to land in the codebase and want folks to review as such?

Open in Gerrit

Related details

Attention is currently required from:
  • Demetrios Papadopoulos
  • Devlin Cronin
  • Moe Ahmadi
  • Nasko Oskov
Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
Gerrit-Attention: Nasko Oskov <na...@chromium.org>
Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Jun 2026 14:32:54 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Moe Ahmadi (Gerrit)

unread,
Jun 15, 2026, 10:46:01 AM (12 days ago) Jun 15
to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
Attention needed from Colin Blundell, Demetrios Papadopoulos, Devlin Cronin and Nasko Oskov

Moe Ahmadi added 1 comment

Patchset-level comments
Colin Blundell . resolved

Thanks! Moe, what kind of feedback are you looking for here at this point? e.g., where on the spectrum is this from (a) POC that you're looking to get folks' insight on the high-level approach and how to remove any hacks to (z) CL that you want to land in the codebase and want folks to review as such?

Moe Ahmadi

Hi Colin, I'd like to land it in the codebase with the understanding that we will continue iterating on it. I added information about the goals in the bug.

Open in Gerrit

Related details

Attention is currently required from:
  • Colin Blundell
  • Demetrios Papadopoulos
  • Devlin Cronin
  • Nasko Oskov
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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
Gerrit-Change-Number: 7921547
Gerrit-PatchSet: 9
Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
Gerrit-CC: Chris Thompson <cth...@chromium.org>
Gerrit-CC: Duncan Mercer <mer...@google.com>
Gerrit-CC: Ryan Sultanem <rs...@google.com>
Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Attention: Nasko Oskov <na...@chromium.org>
Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Attention: Colin Blundell <blun...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Jun 2026 14:45:45 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Colin Blundell <blun...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Colin Blundell (Gerrit)

unread,
Jun 15, 2026, 11:16:34 AM (12 days ago) Jun 15
to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
Attention needed from Demetrios Papadopoulos, Devlin Cronin, Moe Ahmadi and Nasko Oskov

Colin Blundell added 1 comment

Patchset-level comments
Colin Blundell . resolved

Thanks! Moe, what kind of feedback are you looking for here at this point? e.g., where on the spectrum is this from (a) POC that you're looking to get folks' insight on the high-level approach and how to remove any hacks to (z) CL that you want to land in the codebase and want folks to review as such?

Moe Ahmadi

Hi Colin, I'd like to land it in the codebase with the understanding that we will continue iterating on it. I added information about the goals in the bug.

Colin Blundell

Thanks! I defer to the other reviewers on the technical review (let me know if there was anything that you wanted me to look at on the technical side!).

Open in Gerrit

Related details

Attention is currently required from:
  • Demetrios Papadopoulos
  • Devlin Cronin
  • Moe Ahmadi
  • Nasko Oskov
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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
Gerrit-Change-Number: 7921547
Gerrit-PatchSet: 10
Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
Gerrit-CC: Chris Thompson <cth...@chromium.org>
Gerrit-CC: Duncan Mercer <mer...@google.com>
Gerrit-CC: Ryan Sultanem <rs...@google.com>
Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
Gerrit-Attention: Nasko Oskov <na...@chromium.org>
Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Jun 2026 15:16:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Moe Ahmadi <mah...@chromium.org>
Comment-In-Reply-To: Colin Blundell <blun...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Demetrios Papadopoulos (Gerrit)

unread,
Jun 15, 2026, 3:04:37 PM (12 days ago) Jun 15
to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

Demetrios Papadopoulos added 1 comment

File chrome/browser/resources/component_extension_resources.grd
Line 18, Patchset 12 (Latest): <include name="IDR_AIM_ELIGIBILITY_EXTENSION_HTML" file="omnibox/aim_eligibility/aim_eligibility.html" resource_path="aim_eligibility_extension/aim_eligibility.html" type="BINDATA" />
<include name="IDR_AIM_ELIGIBILITY_EXTENSION_APP_JS" file="${root_gen_dir}/chrome/browser/resources/omnibox_aim_eligibility_extension/app.rollup.js" use_base_dir="false" resource_path="aim_eligibility_extension/app.js" type="BINDATA" />
Demetrios Papadopoulos . unresolved

We have moved away from adding WebuI files (or component extension files) in checked-in grd files. Can these not be included with the modern ways, via properly hooking up the output of build_webui() to the build?

See example from the PDF Viewer extension, https://source.chromium.org/search?q=%22chrome%2Fbrowser%2Fresources%2Fpdf:resources%22%20-file:out%2F%20-file:go%2F%20-file:luci%2F%20-file:third_party%2F%20-file:appengine%2F%20-file:v8%2F&ss=chromium

Open in Gerrit

Related details

Attention is currently required from:
  • Devlin Cronin
  • Moe Ahmadi
  • Nasko Oskov
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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
    Gerrit-Change-Number: 7921547
    Gerrit-PatchSet: 12
    Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
    Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
    Gerrit-CC: Chris Thompson <cth...@chromium.org>
    Gerrit-CC: Duncan Mercer <mer...@google.com>
    Gerrit-CC: Ryan Sultanem <rs...@google.com>
    Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Nasko Oskov <na...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Jun 2026 19:04:23 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Demetrios Papadopoulos (Gerrit)

    unread,
    Jun 15, 2026, 3:06:25 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

    Demetrios Papadopoulos added 3 comments

    Commit Message
    Line 7, Patchset 12 (Latest):Package AIM eligibility WebUI in a component extension
    Demetrios Papadopoulos . unresolved

    IIUC this CL simply adds a dummy expty extension, it does not actually package the existing WebUI as an extension, no? Can you clarify? If this is the first part of a CL that follows, maybe suffix with `part 1` ?
    ```suggestion
    Package AIM eligibility WebUI in a component extension, part 1.
    ```

    Line 24, Patchset 12 (Latest):tooling to bundle the extension's JS resouces. This automatically
    Demetrios Papadopoulos . unresolved

    Please fix this WARNING reported by Spellchecker: "resouces" is a possible misspelling of "resources".

    To bypass Spellchecker, ad...

    "resouces" is a possible misspelling of "resources".

    To bypass Spellchecker, add a footer with DISABLE_SPELLCHECKER

    Line 23, Patchset 12 (Latest):Additionally, the build process now uses the standard bundle_js Rollup
    tooling to bundle the extension's JS resouces. This automatically
    Demetrios Papadopoulos . unresolved

    I don't see these changes anymore in this CL. Can you clarify? Were these moved to a follow up CL?

    Gerrit-Comment-Date: Mon, 15 Jun 2026 19:06:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Demetrios Papadopoulos (Gerrit)

    unread,
    Jun 15, 2026, 3:14:31 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

    Demetrios Papadopoulos added 1 comment

    File chrome/browser/resources/BUILD.gn
    Line 245, Patchset 12 (Latest): bundle_js("bundle_aim_eligibility_extension") {
    host = "chrome-extension://kgjeljgkbckpoekmgjfplammhcggiiaf"
    input = rebase_path(
    "$root_gen_dir/chrome/browser/resources/omnibox/aim_eligibility/tsc",
    root_build_dir)
    js_module_in_files = [ "app.js" ]
    out_folder = "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension"
    excludes = [ "chrome://resources/mojo/mojo/public/js/bindings.js" ]
    deps = [ "//chrome/browser/resources/omnibox/aim_eligibility:build_grdp" ]
    }

    copy("copy_aim_eligibility_extension_app_js") {
    sources = [ "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension/app.rollup.js" ]
    outputs = [ "$root_out_dir/aim_eligibility_extension/app.js" ]
    deps = [ ":bundle_aim_eligibility_extension" ]
    }
    Demetrios Papadopoulos . unresolved

    Can this code be moved to chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn instead? It seems to belong there better, no? Doing this here seems a bit hacky.

    For example, is using the bundled code for both optimize_webui false/true correct? This does not match what the corresponding WebUI does.

    See other similar comment in the .grd file about properly using `build_webui()`, in chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn to achieve a more common build pipeline that works as expected for both optimize_webui cases.

    Gerrit-Comment-Date: Mon, 15 Jun 2026 19:14:17 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nasko Oskov (Gerrit)

    unread,
    Jun 15, 2026, 5:52:03 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin and Moe Ahmadi

    Nasko Oskov added 2 comments

    File content/browser/renderer_host/render_frame_host_impl.cc
    Line 18615, Patchset 12 (Latest): if (site_instance_->GetSiteInfo().site_url().SchemeIs("chrome-extension")) {
    Nasko Oskov . unresolved

    This is a layering violation and should not be done here. Whether this is extension or not is something to be delegated to the embedder.

    File content/public/browser/content_browser_client.h
    Line 859, Patchset 12 (Latest): BrowserContext* browser_context);
    Nasko Oskov . unresolved

    The //content/ layer should not deal and know about extensions. They are a higher level abstraction. Any reason why the API is not about any URL?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    • Moe Ahmadi
    Gerrit-Comment-Date: Mon, 15 Jun 2026 21:51:54 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Moe Ahmadi (Gerrit)

    unread,
    Jun 15, 2026, 6:59:11 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Demetrios Papadopoulos, Devlin Cronin and Nasko Oskov

    Moe Ahmadi added 7 comments

    Commit Message
    Line 7, Patchset 12:Package AIM eligibility WebUI in a component extension
    Demetrios Papadopoulos . unresolved

    IIUC this CL simply adds a dummy expty extension, it does not actually package the existing WebUI as an extension, no? Can you clarify? If this is the first part of a CL that follows, maybe suffix with `part 1` ?
    ```suggestion
    Package AIM eligibility WebUI in a component extension, part 1.
    ```

    Moe Ahmadi

    this CL does package the existing WebUI into a private component extension which works by navigating to its url.

    Line 24, Patchset 12:tooling to bundle the extension's JS resouces. This automatically
    Demetrios Papadopoulos . resolved

    Please fix this WARNING reported by Spellchecker: "resouces" is a possible misspelling of "resources".

    To bypass Spellchecker, ad...

    "resouces" is a possible misspelling of "resources".

    To bypass Spellchecker, add a footer with DISABLE_SPELLCHECKER

    Moe Ahmadi

    Done

    Line 23, Patchset 12:Additionally, the build process now uses the standard bundle_js Rollup

    tooling to bundle the extension's JS resouces. This automatically
    Demetrios Papadopoulos . unresolved

    I don't see these changes anymore in this CL. Can you clarify? Were these moved to a follow up CL?

    Moe Ahmadi

    `bundle_js` changes are in this CL.

    File chrome/browser/resources/BUILD.gn
    Line 245, Patchset 12: bundle_js("bundle_aim_eligibility_extension") {

    host = "chrome-extension://kgjeljgkbckpoekmgjfplammhcggiiaf"
    input = rebase_path(
    "$root_gen_dir/chrome/browser/resources/omnibox/aim_eligibility/tsc",
    root_build_dir)
    js_module_in_files = [ "app.js" ]
    out_folder = "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension"
    excludes = [ "chrome://resources/mojo/mojo/public/js/bindings.js" ]
    deps = [ "//chrome/browser/resources/omnibox/aim_eligibility:build_grdp" ]
    }

    copy("copy_aim_eligibility_extension_app_js") {
    sources = [ "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension/app.rollup.js" ]
    outputs = [ "$root_out_dir/aim_eligibility_extension/app.js" ]
    deps = [ ":bundle_aim_eligibility_extension" ]
    }
    Demetrios Papadopoulos . resolved

    Can this code be moved to chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn instead? It seems to belong there better, no? Doing this here seems a bit hacky.

    For example, is using the bundled code for both optimize_webui false/true correct? This does not match what the corresponding WebUI does.

    See other similar comment in the .grd file about properly using `build_webui()`, in chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn to achieve a more common build pipeline that works as expected for both optimize_webui cases.

    Moe Ahmadi

    Done. Moved the grit resource target to `aim_eligibility_extension/BUILD.gn`. I had difficulty using `build_webui()` with compiling resources from a sibling directory and used lower-level webui_ts_library and optimize_webui targets directly.

    bundling the code regardless of `optimize_webui false/true` was intended to avoid having to list all the JS resources. Obviously if we can get to use build_webui() and conditionally bundle or not it would be ideal.

    File chrome/browser/resources/component_extension_resources.grd
    Line 18, Patchset 12: <include name="IDR_AIM_ELIGIBILITY_EXTENSION_HTML" file="omnibox/aim_eligibility/aim_eligibility.html" resource_path="aim_eligibility_extension/aim_eligibility.html" type="BINDATA" />

    <include name="IDR_AIM_ELIGIBILITY_EXTENSION_APP_JS" file="${root_gen_dir}/chrome/browser/resources/omnibox_aim_eligibility_extension/app.rollup.js" use_base_dir="false" resource_path="aim_eligibility_extension/app.js" type="BINDATA" />
    Demetrios Papadopoulos . resolved

    We have moved away from adding WebuI files (or component extension files) in checked-in grd files. Can these not be included with the modern ways, via properly hooking up the output of build_webui() to the build?

    See example from the PDF Viewer extension, https://source.chromium.org/search?q=%22chrome%2Fbrowser%2Fresources%2Fpdf:resources%22%20-file:out%2F%20-file:go%2F%20-file:luci%2F%20-file:third_party%2F%20-file:appengine%2F%20-file:v8%2F&ss=chromium

    Moe Ahmadi

    Done, thanks for the example.

    File content/browser/renderer_host/render_frame_host_impl.cc
    Line 18615, Patchset 12: if (site_instance_->GetSiteInfo().site_url().SchemeIs("chrome-extension")) {
    Nasko Oskov . resolved

    This is a layering violation and should not be done here. Whether this is extension or not is something to be delegated to the embedder.

    Moe Ahmadi

    Done. renamed the function to a generic `ShouldAllowMojoJsBindingsForURL()`

    File content/public/browser/content_browser_client.h
    Line 859, Patchset 12: BrowserContext* browser_context);
    Nasko Oskov . resolved

    The //content/ layer should not deal and know about extensions. They are a higher level abstraction. Any reason why the API is not about any URL?

    Moe Ahmadi

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Demetrios Papadopoulos
    • Devlin Cronin
    • Nasko Oskov
    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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
    Gerrit-Change-Number: 7921547
    Gerrit-PatchSet: 15
    Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
    Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
    Gerrit-CC: Chris Thompson <cth...@chromium.org>
    Gerrit-CC: Duncan Mercer <mer...@google.com>
    Gerrit-CC: Ryan Sultanem <rs...@google.com>
    Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Nasko Oskov <na...@chromium.org>
    Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Jun 2026 22:59:01 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Nasko Oskov <na...@chromium.org>
    Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Demetrios Papadopoulos (Gerrit)

    unread,
    Jun 15, 2026, 8:15:54 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

    Demetrios Papadopoulos added 6 comments

    Commit Message
    Line 7, Patchset 12:Package AIM eligibility WebUI in a component extension
    Demetrios Papadopoulos . resolved

    IIUC this CL simply adds a dummy expty extension, it does not actually package the existing WebUI as an extension, no? Can you clarify? If this is the first part of a CL that follows, maybe suffix with `part 1` ?
    ```suggestion
    Package AIM eligibility WebUI in a component extension, part 1.
    ```

    Moe Ahmadi

    this CL does package the existing WebUI into a private component extension which works by navigating to its url.

    Demetrios Papadopoulos

    Ack. I wasn't expecting the build setup for this to be in chorme/browser/resources/BUILD.gn so I missed it when I made that comment, realized it later.

    Line 23, Patchset 12:Additionally, the build process now uses the standard bundle_js Rollup
    tooling to bundle the extension's JS resouces. This automatically
    Demetrios Papadopoulos . resolved

    I don't see these changes anymore in this CL. Can you clarify? Were these moved to a follow up CL?

    Moe Ahmadi

    `bundle_js` changes are in this CL.

    Demetrios Papadopoulos

    Acknowledged

    File chrome/browser/resources/BUILD.gn
    Line 245, Patchset 12: bundle_js("bundle_aim_eligibility_extension") {
    host = "chrome-extension://kgjeljgkbckpoekmgjfplammhcggiiaf"
    input = rebase_path(
    "$root_gen_dir/chrome/browser/resources/omnibox/aim_eligibility/tsc",
    root_build_dir)
    js_module_in_files = [ "app.js" ]
    out_folder = "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension"
    excludes = [ "chrome://resources/mojo/mojo/public/js/bindings.js" ]
    deps = [ "//chrome/browser/resources/omnibox/aim_eligibility:build_grdp" ]
    }

    copy("copy_aim_eligibility_extension_app_js") {
    sources = [ "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension/app.rollup.js" ]
    outputs = [ "$root_out_dir/aim_eligibility_extension/app.js" ]
    deps = [ ":bundle_aim_eligibility_extension" ]
    }
    Demetrios Papadopoulos . unresolved

    Can this code be moved to chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn instead? It seems to belong there better, no? Doing this here seems a bit hacky.

    For example, is using the bundled code for both optimize_webui false/true correct? This does not match what the corresponding WebUI does.

    See other similar comment in the .grd file about properly using `build_webui()`, in chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn to achieve a more common build pipeline that works as expected for both optimize_webui cases.

    Moe Ahmadi

    Done. Moved the grit resource target to `aim_eligibility_extension/BUILD.gn`. I had difficulty using `build_webui()` with compiling resources from a sibling directory and used lower-level webui_ts_library and optimize_webui targets directly.

    bundling the code regardless of `optimize_webui false/true` was intended to avoid having to list all the JS resources. Obviously if we can get to use build_webui() and conditionally bundle or not it would be ideal.

    Demetrios Papadopoulos

    I had difficulty using build_webui() with compiling resources from a sibling directory and used lower-level webui_ts_library and optimize_webui targets directly.

    Curious what did you run into. Indeed using build_webui() to point to files that belong to non-child folders is not common, so some assumptions might be broken.

    Having said that, I think we should follow-up with necessary changes to make this work properly because what is done here is a one-off build codepath and seems is a bit hacky (on top of not respecting optimize_webui, possibly not minifying files at all)

    File chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn
    Line 8, Patchset 15 (Latest):
    Demetrios Papadopoulos . unresolved

    Let's also add `visibility` rules for all targets below to make sure only targets that are supposed to be exposed outside of this file are actually exposed publicly? (this is taken care by build_webui() normally).

    Line 9, Patchset 15 (Latest):bundle_js("bundle_js") {
    Demetrios Papadopoulos . unresolved

    Note that bundling does not do any minifying, removing comments etc. So this custom one-off build setup, IIUC will package completely unminified code into the build. Can you double check? And if so, is this OK?

    Do you need to also invoke minify_js() below?

    Line 15, Patchset 15 (Latest): out_folder = "$target_gen_dir/bundled"
    Demetrios Papadopoulos . unresolved
    Can this point to the final folder directly? See follow-up comment as well
    ```suggestion
    out_folder = "$target_gen_dir/resources"
    ```
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    • Moe Ahmadi
    • Nasko Oskov
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Nasko Oskov <na...@chromium.org>
    Gerrit-Comment-Date: Tue, 16 Jun 2026 00:15:38 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Moe Ahmadi <mah...@chromium.org>
    Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Demetrios Papadopoulos (Gerrit)

    unread,
    Jun 15, 2026, 8:17:13 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

    Demetrios Papadopoulos added 1 comment

    File chrome/browser/extensions/component_loader.cc
    Line 624, Patchset 15 (Latest): AddAimEligibilityExtension();
    Demetrios Papadopoulos . unresolved

    I am a bit concerned that the experimenal component extension that is added in this CL is not guarded by any feature flag. Is this intentional? Can you highlight this in the CL description?

    Or alternatively, should this be placed behind a feature flag?

    Gerrit-Comment-Date: Tue, 16 Jun 2026 00:17:03 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Demetrios Papadopoulos (Gerrit)

    unread,
    Jun 15, 2026, 9:15:27 PM (12 days ago) Jun 15
    to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

    Demetrios Papadopoulos added 1 comment

    File chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn
    Line 7, Patchset 15 (Latest):import("//ui/webui/resources/tools/generate_grd.gni")
    Demetrios Papadopoulos . unresolved

    Posting a possible (simpler) alternative to package the existing WebUI as an extension. Would the following work?

    Leverage the already produced `out/gchrome/gen/chrome/browser/resources/omnibox/aim_eligibility/resources.grdp` file, and simply pass it to a new `generate_grd()` target in this file to produce `out/gchrome/gen/chrome/browser/resources/omnibox/aim_eligibility_extension/resources.grd` file.

    Then you can remove `bundle_js()` from here, and you would still get bundled+minified resources when optimize_webui=true, and non-bundled, non-minified when optimize_webui=false. The registration of the resources in chrome/browser/extensions/chrome_component_extension_resource_manager.cc would work seamlessly for both cases.

    WDYT?

    Gerrit-Comment-Date: Tue, 16 Jun 2026 01:15:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Moe Ahmadi (Gerrit)

    unread,
    Jun 16, 2026, 7:41:56 AM (11 days ago) Jun 16
    to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Demetrios Papadopoulos, Devlin Cronin and Nasko Oskov

    Moe Ahmadi added 6 comments

    File chrome/browser/extensions/component_loader.cc
    Line 624, Patchset 15: AddAimEligibilityExtension();
    Demetrios Papadopoulos . resolved

    I am a bit concerned that the experimenal component extension that is added in this CL is not guarded by any feature flag. Is this intentional? Can you highlight this in the CL description?

    Or alternatively, should this be placed behind a feature flag?

    Moe Ahmadi

    Good callout, done.

    File chrome/browser/resources/BUILD.gn
    Moe Ahmadi

    you're 100% right we should follow-up and fix this properly. that's essentially the goal of this proof of concept. I filed b/524396928 describing issues I've been experiencing. If that's OK with you, let's track the problem there for a follow-up change.

    File chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn
    Line 7, Patchset 15:import("//ui/webui/resources/tools/generate_grd.gni")
    Demetrios Papadopoulos . unresolved

    Posting a possible (simpler) alternative to package the existing WebUI as an extension. Would the following work?

    Leverage the already produced `out/gchrome/gen/chrome/browser/resources/omnibox/aim_eligibility/resources.grdp` file, and simply pass it to a new `generate_grd()` target in this file to produce `out/gchrome/gen/chrome/browser/resources/omnibox/aim_eligibility_extension/resources.grd` file.

    Then you can remove `bundle_js()` from here, and you would still get bundled+minified resources when optimize_webui=true, and non-bundled, non-minified when optimize_webui=false. The registration of the resources in chrome/browser/extensions/chrome_component_extension_resource_manager.cc would work seamlessly for both cases.

    WDYT?

    Moe Ahmadi

    Thanks for the suggestion! Unfortunately reusing the sibling's resources.grdp didn't not work because the extension loader expects all resources in the PAK to be prefixed with the extension's directory name (aim_eligibility_extension/manifest.json, etc). The sibling WebUI's resources.grdp defines unprefixed paths (aim_eligibility.html, etc) to serve them at the root of chrome://omnibox/.

    If we include the sibling WebUI's resources.grdp directly, GRIT compiles them unprefixed. We cannot prefix them in the sibling's build target either without breaking the chrome://omnibox/ WebUI.

    I could be holding this wrong, so please share your thoughts and ideas in b/524396928 to follow this change.

    Line 8, Patchset 15:
    Demetrios Papadopoulos . resolved

    Let's also add `visibility` rules for all targets below to make sure only targets that are supposed to be exposed outside of this file are actually exposed publicly? (this is taken care by build_webui() normally).

    Moe Ahmadi

    Done

    Line 9, Patchset 15:bundle_js("bundle_js") {
    Demetrios Papadopoulos . unresolved

    Note that bundling does not do any minifying, removing comments etc. So this custom one-off build setup, IIUC will package completely unminified code into the build. Can you double check? And if so, is this OK?

    Do you need to also invoke minify_js() below?

    Moe Ahmadi

    you're 100% correct, minify_js is never invoked. neither this or having to bundle JS in dev builds is OK. however I'm not sure if it's worth spending time replicating everything build_webui() does or invest in make build_webui() work in a follow-up (b/524396928). WDYT?

    Line 15, Patchset 15: out_folder = "$target_gen_dir/bundled"
    Demetrios Papadopoulos . unresolved
    Can this point to the final folder directly? See follow-up comment as well
    ```suggestion
    out_folder = "$target_gen_dir/resources"
    ```
    Moe Ahmadi

    we would still need a copy target to rename app.rollup.js to app.js inside that directory, no?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Demetrios Papadopoulos
    • Devlin Cronin
    • Nasko Oskov
    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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
    Gerrit-Change-Number: 7921547
    Gerrit-PatchSet: 16
    Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
    Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
    Gerrit-CC: Chris Thompson <cth...@chromium.org>
    Gerrit-CC: Duncan Mercer <mer...@google.com>
    Gerrit-CC: Ryan Sultanem <rs...@google.com>
    Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Nasko Oskov <na...@chromium.org>
    Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Comment-Date: Tue, 16 Jun 2026 11:41:46 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Demetrios Papadopoulos (Gerrit)

    unread,
    Jun 16, 2026, 1:40:15 PM (11 days ago) Jun 16
    to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

    Demetrios Papadopoulos added 4 comments

    File chrome/browser/resources/BUILD.gn
    Line 245, Patchset 12: bundle_js("bundle_aim_eligibility_extension") {
    host = "chrome-extension://kgjeljgkbckpoekmgjfplammhcggiiaf"
    input = rebase_path(
    "$root_gen_dir/chrome/browser/resources/omnibox/aim_eligibility/tsc",
    root_build_dir)
    js_module_in_files = [ "app.js" ]
    out_folder = "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension"
    excludes = [ "chrome://resources/mojo/mojo/public/js/bindings.js" ]
    deps = [ "//chrome/browser/resources/omnibox/aim_eligibility:build_grdp" ]
    }

    copy("copy_aim_eligibility_extension_app_js") {
    sources = [ "$root_gen_dir/chrome/browser/resources/omnibox_aim_eligibility_extension/app.rollup.js" ]
    outputs = [ "$root_out_dir/aim_eligibility_extension/app.js" ]
    deps = [ ":bundle_aim_eligibility_extension" ]
    }
    Demetrios Papadopoulos . resolved

    Can this code be moved to chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn instead? It seems to belong there better, no? Doing this here seems a bit hacky.

    For example, is using the bundled code for both optimize_webui false/true correct? This does not match what the corresponding WebUI does.

    See other similar comment in the .grd file about properly using `build_webui()`, in chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn to achieve a more common build pipeline that works as expected for both optimize_webui cases.

    Moe Ahmadi

    Done. Moved the grit resource target to `aim_eligibility_extension/BUILD.gn`. I had difficulty using `build_webui()` with compiling resources from a sibling directory and used lower-level webui_ts_library and optimize_webui targets directly.

    bundling the code regardless of `optimize_webui false/true` was intended to avoid having to list all the JS resources. Obviously if we can get to use build_webui() and conditionally bundle or not it would be ideal.

    Demetrios Papadopoulos

    I had difficulty using build_webui() with compiling resources from a sibling directory and used lower-level webui_ts_library and optimize_webui targets directly.

    Curious what did you run into. Indeed using build_webui() to point to files that belong to non-child folders is not common, so some assumptions might be broken.

    Having said that, I think we should follow-up with necessary changes to make this work properly because what is done here is a one-off build codepath and seems is a bit hacky (on top of not respecting optimize_webui, possibly not minifying files at all)

    Moe Ahmadi

    you're 100% right we should follow-up and fix this properly. that's essentially the goal of this proof of concept. I filed b/524396928 describing issues I've been experiencing. If that's OK with you, let's track the problem there for a follow-up change.

    Demetrios Papadopoulos

    SG. As long as you are aware that further modifications to this extension code might be hindered by using a custom one-off build configuration until/if properly fixed.

    Thanks for filing the bug.

    File chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn
    Line 7, Patchset 15:import("//ui/webui/resources/tools/generate_grd.gni")
    Demetrios Papadopoulos . resolved

    Posting a possible (simpler) alternative to package the existing WebUI as an extension. Would the following work?

    Leverage the already produced `out/gchrome/gen/chrome/browser/resources/omnibox/aim_eligibility/resources.grdp` file, and simply pass it to a new `generate_grd()` target in this file to produce `out/gchrome/gen/chrome/browser/resources/omnibox/aim_eligibility_extension/resources.grd` file.

    Then you can remove `bundle_js()` from here, and you would still get bundled+minified resources when optimize_webui=true, and non-bundled, non-minified when optimize_webui=false. The registration of the resources in chrome/browser/extensions/chrome_component_extension_resource_manager.cc would work seamlessly for both cases.

    WDYT?

    Moe Ahmadi

    Thanks for the suggestion! Unfortunately reusing the sibling's resources.grdp didn't not work because the extension loader expects all resources in the PAK to be prefixed with the extension's directory name (aim_eligibility_extension/manifest.json, etc). The sibling WebUI's resources.grdp defines unprefixed paths (aim_eligibility.html, etc) to serve them at the root of chrome://omnibox/.

    If we include the sibling WebUI's resources.grdp directly, GRIT compiles them unprefixed. We cannot prefix them in the sibling's build target either without breaking the chrome://omnibox/ WebUI.

    I could be holding this wrong, so please share your thoughts and ideas in b/524396928 to follow this change.

    Demetrios Papadopoulos

    because the extension loader expects all resources in the PAK to be prefixed with the extension's directory name (aim_eligibility_extension/manifest.json, etc)

    generate_grd() exposes a `resource_path_rewrites` property which can be usesd to modify the path under which a file is going to be served. Perhaps you could leverage this to satisfy the extension loader's expectation. Having said that, off the top of my head, I don't remember if `resource_path_rewrites` is applied to resources residing in files passed via `grdp_files` (probably not).

    I could be holding this wrong, so please share your thoughts and ideas in b/524396928 to follow this change.

    SG. Lets' continue the discussion there.

    Line 9, Patchset 15:bundle_js("bundle_js") {
    Demetrios Papadopoulos . unresolved

    Note that bundling does not do any minifying, removing comments etc. So this custom one-off build setup, IIUC will package completely unminified code into the build. Can you double check? And if so, is this OK?

    Do you need to also invoke minify_js() below?

    Moe Ahmadi

    you're 100% correct, minify_js is never invoked. neither this or having to bundle JS in dev builds is OK. however I'm not sure if it's worth spending time replicating everything build_webui() does or invest in make build_webui() work in a follow-up (b/524396928). WDYT?

    Demetrios Papadopoulos

    Evaluating this work as a follow-up SGTM. Having said that, in order to set the correct expectations, it is likely that supporting this case (aka having build_webui() be fully functional when referring to files residing in a sibling folder) might prove to be too complicated and you might be stuck with this custom build configuration for a while.

    Since this request is not common, and would be obsolete if/when the WebUI is fully migrated to the component extension, at which point you could use build_webui() like the PDF viewer already does, we have to be very careful with avoiding unnecessary complexity to address a one-off transient need.

    LMK if this sounds reasonable.

    Line 15, Patchset 15: out_folder = "$target_gen_dir/bundled"
    Demetrios Papadopoulos . resolved
    Can this point to the final folder directly? See follow-up comment as well
    ```suggestion
    out_folder = "$target_gen_dir/resources"
    ```
    Moe Ahmadi

    we would still need a copy target to rename app.rollup.js to app.js inside that directory, no?

    Demetrios Papadopoulos

    build_webui() does this by leveraging `resource_path_rewrites` avoiding any extra copies, see [1]. As said earlier, not sure if you can leverage that here though.

    [1] https://source.chromium.org/chromium/chromium/src/+/main:ui/webui/resources/tools/build_webui.gni;l=813-816;drc=83166029bb4315ed24b74481ed9b9a3045f19789

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    • Moe Ahmadi
    • Nasko Oskov
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Nasko Oskov <na...@chromium.org>
    Gerrit-Comment-Date: Tue, 16 Jun 2026 17:40:02 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nasko Oskov (Gerrit)

    unread,
    Jun 16, 2026, 2:14:18 PM (11 days ago) Jun 16
    to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin and Moe Ahmadi

    Nasko Oskov added 2 comments

    Patchset-level comments
    File-level comment, Patchset 16 (Latest):
    Nasko Oskov . resolved

    //content/ LGTM once the API is renamed.

    File content/browser/renderer_host/render_frame_host_impl.cc
    Line 18618, Patchset 16 (Latest): GetContentClient()->browser()->ShouldAllowMojoJsBindingsForURL(
    Nasko Oskov . unresolved

    Since you are passing a site URL, this should probably be "ForSite" as it won't support a full URL and we won't enable/disable bindings based on anything beyond origin or site. It is also the suffix commonly found in the API to the embedder.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    • Moe Ahmadi
    Gerrit-Comment-Date: Tue, 16 Jun 2026 18:13:58 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nasko Oskov (Gerrit)

    unread,
    Jun 16, 2026, 2:14:20 PM (11 days ago) Jun 16
    to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
    Attention needed from Devlin Cronin and Moe Ahmadi

    Nasko Oskov voted Code-Review+1

    Code-Review+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    • Moe Ahmadi
    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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
      Gerrit-Change-Number: 7921547
      Gerrit-PatchSet: 16
      Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
      Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
      Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
      Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
      Gerrit-CC: Chris Thompson <cth...@chromium.org>
      Gerrit-CC: Duncan Mercer <mer...@google.com>
      Gerrit-CC: Ryan Sultanem <rs...@google.com>
      Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
      Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
      Gerrit-Comment-Date: Tue, 16 Jun 2026 18:14:04 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Moe Ahmadi (Gerrit)

      unread,
      Jun 16, 2026, 9:54:42 PM (11 days ago) Jun 16
      to Devlin Cronin, Colin Blundell, Demetrios Papadopoulos, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
      Attention needed from Demetrios Papadopoulos and Devlin Cronin

      Moe Ahmadi added 3 comments

      File chrome/browser/resources/omnibox/aim_eligibility_extension/BUILD.gn
      Line 9, Patchset 15:bundle_js("bundle_js") {
      Demetrios Papadopoulos . resolved

      Note that bundling does not do any minifying, removing comments etc. So this custom one-off build setup, IIUC will package completely unminified code into the build. Can you double check? And if so, is this OK?

      Do you need to also invoke minify_js() below?

      Moe Ahmadi

      you're 100% correct, minify_js is never invoked. neither this or having to bundle JS in dev builds is OK. however I'm not sure if it's worth spending time replicating everything build_webui() does or invest in make build_webui() work in a follow-up (b/524396928). WDYT?

      Demetrios Papadopoulos

      Evaluating this work as a follow-up SGTM. Having said that, in order to set the correct expectations, it is likely that supporting this case (aka having build_webui() be fully functional when referring to files residing in a sibling folder) might prove to be too complicated and you might be stuck with this custom build configuration for a while.

      Since this request is not common, and would be obsolete if/when the WebUI is fully migrated to the component extension, at which point you could use build_webui() like the PDF viewer already does, we have to be very careful with avoiding unnecessary complexity to address a one-off transient need.

      LMK if this sounds reasonable.

      Moe Ahmadi

      That makes perfect sense. I agree that we shouldn't add unnecessary complexity to build_webui() for a one-off transient setup if it proves difficult. As long as we resolve minification in `optimize_webui = true` and resource resolution in `optimize_webui = false` it's totally fine to stick to this custom configuration for now.

      Line 15, Patchset 15: out_folder = "$target_gen_dir/bundled"
      Demetrios Papadopoulos . resolved
      Can this point to the final folder directly? See follow-up comment as well
      ```suggestion
      out_folder = "$target_gen_dir/resources"
      ```
      Moe Ahmadi

      we would still need a copy target to rename app.rollup.js to app.js inside that directory, no?

      Demetrios Papadopoulos

      build_webui() does this by leveraging `resource_path_rewrites` avoiding any extra copies, see [1]. As said earlier, not sure if you can leverage that here though.

      [1] https://source.chromium.org/chromium/chromium/src/+/main:ui/webui/resources/tools/build_webui.gni;l=813-816;drc=83166029bb4315ed24b74481ed9b9a3045f19789

      Moe Ahmadi

      thanks for clarifying! Done.

      File content/browser/renderer_host/render_frame_host_impl.cc
      Line 18618, Patchset 16: GetContentClient()->browser()->ShouldAllowMojoJsBindingsForURL(
      Nasko Oskov . resolved

      Since you are passing a site URL, this should probably be "ForSite" as it won't support a full URL and we won't enable/disable bindings based on anything beyond origin or site. It is also the suffix commonly found in the API to the embedder.

      Moe Ahmadi

      that's a great point. Done.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Demetrios Papadopoulos
      • Devlin Cronin
      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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
        Gerrit-Change-Number: 7921547
        Gerrit-PatchSet: 17
        Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
        Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
        Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
        Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
        Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
        Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
        Gerrit-CC: Chris Thompson <cth...@chromium.org>
        Gerrit-CC: Duncan Mercer <mer...@google.com>
        Gerrit-CC: Ryan Sultanem <rs...@google.com>
        Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
        Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
        Gerrit-Comment-Date: Wed, 17 Jun 2026 01:54:28 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Moe Ahmadi <mah...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Demetrios Papadopoulos (Gerrit)

        unread,
        Jun 17, 2026, 4:08:49 PM (10 days ago) Jun 17
        to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
        Attention needed from Devlin Cronin and Moe Ahmadi

        Demetrios Papadopoulos voted Code-Review+1

        Code-Review+1
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Devlin Cronin
        • Moe Ahmadi
        Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
        Gerrit-Comment-Date: Wed, 17 Jun 2026 20:08:23 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Demetrios Papadopoulos (Gerrit)

        unread,
        Jun 17, 2026, 4:11:06 PM (10 days ago) Jun 17
        to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
        Attention needed from Devlin Cronin and Moe Ahmadi

        Demetrios Papadopoulos added 1 comment

        Patchset-level comments
        File-level comment, Patchset 17 (Latest):
        Demetrios Papadopoulos . unresolved

        LGTM with a question. What is the test story for the extension version? Do you plan to port the WebUI tests to be run in the context of the extension in a follow-up? Or will the tests be copied? (Given that this is quite an unusual setup, running the tests in two different contexts sounds complicated, probably harder than making the prod code work)

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Devlin Cronin
        • Moe Ahmadi
        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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
          Gerrit-Change-Number: 7921547
          Gerrit-PatchSet: 17
          Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
          Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
          Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
          Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
          Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
          Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
          Gerrit-CC: Chris Thompson <cth...@chromium.org>
          Gerrit-CC: Duncan Mercer <mer...@google.com>
          Gerrit-CC: Ryan Sultanem <rs...@google.com>
          Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
          Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
          Gerrit-Comment-Date: Wed, 17 Jun 2026 20:10:56 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Devlin Cronin (Gerrit)

          unread,
          Jun 17, 2026, 4:43:04 PM (10 days ago) Jun 17
          to Demetrios Papadopoulos, Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
          Attention needed from Moe Ahmadi

          Devlin Cronin added 9 comments

          Patchset-level comments
          Devlin Cronin . unresolved

          Thanks, Moe!

          I didn't look in detail at the aim_elegibility_private implementation -- would you like me to review that, too, or is someone else going to handle that one?

          File chrome/browser/chrome_content_browser_client.cc
          Line 2255, Patchset 17 (Latest): if (site_url.SchemeIs("chrome-extension")) {
          Devlin Cronin . unresolved

          kExtensionScheme

          File chrome/browser/extensions/BUILD.gn
          Line 948, Patchset 17 (Latest): "//chrome/browser/extensions/api/aim_eligibility_private",
          Devlin Cronin . unresolved

          non-api code should not depend on API code if we can help it. Can we restructure this so there aren't dependencies from //c/b/extensions -> //c/b/extensions/api?

          File chrome/browser/extensions/api/BUILD.gn
          Line 69, Patchset 17 (Latest): # APIs supported on Win/Mac/Linux but NOT desktop Android go here.
          Devlin Cronin . unresolved

          is the intention for this to never be supported on desktop android? If so, put this in the !android block below (line 114ish).

          File chrome/browser/extensions/api/aim_eligibility_private/BUILD.gn
          Line 1, Patchset 17 (Latest):# Copyright 2026 The Chromium Authors
          Devlin Cronin . unresolved

          Can we add an OWNERS file to this directory?

          File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_extension_bridge.h
          Line 24, Patchset 17 (Latest):// extensions via direct Mojo binding, completely bypassing JSON extension APIs.
          Devlin Cronin . unresolved

          JS extension APIs?

          Also, it doesn't bypass them -- they're still there. It just allows direct communication in addition to APIs.

          File chrome/browser/extensions/chrome_extension_web_contents_observer.cc
          Line 135, Patchset 17 (Latest): render_frame_host->EnableMojoJsBindings(nullptr);
          Devlin Cronin . unresolved

          nit: document anonymous param

          File chrome/browser/extensions/component_extensions_allowlist/allowlist.cc
          Line 38, Patchset 17 (Latest): extension_misc::kGlicExtensionId,
          Devlin Cronin . unresolved

          please also add the extension ID here

          File chrome/browser/extensions/extension_util.h
          Line 108, Patchset 17 (Latest):bool IsMojoJsEnabledForExtension(std::string_view extension_id);
          Devlin Cronin . unresolved

          nit: prefer const ExtensionId&

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Moe Ahmadi
          Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
          Gerrit-Comment-Date: Wed, 17 Jun 2026 20:42:49 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Moe Ahmadi (Gerrit)

          unread,
          Jun 17, 2026, 9:58:33 PM (10 days ago) Jun 17
          to Demetrios Papadopoulos, Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
          Attention needed from Demetrios Papadopoulos, Devlin Cronin and Nasko Oskov

          Moe Ahmadi added 10 comments

          Patchset-level comments
          File-level comment, Patchset 17:
          Demetrios Papadopoulos . resolved

          LGTM with a question. What is the test story for the extension version? Do you plan to port the WebUI tests to be run in the context of the extension in a follow-up? Or will the tests be copied? (Given that this is quite an unusual setup, running the tests in two different contexts sounds complicated, probably harder than making the prod code work)

          Moe Ahmadi

          Thanks Demetrios! that is a great question. Ideally we would want to avoid duplicating the test logic. I imagine we'd have a single WebUI Mocha test suite and run it in both contexts during the transition. I trust you when you say that this is more complicated that it sounds :) I filed b/525170703 to track this exploration.

          Devlin Cronin . unresolved

          Thanks, Moe!

          I didn't look in detail at the aim_elegibility_private implementation -- would you like me to review that, too, or is someone else going to handle that one?

          Moe Ahmadi

          Thanks Devlin! please do!

          File chrome/browser/chrome_content_browser_client.cc
          Line 2255, Patchset 17: if (site_url.SchemeIs("chrome-extension")) {
          Devlin Cronin . resolved

          kExtensionScheme

          Moe Ahmadi

          Done

          File chrome/browser/extensions/BUILD.gn
          Line 948, Patchset 17: "//chrome/browser/extensions/api/aim_eligibility_private",
          Devlin Cronin . unresolved

          non-api code should not depend on API code if we can help it. Can we restructure this so there aren't dependencies from //c/b/extensions -> //c/b/extensions/api?

          Moe Ahmadi

          that's a great callout. I thought about this a bit and the solution I had in mind might add too much additional scope to this CL. If you don't mind, I filed b/525150940 to followup on this.

          File chrome/browser/extensions/api/BUILD.gn
          Line 69, Patchset 17: # APIs supported on Win/Mac/Linux but NOT desktop Android go here.
          Devlin Cronin . resolved

          is the intention for this to never be supported on desktop android? If so, put this in the !android block below (line 114ish).

          Moe Ahmadi

          Excluding from Desktop Android isn't intended. Done.

          File chrome/browser/extensions/api/aim_eligibility_private/BUILD.gn
          Line 1, Patchset 17:# Copyright 2026 The Chromium Authors
          Devlin Cronin . resolved

          Can we add an OWNERS file to this directory?

          Moe Ahmadi

          Done

          File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_extension_bridge.h
          Line 24, Patchset 17:// extensions via direct Mojo binding, completely bypassing JSON extension APIs.
          Devlin Cronin . resolved

          JS extension APIs?

          Also, it doesn't bypass them -- they're still there. It just allows direct communication in addition to APIs.

          Moe Ahmadi

          Removed. This was supposed to mean we can avoid adding new extension APIs in JSON/IDL files but it was missing parts and weirdly phrased. Thanks for catching it.

          File chrome/browser/extensions/chrome_extension_web_contents_observer.cc
          Line 135, Patchset 17: render_frame_host->EnableMojoJsBindings(nullptr);
          Devlin Cronin . resolved

          nit: document anonymous param

          Moe Ahmadi

          Done

          File chrome/browser/extensions/component_extensions_allowlist/allowlist.cc
          Line 38, Patchset 17: extension_misc::kGlicExtensionId,
          Devlin Cronin . resolved

          please also add the extension ID here

          Moe Ahmadi

          Done

          File chrome/browser/extensions/extension_util.h
          Line 108, Patchset 17:bool IsMojoJsEnabledForExtension(std::string_view extension_id);
          Devlin Cronin . resolved

          nit: prefer const ExtensionId&

          Moe Ahmadi

          Done

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Demetrios Papadopoulos
          • Devlin Cronin
          • Nasko Oskov
          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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
            Gerrit-Change-Number: 7921547
            Gerrit-PatchSet: 18
            Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
            Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
            Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
            Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
            Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
            Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
            Gerrit-CC: Chris Thompson <cth...@chromium.org>
            Gerrit-CC: Duncan Mercer <mer...@google.com>
            Gerrit-CC: Ryan Sultanem <rs...@google.com>
            Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
            Gerrit-Attention: Nasko Oskov <na...@chromium.org>
            Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
            Gerrit-Comment-Date: Thu, 18 Jun 2026 01:58:23 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
            Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Demetrios Papadopoulos (Gerrit)

            unread,
            Jun 18, 2026, 4:36:12 PM (9 days ago) Jun 18
            to Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
            Attention needed from Devlin Cronin, Moe Ahmadi and Nasko Oskov

            Demetrios Papadopoulos voted Code-Review+1

            Code-Review+1
            Open in Gerrit

            Related details

            Attention is currently required from:
            • Devlin Cronin
            • Moe Ahmadi
            • Nasko Oskov
            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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
              Gerrit-Change-Number: 7921547
              Gerrit-PatchSet: 18
              Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
              Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
              Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
              Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
              Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
              Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
              Gerrit-CC: Chris Thompson <cth...@chromium.org>
              Gerrit-CC: Duncan Mercer <mer...@google.com>
              Gerrit-CC: Ryan Sultanem <rs...@google.com>
              Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
              Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
              Gerrit-Attention: Nasko Oskov <na...@chromium.org>
              Gerrit-Comment-Date: Thu, 18 Jun 2026 20:35:54 +0000
              Gerrit-HasComments: No
              Gerrit-Has-Labels: Yes
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Nasko Oskov (Gerrit)

              unread,
              Jun 22, 2026, 7:26:06 PM (5 days ago) Jun 22
              to Demetrios Papadopoulos, Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
              Attention needed from Devlin Cronin and Moe Ahmadi

              Nasko Oskov voted and added 1 comment

              Votes added by Nasko Oskov

              Code-Review+1

              1 comment

              Patchset-level comments
              File-level comment, Patchset 18 (Latest):
              Nasko Oskov . resolved

              Still LGTM

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Devlin Cronin
              • Moe Ahmadi
              Gerrit-Comment-Date: Mon, 22 Jun 2026 23:25:43 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: Yes
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Devlin Cronin (Gerrit)

              unread,
              Jun 25, 2026, 2:41:01 PM (2 days ago) Jun 25
              to Code Review Nudger, Demetrios Papadopoulos, Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
              Attention needed from Moe Ahmadi

              Devlin Cronin added 9 comments

              Patchset-level comments
              Devlin Cronin . resolved

              Thanks, Moe!

              File chrome/browser/extensions/api/BUILD.gn
              Line 114, Patchset 18 (Latest): if (!is_android) {
              Devlin Cronin . unresolved

              Comment [here](https://chromium-review.git.corp.google.com/c/chromium/src/+/7921547/comment/ab2b38ec_838d6e48/) says excluding on desktop android *wasn't* intended, but this omits it from Android.

              Can you clarify the intention?

              File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_extension_bridge.h
              Line 57, Patchset 18 (Latest): const raw_ptr<Profile> profile_;
              Devlin Cronin . unresolved

              This can't be null -- raw_ref?

              File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_extension_bridge.cc
              Line 39, Patchset 18 (Latest):void AimEligibilityExtensionBridge::CreatePageHandler(
              Devlin Cronin . unresolved

              Can you provide more details on the future plans for this? Is this "API" and this bridge going to do more in the near future?

              As it is now, I'm not sure putting this in an API directory is really the right place. Since all this is doing is binding a receiver for a particular extension, and the receiver isn't really API code, it seems like it could instead live near the PageHandler itself (chrome/browser/ui/webui/omnibox/aim_eligibility), in other aim code (maybe just //chrome/browser/omnibox?), or maybe in //chrome/browser/extensions.

              Line 45, Patchset 18 (Latest): raw_handler->set_disconnect_handler(base::BindOnce(
              [](AimEligibilityExtensionBridge* bridge,
              AimEligibilityPageHandler* handler_to_erase) {
              std::erase_if(bridge->page_handlers_,
              [handler_to_erase](
              const std::unique_ptr<AimEligibilityPageHandler>& p) {
              return p.get() == handler_to_erase;
              });
              },
              base::Unretained(this), raw_handler));
              Devlin Cronin . unresolved

              This deletes the PageHandler directly within the set_disconnect_handler callback -- I assume that's safe? (i.e., the mojo calling code knows that the handler may be deleted at that point and won't use it?)

              File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_private_apitest.cc
              Line 78, Patchset 18 (Latest): if (!profile->IsOffTheRecord() && !profile->IsSystemProfile() &&
              !profile->IsGuestSession()) {
              Devlin Cronin . unresolved

              The Bridge service is created for incognito and guest profiles. Should it match these restrictions?

              File chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
              Line 32, Patchset 18 (Latest):#if BUILDFLAG(ENABLE_EXTENSIONS)
              Devlin Cronin . unresolved

              Tying in with the comment [here](https://chromium-review.git.corp.google.com/c/chromium/src/+/7921547/comment/ab2b38ec_838d6e48/), these aren't included in desktop android.

              In general, new code should not use ENABLE_EXTENSIONS (or enable_extensions in GN files):

              • Supported on desktop android? Use ENABLE_EXTENSIONS_CORE (or enable_extensions_core)
              • Not supported on desktop android? Use !IS_ANDROID (or !is_android)
              File chrome/browser/extensions/extension_util.cc
              Line 374, Patchset 18 (Latest): return extension_id == extension_misc::kAimEligibilityExtensionId;
              Devlin Cronin . unresolved

              Ideally, we'd also confirm that the extension was the component extension (and not an unpacked extension that the user sideloaded).

              Can we retrieve the extension from the ExtensionRegistry (fetched from the profile) and pass it in here to check that?

              File chrome/browser/resources/omnibox/aim_eligibility_extension/manifest.json
              Line 7, Patchset 18 (Latest): "aimEligibilityPrivate"
              Devlin Cronin . unresolved

              this permission doesn't exist and doesn't do anything. Is the intention to add an API in the future? If so, we could add the permission then.

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Moe Ahmadi
              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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
              Gerrit-Change-Number: 7921547
              Gerrit-PatchSet: 18
              Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
              Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
              Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
              Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
              Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
              Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
              Gerrit-CC: Chris Thompson <cth...@chromium.org>
              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
              Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
              Gerrit-Comment-Date: Thu, 25 Jun 2026 18:40:26 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Moe Ahmadi (Gerrit)

              unread,
              Jun 26, 2026, 7:09:50 PM (17 hours ago) Jun 26
              to Code Review Nudger, Demetrios Papadopoulos, Devlin Cronin, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
              Attention needed from Demetrios Papadopoulos, Devlin Cronin and Nasko Oskov

              Moe Ahmadi added 9 comments

              File chrome/browser/extensions/BUILD.gn
              Line 948, Patchset 17: "//chrome/browser/extensions/api/aim_eligibility_private",
              Devlin Cronin . resolved

              non-api code should not depend on API code if we can help it. Can we restructure this so there aren't dependencies from //c/b/extensions -> //c/b/extensions/api?

              Moe Ahmadi

              that's a great callout. I thought about this a bit and the solution I had in mind might add too much additional scope to this CL. If you don't mind, I filed b/525150940 to followup on this.

              Moe Ahmadi

              Resolving to follow-up on the bug.

              File chrome/browser/extensions/api/BUILD.gn
              Line 114, Patchset 18: if (!is_android) {
              Devlin Cronin . resolved

              Comment [here](https://chromium-review.git.corp.google.com/c/chromium/src/+/7921547/comment/ab2b38ec_838d6e48/) says excluding on desktop android *wasn't* intended, but this omits it from Android.

              Can you clarify the intention?

              Moe Ahmadi

              that's correct. I don't intent to exclude this from desktop android intentionally. I'm not entirely sure why I moved the dependency here. thanks for catching that.

              File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_extension_bridge.h
              Line 57, Patchset 18: const raw_ptr<Profile> profile_;
              Devlin Cronin . resolved

              This can't be null -- raw_ref?

              Moe Ahmadi

              Good callout. Done.

              File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_extension_bridge.cc
              Line 39, Patchset 18:void AimEligibilityExtensionBridge::CreatePageHandler(
              Devlin Cronin . resolved

              Can you provide more details on the future plans for this? Is this "API" and this bridge going to do more in the near future?

              As it is now, I'm not sure putting this in an API directory is really the right place. Since all this is doing is binding a receiver for a particular extension, and the receiver isn't really API code, it seems like it could instead live near the PageHandler itself (chrome/browser/ui/webui/omnibox/aim_eligibility), in other aim code (maybe just //chrome/browser/omnibox?), or maybe in //chrome/browser/extensions.

              Moe Ahmadi

              I agree putting this in the api/ directory is not the right place since it's not a real extension API. I moved the bridge files to `c/b/ui/webui/omnibox/aim_eligibility/extension/` where they logically belong. Though, we are still left with a dependency from `c/b/extensions` and `c/b/extensions/api` to `c/b/ui/`.

              I'm planning to follow up in b/525150940 by introducing an interface binder registry such that AIM eligibility extension bridge can register Mojo binder callbacks and eliminate the dependency that way. Since this is temporary I am using `// nogncheck` on the includes not to pollute the build graph. Feel free to reopen or share feedback on the bug.

              Line 45, Patchset 18: raw_handler->set_disconnect_handler(base::BindOnce(

              [](AimEligibilityExtensionBridge* bridge,
              AimEligibilityPageHandler* handler_to_erase) {
              std::erase_if(bridge->page_handlers_,
              [handler_to_erase](
              const std::unique_ptr<AimEligibilityPageHandler>& p) {
              return p.get() == handler_to_erase;
              });
              },
              base::Unretained(this), raw_handler));
              Devlin Cronin . resolved

              This deletes the PageHandler directly within the set_disconnect_handler callback -- I assume that's safe? (i.e., the mojo calling code knows that the handler may be deleted at that point and won't use it?)

              Moe Ahmadi

              Thanks for checking. this should be safe since the disconnect handler should be run after the pipe is closed. Deleting mojo::Receiver at any time should be safe too as it also closes the pipe immediately.

              File chrome/browser/extensions/api/aim_eligibility_private/aim_eligibility_private_apitest.cc
              Line 78, Patchset 18: if (!profile->IsOffTheRecord() && !profile->IsSystemProfile() &&
              !profile->IsGuestSession()) {
              Devlin Cronin . resolved

              The Bridge service is created for incognito and guest profiles. Should it match these restrictions?

              Moe Ahmadi

              Done. Cleaned up the test harness to retrieve the mock service from the active profile directly.

              File chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
              Line 32, Patchset 18:#if BUILDFLAG(ENABLE_EXTENSIONS)
              Devlin Cronin . resolved

              Tying in with the comment [here](https://chromium-review.git.corp.google.com/c/chromium/src/+/7921547/comment/ab2b38ec_838d6e48/), these aren't included in desktop android.

              In general, new code should not use ENABLE_EXTENSIONS (or enable_extensions in GN files):

              • Supported on desktop android? Use ENABLE_EXTENSIONS_CORE (or enable_extensions_core)
              • Not supported on desktop android? Use !IS_ANDROID (or !is_android)
              Moe Ahmadi

              Thanks for explaining, the macros and the build flags make sense to me now. I admit I could've read the comments more closely.

              File chrome/browser/extensions/extension_util.cc
              Line 374, Patchset 18: return extension_id == extension_misc::kAimEligibilityExtensionId;
              Devlin Cronin . resolved

              Ideally, we'd also confirm that the extension was the component extension (and not an unpacked extension that the user sideloaded).

              Can we retrieve the extension from the ExtensionRegistry (fetched from the profile) and pass it in here to check that?

              Moe Ahmadi

              Done.

              File chrome/browser/resources/omnibox/aim_eligibility_extension/manifest.json
              Line 7, Patchset 18: "aimEligibilityPrivate"
              Devlin Cronin . resolved

              this permission doesn't exist and doesn't do anything. Is the intention to add an API in the future? If so, we could add the permission then.

              Moe Ahmadi

              Done

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Demetrios Papadopoulos
              • Devlin Cronin
              • Nasko Oskov
              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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
                Gerrit-Change-Number: 7921547
                Gerrit-PatchSet: 24
                Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
                Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
                Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
                Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
                Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
                Gerrit-CC: Chris Thompson <cth...@chromium.org>
                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                Gerrit-CC: Duncan Mercer <mer...@google.com>
                Gerrit-CC: Ryan Sultanem <rs...@google.com>
                Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                Gerrit-Attention: Nasko Oskov <na...@chromium.org>
                Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                Gerrit-Comment-Date: Fri, 26 Jun 2026 23:09:38 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
                Comment-In-Reply-To: Moe Ahmadi <mah...@chromium.org>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Devlin Cronin (Gerrit)

                unread,
                Jun 26, 2026, 7:18:31 PM (16 hours ago) Jun 26
                to Devlin Cronin, Code Review Nudger, Demetrios Papadopoulos, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
                Attention needed from Demetrios Papadopoulos, Moe Ahmadi and Nasko Oskov

                Devlin Cronin voted and added 1 comment

                Votes added by Devlin Cronin

                Code-Review+1

                1 comment

                Patchset-level comments
                File-level comment, Patchset 24 (Latest):
                Devlin Cronin . unresolved

                LGTM; thanks, Moe!

                As long as you're planning on cleaning up the deps issues soon, I'm okay with the (temporary) tech debt.

                I'm a bit nervous about landing the impl + default-enabled feature in one CL (I'd lean towards landing it disabled and enabling in a follow up, for quick-and-easy reverting if necessary), but I'll trust your judgment on that one.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Demetrios Papadopoulos
                • Moe Ahmadi
                • Nasko Oskov
                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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
                  Gerrit-Change-Number: 7921547
                  Gerrit-PatchSet: 24
                  Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
                  Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
                  Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
                  Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                  Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
                  Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
                  Gerrit-CC: Chris Thompson <cth...@chromium.org>
                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                  Gerrit-CC: Duncan Mercer <mer...@google.com>
                  Gerrit-CC: Ryan Sultanem <rs...@google.com>
                  Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
                  Gerrit-Attention: Nasko Oskov <na...@chromium.org>
                  Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                  Gerrit-Comment-Date: Fri, 26 Jun 2026 23:18:18 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: Yes
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Moe Ahmadi (Gerrit)

                  unread,
                  Jun 26, 2026, 8:00:51 PM (16 hours ago) Jun 26
                  to Devlin Cronin, Code Review Nudger, Demetrios Papadopoulos, Colin Blundell, Duncan Mercer, Chris Thompson, Ryan Sultanem, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, christia...@chromium.org, alexmo...@chromium.org, antoniosarto...@chromium.org, arthursonzog...@chromium.org, chromium-a...@chromium.org, creis...@chromium.org, extension...@chromium.org, jdonnel...@chromium.org, mkwst+w...@chromium.org, navigation...@chromium.org, omnibox-...@chromium.org
                  Attention needed from Demetrios Papadopoulos and Nasko Oskov

                  Moe Ahmadi added 2 comments

                  Patchset-level comments
                  File-level comment, Patchset 17:
                  Devlin Cronin . resolved

                  Thanks, Moe!

                  I didn't look in detail at the aim_elegibility_private implementation -- would you like me to review that, too, or is someone else going to handle that one?

                  Moe Ahmadi

                  Thanks Devlin! please do!

                  Moe Ahmadi

                  Done

                  File-level comment, Patchset 24:
                  Devlin Cronin . resolved

                  LGTM; thanks, Moe!

                  As long as you're planning on cleaning up the deps issues soon, I'm okay with the (temporary) tech debt.

                  I'm a bit nervous about landing the impl + default-enabled feature in one CL (I'd lean towards landing it disabled and enabling in a follow up, for quick-and-easy reverting if necessary), but I'll trust your judgment on that one.

                  Moe Ahmadi

                  Thanks! your feedback here has been really helpful in finding out what's needed for a sustainable solution. I'll write a short doc to align on the dependency and layering with you. agreed keeping the feature disabled is the right thing to do here, given this is meant as a proof of concept.

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Demetrios Papadopoulos
                  • Nasko Oskov
                  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: Ie69aa43abe5822a6eb40c31fd37bdb28bed3e032
                    Gerrit-Change-Number: 7921547
                    Gerrit-PatchSet: 25
                    Gerrit-Owner: Moe Ahmadi <mah...@chromium.org>
                    Gerrit-Reviewer: Colin Blundell <blun...@chromium.org>
                    Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
                    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
                    Gerrit-Reviewer: Nasko Oskov <na...@chromium.org>
                    Gerrit-CC: Chris Thompson <cth...@chromium.org>
                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                    Gerrit-CC: Duncan Mercer <mer...@google.com>
                    Gerrit-CC: Ryan Sultanem <rs...@google.com>
                    Gerrit-Attention: Nasko Oskov <na...@chromium.org>
                    Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                    Gerrit-Comment-Date: Sat, 27 Jun 2026 00:00:37 +0000
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy
                    Reply all
                    Reply to author
                    Forward
                    0 new messages