New issue
Advanced search Search tips

Issue 642506 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

Deleting omnibox text before tapping autocomplete suggestion causes DCHECK failure

Project Member Reported by mattreynolds@chromium.org, Aug 30 2016

Issue description

Version: 55.0.2845.0 (developer build)
OS: iOS

What steps will reproduce the problem?

0. Copy a URL (eg: http://example.com/) so there's a URL in the clipboard
1. In Chrome for iOS, open http://www.google.com in a new tab
2. Tap the omnibox to show the list of autocomplete suggestions.  There should be two items: one for the current URL (google.com) and one for the clipboard contents ("Link you copied").
3. Press Backspace to clear the omnibox input field.
4. Tap either of the autocomplete suggestions.

Expected:

Chrome should navigate to the suggested page

Actual:

DCHECK failure in OmniboxEditModel::OpenMatch:

[0830/141550:FATAL:omnibox_edit_model.cc(706)] Check failed: dropdown_ignored || (log.elapsed_time_since_user_first_modified_omnibox >= log.elapsed_time_since_last_change_to_default_match). We should've got the notification that the user modified the omnibox text at same time or before the most recent time the default match changed.
 
Components: UI>Browser>Omnibox
What was in the omnibox input field in step 2? (that you then deleted in step 3)

I think this DCHECK is catching something useful.  elapsed_time_since_user_first_modified_omnibox should be valid (and == TimeTickets::Now()) because the user just modified the omnibox (by deleting something; I'm not sure what, see first question).

In step 2, focusing the omnibox input field automatically fills it with the current page URL, in this case http://www.google.com.

elapsed_time_since_user_first_modified_omnibox seems to be correct, it gets updated when I press Backspace.  elapsed_time_since_last_change_to_default_match is not updated, probably because the default match (the verbatim match) doesn't change.
Ah, I see.  Thanks for the clarification.

It seem this line is wrong:
https://cs.chromium.org/chromium/src/components/omnibox/browser/omnibox_edit_model.cc?l=674
Rather than testing for ZERO_SUGGEST provider, it should be testing whether the input came is input_.from_omnibox_focus().  That's in effect what the comment is getting at.

Please feel free to send me a review.  (I have no iOS development device.)
Owner: mattreynolds@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Sep 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd3f511431f2ac322a69d024b20ae012c9f21a92

commit cd3f511431f2ac322a69d024b20ae012c9f21a92
Author: mattreynolds <mattreynolds@chromium.org>
Date: Thu Sep 01 17:57:48 2016

Skip omnibox default match update check when input is from omnibox focus

Previously we would avoid this check for the ZeroSuggestProvider
specifically, but it should be avoided in all cases where the omnibox input
was not created by the user.

This change also fixes a bug on iOS where selecting an autocomplete
suggestion after deleting the auto-filled input text would cause this check
to fail.

BUG= 642506 

Review-Url: https://codereview.chromium.org/2295043005
Cr-Commit-Position: refs/heads/master@{#415993}

[modify] https://crrev.com/cd3f511431f2ac322a69d024b20ae012c9f21a92/components/omnibox/browser/omnibox_edit_model.cc

Status: Fixed (was: Assigned)

Sign in to add a comment