New issue
Advanced search Search tips

Issue 607379 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Debug check violated when clearing keyword in omnibox

Project Member Reported by thomasanderson@chromium.org, Apr 28 2016

Issue description

Version: 52.0.2719.0 (64-bit) (ToT)
OS: Ubuntu 14.04

What steps will reproduce the problem?
Enter "google.com|google.com" in the omnibox, where | is the cursor.  Press space to enter keyword mode.  Press backspace to leave keyword mode, and a debug check fails:

#0 0x7f2b78e8c5de base::debug::StackTrace::StackTrace()
#1 0x7f2b78eed43f logging::LogMessage::~LogMessage()
#2 0x7f2b7c9bc7ad AutocompleteMatch::ValidateClassifications()
#3 0x7f2b7c9bc276 AutocompleteMatch::Validate()
#4 0x7f2b7c9c3c64 AutocompleteResult::Validate()
#5 0x7f2b7c9b10ec AutocompleteController::UpdateResult()
#6 0x7f2b7c9b09cb AutocompleteController::Start()
#7 0x7f2b7ca059e3 OmniboxController::StartAutocomplete()
#8 0x7f2b7ca09344 OmniboxEditModel::StartAutocomplete()
#9 0x7f2b7c471592 OmniboxViewViews::UpdatePopup()
#10 0x7f2b7c4713c5 OmniboxViewViews::SetWindowTextAndCaretPos()
#11 0x7f2b7ca21ae0 OmniboxView::SetUserText()
#12 0x7f2b7c47089a OmniboxViewViews::SetUserText()
#13 0x7f2b7ca21a38 OmniboxView::SetUserText()
#14 0x7f2b7ca0c515 OmniboxEditModel::ClearKeyword()
#15 0x7f2b7c473834 OmniboxViewViews::HandleKeyEvent()
#16 0x7f2b6e6b6108 views::Textfield::OnKeyPressed()
#17 0x7f2b7c472ccc OmniboxViewViews::OnKeyPressed()
#18 0x7f2b6e70afa1 views::View::OnKeyEvent()
#19 0x7f2b6e3aada5 ui::EventHandler::OnEvent()
#20 0x7f2b6e3a6320 ui::EventDispatcher::DispatchEvent()
#21 0x7f2b6e3a5c0b ui::EventDispatcher::ProcessEvent()
#22 0x7f2b6e3a59a2 ui::EventDispatcherDelegate::DispatchEventToTarget()
#23 0x7f2b6e3a584f ui::EventDispatcherDelegate::DispatchEvent()
#24 0x7f2b6e3aba41 ui::EventProcessor::OnEventFromSource()
#25 0x7f2b6e3acbaf ui::EventSource::DeliverEventToProcessor()
#26 0x7f2b6e3ac7c7 ui::EventSource::SendEventToProcessor()
#27 0x7f2b6e72abfb views::Widget::OnKeyEvent()
#28 0x7f2b6e77e02e views::DesktopNativeWidgetAura::OnKeyEvent()
#29 0x7f2b6e3aada5 ui::EventHandler::OnEvent()
#30 0x7f2b6e3a6320 ui::EventDispatcher::DispatchEvent()
#31 0x7f2b6e3a5c0b ui::EventDispatcher::ProcessEvent()
#32 0x7f2b6e3a59a2 ui::EventDispatcherDelegate::DispatchEventToTarget()
#33 0x7f2b6e3a584f ui::EventDispatcherDelegate::DispatchEvent()
#34 0x7f2b6e3aba41 ui::EventProcessor::OnEventFromSource()
#35 0x7f2b6e3acbaf ui::EventSource::DeliverEventToProcessor()
#36 0x7f2b6e3ac7c7 ui::EventSource::SendEventToProcessor()
#37 0x7f2b6e2766ac aura::WindowTreeHost::DispatchKeyEventPostIME()
#38 0x7f2b6e8e4edb ui::InputMethodBase::DispatchKeyEventPostIME()
#39 0x7f2b6e8e0882 ui::InputMethodAuraLinux::ProcessKeyEventDone()
#40 0x7f2b6e8e0170 ui::InputMethodAuraLinux::DispatchKeyEvent()
#41 0x7f2b6e79ddc3 views::DesktopWindowTreeHostX11::DispatchKeyEvent()
#42 0x7f2b6e79e106 views::DesktopWindowTreeHostX11::DispatchEvent()
#43 0x7f2b792f798f ui::PlatformEventSource::DispatchEvent()
#44 0x7f2b6e366df4 ui::X11EventSourceGlib::ProcessXEvent()
#45 0x7f2b6e3544ba ui::X11EventSource::ExtractCookieDataDispatchEvent()
#46 0x7f2b6e3543ca ui::X11EventSource::DispatchXEvents()
#47 0x7f2b6e366fb5 ui::(anonymous namespace)::XSourceDispatch()
#48 0x7f2b6a394ce5 g_main_context_dispatch
#49 0x7f2b6a395048 <unknown>
#50 0x7f2b6a3950ec g_main_context_iteration
#51 0x7f2b78f1ceaf base::MessagePumpGlib::Run()
#52 0x7f2b78f09e3f base::MessageLoop::RunHandler()
#53 0x7f2b78fb1814 base::RunLoop::Run()
#54 0x7f2b79b918cf ChromeBrowserMainParts::MainMessageLoopRun()
#55 0x7f2b7257d889 content::BrowserMainLoop::RunMainMessageLoopParts()
#56 0x7f2b725878b5 content::BrowserMainRunnerImpl::Run()
#57 0x7f2b725775e6 content::BrowserMain()
#58 0x7f2b74104fe6 content::RunNamedProcessTypeMain()
#59 0x7f2b74106c59 content::ContentMainRunnerImpl::Run()
#60 0x7f2b74104452 content::ContentMain()
#61 0x7f2b79a88582 ChromeMain

 
Components: UI>Browser>Omnibox
Cc: -pkasting@chromium.org
Labels: -Pri-3 Stability-Crash Pri-2
Owner: pkasting@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 26 2016

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

commit 1919906f73c5c4919651c0d87185e6fb927384ce
Author: pkasting <pkasting@chromium.org>
Date: Tue Jul 26 19:59:03 2016

Switching out of keyword mode shouldn't count as a minimal change.

Previously, if you used space to get into keyword mode and later backspace at
the beginning of the keyword to get out of keyword mode, the backspace would
trigger an autocompletion run with |minimal_changes| == true.  This isn't really
correct; switching out of keyword mode can affect the results and scoring
significantly.  In certain cases, the old route triggered a DCHECK, because
the search provider didn't wipe the old keyword matches across
|minimal_changes|, but the new input had no corresponding keyword input text.

I looked briefly at leaving this as a "minimal change" and instead detecting and
handling it inside the relevant provider(s), but decided that was error-prone
and not really as semantically accurate.  Plus the potential additional flicker
here is fairly minor, as people don't usually exit keyword mode via backspace in
this way.

BUG= 607379 
TEST=In a debug build, type "google.comgoogle.com" (no quotes) into the omnibox, place the cursor between the two "google.com"s, hit space, then hit backspace.  Chrome should not DCHECK.

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

[modify] https://crrev.com/1919906f73c5c4919651c0d87185e6fb927384ce/components/omnibox/browser/autocomplete_controller.cc

Status: Fixed (was: Assigned)
Fixed in r407888.

Sign in to add a comment