[omnibox-next] Fix crash due to unbound page remote. [chromium/src : main]

0 views
Skip to first unread message

Khalid Peer (Gerrit)

unread,
Dec 15, 2025, 11:08:21 AM (22 hours ago) Dec 15
to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
Attention needed from Moe Ahmadi

Khalid Peer voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Moe Ahmadi
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
Gerrit-Change-Number: 7262694
Gerrit-PatchSet: 2
Gerrit-Owner: Khalid Peer <khali...@chromium.org>
Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 16:07:48 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Khalid Peer (Gerrit)

unread,
Dec 15, 2025, 11:08:35 AM (22 hours ago) Dec 15
to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
Attention needed from Moe Ahmadi

Khalid Peer voted Auto-Submit+1

Auto-Submit+1
Open in Gerrit

Related details

Attention is currently required from:
  • Moe Ahmadi
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
Gerrit-Change-Number: 7262694
Gerrit-PatchSet: 2
Gerrit-Owner: Khalid Peer <khali...@chromium.org>
Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 16:08:11 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Moe Ahmadi (Gerrit)

unread,
Dec 15, 2025, 11:39:20 AM (22 hours ago) Dec 15
to Khalid Peer, Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
Attention needed from Khalid Peer

Moe Ahmadi voted and added 2 comments

Votes added by Moe Ahmadi

Code-Review+1

2 comments

Patchset-level comments
File-level comment, Patchset 2 (Latest):
Moe Ahmadi . resolved

LGTM % comment.

File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
Line 108, Patchset 2 (Latest):
const AutocompleteProviderClient* client =
autocomplete_controller()->autocomplete_provider_client();
page_->UpdateLensSearchEligibility(
ContextualSearchProvider::LensEntrypointEligible(input, client) &&
input.IsZeroSuggest());
Moe Ahmadi . unresolved

your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

Open in Gerrit

Related details

Attention is currently required from:
  • Khalid Peer
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Khalid Peer <khali...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 16:39:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Khalid Peer (Gerrit)

    unread,
    Dec 15, 2025, 11:52:37 AM (22 hours ago) Dec 15
    to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Moe Ahmadi

    Khalid Peer added 1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . unresolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Moe Ahmadi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 16:52:01 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Moe Ahmadi <mah...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Khalid Peer (Gerrit)

    unread,
    Dec 15, 2025, 11:57:46 AM (22 hours ago) Dec 15
    to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Moe Ahmadi

    Khalid Peer added 1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . unresolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Khalid Peer

    The "recent tab chip" visibility criteria is based [on a tab strip model observer method](https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/cr_components/searchbox/contextual_searchbox_handler.cc;l=192-204;drc=d81d1221a1ddff2931b35ad2ec6729ee5114fc9d), which is something we can't use here (since the input to the Omnibox can change while the user is still on the same tab).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Moe Ahmadi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 16:57:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Moe Ahmadi <mah...@chromium.org>
    Comment-In-Reply-To: Khalid Peer <khali...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Moe Ahmadi (Gerrit)

    unread,
    Dec 15, 2025, 11:58:44 AM (22 hours ago) Dec 15
    to Khalid Peer, Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Khalid Peer

    Moe Ahmadi added 1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . unresolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Moe Ahmadi

    that makes sense. `re-invoked every time the user types another character into the Omnibox` this part seems excessive.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Khalid Peer
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Khalid Peer <khali...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 16:58:35 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Khalid Peer (Gerrit)

    unread,
    Dec 15, 2025, 12:05:05 PM (21 hours ago) Dec 15
    to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Moe Ahmadi

    Khalid Peer voted and added 1 comment

    Votes added by Khalid Peer

    Commit-Queue+1

    1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . unresolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Moe Ahmadi

    that makes sense. `re-invoked every time the user types another character into the Omnibox` this part seems excessive.

    Khalid Peer

    We could implement a more targeted observer method for this, but for [this CL](https://chromium-review.googlesource.com/c/chromium/src/+/7242923) I opted for this approach to deliver a working solution that fit within the M144 timeline.

    That being said, I'm happy to revisit this approach if it turns out to be too expensive from a browser performance POV.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Moe Ahmadi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 17:04:30 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Moe Ahmadi (Gerrit)

    unread,
    Dec 15, 2025, 12:45:28 PM (21 hours ago) Dec 15
    to Khalid Peer, Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Khalid Peer

    Moe Ahmadi added 1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . unresolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Moe Ahmadi

    that makes sense. `re-invoked every time the user types another character into the Omnibox` this part seems excessive.

    Khalid Peer

    We could implement a more targeted observer method for this, but for [this CL](https://chromium-review.googlesource.com/c/chromium/src/+/7242923) I opted for this approach to deliver a working solution that fit within the M144 timeline.

    That being said, I'm happy to revisit this approach if it turns out to be too expensive from a browser performance POV.

    Moe Ahmadi

    I don't think it'll be too expensive to have mojom calls for every keystroke. as long as it works well in the short term and you can optimize it / make it consistent later, this is good for now. Just wanted to point this out and see whether we're thinking about a longer term solution. please file a bug and leave a TODO for post-MVP. thanks!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Khalid Peer
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Khalid Peer <khali...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 17:45:18 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Khalid Peer (Gerrit)

    unread,
    Dec 15, 2025, 1:45:55 PM (20 hours ago) Dec 15
    to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Moe Ahmadi

    Khalid Peer added 1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . unresolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Moe Ahmadi

    that makes sense. `re-invoked every time the user types another character into the Omnibox` this part seems excessive.

    Khalid Peer

    We could implement a more targeted observer method for this, but for [this CL](https://chromium-review.googlesource.com/c/chromium/src/+/7242923) I opted for this approach to deliver a working solution that fit within the M144 timeline.

    That being said, I'm happy to revisit this approach if it turns out to be too expensive from a browser performance POV.

    Moe Ahmadi

    I don't think it'll be too expensive to have mojom calls for every keystroke. as long as it works well in the short term and you can optimize it / make it consistent later, this is good for now. Just wanted to point this out and see whether we're thinking about a longer term solution. please file a bug and leave a TODO for post-MVP. thanks!

    Khalid Peer

    Sounds good to me! I've gone ahead and filed crbug.com/469098088 to track any potential optimization work as suggested here (and will update this code with a TODO comment).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Moe Ahmadi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
    Gerrit-Change-Number: 7262694
    Gerrit-PatchSet: 2
    Gerrit-Owner: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
    Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 18:45:21 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Khalid Peer (Gerrit)

    unread,
    Dec 15, 2025, 1:45:56 PM (20 hours ago) Dec 15
    to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org
    Attention needed from Moe Ahmadi

    Khalid Peer added 1 comment

    File chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
    Line 108, Patchset 2 (Latest):
    const AutocompleteProviderClient* client =
    autocomplete_controller()->autocomplete_provider_client();
    page_->UpdateLensSearchEligibility(
    ContextualSearchProvider::LensEntrypointEligible(input, client) &&
    input.IsZeroSuggest());
    Moe Ahmadi . resolved

    your CL fixes the crash but I'm curious why we update the eligibility on AutocompleteController Start observation. wouldn't that cause the chip visibility to change? or is this called early enough (before the popup shows)? I don't think this is the ideal event to listen for to update the chip visibility. do you know how the smart tab chip visibility is determined? we should try to be consistent wrt the two.

    Khalid Peer

    For reference, `AutocompleteController::OnStart()` is invoked at the very beginning of [the `AutocompleteController::Start()` method](https://source.chromium.org/chromium/chromium/src/+/main:components/omnibox/browser/autocomplete_controller.cc;l=651-655;drc=9d1a22037ffe551a091c6c76d0f3d2765517b80a).

    Therefore, it's essentially invoked **before** the Omnibox popup shows up (since it depends on the AutocompleteResult that's constructed by `AutocompleteController::Start()`) and will also be re-invoked every time the user types another character into the Omnibox.

    Moe Ahmadi

    that makes sense. `re-invoked every time the user types another character into the Omnibox` this part seems excessive.

    Khalid Peer

    We could implement a more targeted observer method for this, but for [this CL](https://chromium-review.googlesource.com/c/chromium/src/+/7242923) I opted for this approach to deliver a working solution that fit within the M144 timeline.

    That being said, I'm happy to revisit this approach if it turns out to be too expensive from a browser performance POV.

    Moe Ahmadi

    I don't think it'll be too expensive to have mojom calls for every keystroke. as long as it works well in the short term and you can optimize it / make it consistent later, this is good for now. Just wanted to point this out and see whether we're thinking about a longer term solution. please file a bug and leave a TODO for post-MVP. thanks!

    Khalid Peer

    Sounds good to me! I've gone ahead and filed crbug.com/469098088 to track any potential optimization work as suggested here (and will update this code with a TODO comment).

    Khalid Peer

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Moe Ahmadi
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
      Gerrit-Change-Number: 7262694
      Gerrit-PatchSet: 2
      Gerrit-Owner: Khalid Peer <khali...@chromium.org>
      Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
      Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
      Gerrit-Attention: Moe Ahmadi <mah...@chromium.org>
      Gerrit-Comment-Date: Mon, 15 Dec 2025 18:45:32 +0000
      satisfied_requirement
      open
      diffy

      Khalid Peer (Gerrit)

      unread,
      Dec 15, 2025, 1:55:13 PM (20 hours ago) Dec 15
      to Chromium LUCI CQ, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org

      Khalid Peer voted Commit-Queue+2

      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
      Gerrit-Change-Number: 7262694
      Gerrit-PatchSet: 3
      Gerrit-Owner: Khalid Peer <khali...@chromium.org>
      Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
      Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
      Gerrit-Comment-Date: Mon, 15 Dec 2025 18:54:37 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Chromium LUCI CQ (Gerrit)

      unread,
      Dec 15, 2025, 2:49:23 PM (19 hours ago) Dec 15
      to Khalid Peer, chromium...@chromium.org, niharm...@google.com, omnibox-...@chromium.org

      Chromium LUCI CQ submitted the change with unreviewed changes

      Unreviewed changes

      2 is the latest approved patch-set.
      The change was submitted with unreviewed changes in the following files:

      ```
      The name of the file: chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
      Insertions: 4, Deletions: 0.

      @@ -99,6 +99,10 @@

      WebuiOmniboxHandler::~WebuiOmniboxHandler() = default;

      +// TODO(crbug.com/469098088): Use something other than
      +// `AutocompleteController::Observer::OnStart()` to reduce the IPC overhead
      +// due to the fact that `AutocompleteController::Start()` gets invoked on
      +// *every* keystroke in the Omnibox.
      void WebuiOmniboxHandler::OnStart(AutocompleteController* controller,
      const AutocompleteInput& input) {
      // Ignore the call until the page remote is bound and ready to receive calls.
      ```

      Change information

      Commit message:
      [omnibox-next] Fix crash due to unbound page remote.

      This CL essentially adds a conditional `IsRemoteBound()` check to guard
      the `UpdateLensSearchEligibility()` call, which aligns with the approach
      taken in other parts of `webui_omnibox_handler.cc`, to resolve a crash.
      Bug: 468943376
      Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
      Auto-Submit: Khalid Peer <khali...@chromium.org>
      Reviewed-by: Moe Ahmadi <mah...@chromium.org>
      Commit-Queue: Khalid Peer <khali...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#1558896}
      Files:
      • M chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
      Change size: XS
      Delta: 1 file changed, 9 insertions(+), 0 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Moe Ahmadi
      Open in Gerrit
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: merged
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I24c5fde1a71891a9711306d68aa0caf5f4b75d60
      Gerrit-Change-Number: 7262694
      Gerrit-PatchSet: 4
      Gerrit-Owner: Khalid Peer <khali...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Khalid Peer <khali...@chromium.org>
      Gerrit-Reviewer: Moe Ahmadi <mah...@chromium.org>
      open
      diffy
      satisfied_requirement
      Reply all
      Reply to author
      Forward
      0 new messages