Crash in FocusManager on ChromeOS OOBE. |
||||||||||||
Issue descriptionHow to reproduce: 1) Build Chrome for ChromeOS 2) Start it with empty user dir: ninja -C out/Release/ -j3000 chrome chrome_sandbox && (UDD=$HOME/cros-test-user-data-dir-tmp ; rm -rf $HOME/cros-test-user-data-dir-tmp ; mkdir -p $HOME/cros-test-user-data-dir-tmp ; ./out/Release/chrome --login-manager --login-profile=user --user-data-dir=$UDD --disable-setuid-sandbox --no-sandbox --remote-debugging-port=9999 ) 3) Click on "Accessibility", then use "Tab" to cycle through the elements. After focusing Status tray (i.e. after focus is moved from WebUI elements to native UI), chrome will crash: [36727:36727:0215/142632.739737:FATAL:focus_manager.cc(306)] Check failed: !view || ContainsView(view). #0 0x7f437f00a1fb base::debug::StackTrace::StackTrace() #1 0x7f437f00887c base::debug::StackTrace::StackTrace() #2 0x7f437f06c4ec logging::LogMessage::~LogMessage() #3 0x7f4373304360 views::FocusManager::SetFocusedViewWithReason() #4 0x7f43733041af views::FocusManager::AdvanceFocus() #5 0x7f4373303d00 views::FocusManager::OnKeyEvent() #6 0x7f4373361a0b views::Widget::OnKeyEvent() #7 0x7f43733b316e views::NativeWidgetAura::OnKeyEvent() #8 0x7f4372fafd63 ui::EventHandler::OnEvent() #9 0x7f4372faba80 ui::EventDispatcher::DispatchEvent() #10 0x7f4372fab3db ui::EventDispatcher::ProcessEvent() #11 0x7f4372fab172 ui::EventDispatcherDelegate::DispatchEventToTarget() #12 0x7f4372fab052 ui::EventDispatcherDelegate::DispatchEvent() #13 0x7f4372fb0a0b ui::EventProcessor::OnEventFromSource() #14 0x7f436fe05428 ash::AshWindowTreeHostX11::DispatchKeyEventPostIME() #15 0x7f436fe0548c ash::AshWindowTreeHostX11::DispatchKeyEventPostIME() #16 0x7f436fde3b18 ash::WindowTreeHostManager::DispatchKeyEventPostIME() #17 0x7f436fde3b5c ash::WindowTreeHostManager::DispatchKeyEventPostIME() #18 0x7f437543092b ui::InputMethodBase::DispatchKeyEventPostIME() #19 0x7f4375438715 ui::InputMethodChromeOS::ProcessUnfilteredKeyPressEvent() #20 0x7f4375438338 ui::InputMethodChromeOS::DispatchKeyEvent() #21 0x7f4375438a34 ui::InputMethodChromeOS::DispatchKeyEvent() #22 0x7f436fe0629d ash::InputMethodEventHandler::OnKeyEvent() #23 0x7f4372fafd63 ui::EventHandler::OnEvent() #24 0x7f4372faba80 ui::EventDispatcher::DispatchEvent() #25 0x7f4372fab835 ui::EventDispatcher::DispatchEventToEventHandlers() #26 0x7f4372fab344 ui::EventDispatcher::ProcessEvent() #27 0x7f4372fab172 ui::EventDispatcherDelegate::DispatchEventToTarget() #28 0x7f4372fab052 ui::EventDispatcherDelegate::DispatchEvent() #29 0x7f4372fb0a0b ui::EventProcessor::OnEventFromSource() #30 0x7f4372fb1985 ui::EventSource::DeliverEventToProcessor() #31 0x7f4372fb15fc ui::EventSource::SendEventToProcessor() #32 0x7f437186cbb2 aura::WindowTreeHostX11::DispatchEvent() #33 0x7f437c0a631d ui::PlatformEventSource::DispatchEvent() #34 0x7f436e90a934 ui::X11EventSourceGlib::ProcessXEvent() #35 0x7f436e8f7928 ui::X11EventSource::ExtractCookieDataDispatchEvent() #36 0x7f436e8f78a7 ui::X11EventSource::DispatchXEvents() #37 0x7f436e90aad5 ui::(anonymous namespace)::XSourceDispatch() #38 0x7f436a076ce5 g_main_context_dispatch #39 0x7f436a077048 <unknown> #40 0x7f436a0770ec g_main_context_iteration #41 0x7f437f0a8def base::MessagePumpGlib::Run() #42 0x7f437f093132 base::MessageLoop::RunHandler() #43 0x7f437f135f74 base::RunLoop::Run() #44 0x7f4382085cc6 ChromeBrowserMainParts::MainMessageLoopRun() #45 0x7f437861cb8b content::BrowserMainLoop::RunMainMessageLoopParts() #46 0x7f437862afc5 content::BrowserMainRunnerImpl::Run() #47 0x7f43786164a8 content::BrowserMain() #48 0x7f4379d2d0d6 content::RunNamedProcessTypeMain() #49 0x7f4379d2f2ee content::ContentMainRunnerImpl::Run() #50 0x7f4379d2c342 content::ContentMain() #51 0x7f43802c8c26 ChromeMain #52 0x7f43802c8ae2 main #53 0x7f4367217f45 __libc_start_main #54 0x7f43802c89e5 <unknown> Received signal 6
,
Feb 15 2017
,
Feb 16 2017
,
Feb 16 2017
Looks like WebuiLoginView that provides FocusTraversable/FocusSearch return a view on the WebuiLoginView when the focus in on the status widget. I understand why we want, although I'm not sure if that's a valid way to transfer a focus from one widget to another. The following CL fixed the problem while preserving the behavior. https://codereview.chromium.org/2696223003/ sky@ what's your suggestion?
,
Feb 16 2017
That seems like a bug in the FocusTraversable implementation. FocusTraversable should return a view in the same widget.
,
Feb 16 2017
Looks like it's regression in https://codereview.chromium.org/2295843006 -> wax@ cc'ing reviewers
,
Feb 16 2017
,
Feb 16 2017
Issue 687232 has been merged into this issue.
,
Feb 17 2017
Pulling forward labels from 687232. This is a top 5 crasher at the moment.
,
Feb 17 2017
While we have this CHECK enabled, it would be good to see if we're hitting it on windows too. If it is hitting on windows it'll be a different reason, but we should verify that.
,
Feb 17 2017
yes, crash is blamed on https://codereview.chromium.org/2295843006/, where GetFocusTraversableParentView returns a view in a different widget: https://cs.chromium.org/chromium/src/chrome/browser/chromeos/login/ui/webui_login_view.cc?l=170 I am working on a revert and thinking of another way to solve issue 468969 comment 7.
,
Feb 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce commit 26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce Author: warx <warx@chromium.org> Date: Wed Feb 22 10:44:06 2017 Revert of Signin screen and locked screen status area focus advancing (https://codereview.chromium.org/2295843006) Revert reason: Revert to get rid of the crash before having a proper fix. BUG= 692784 BUG= 468969 TEST=crash doesn't happen now, leaving the bug in crbug.com/468969 comment 7 reopen. Review-Url: https://codereview.chromium.org/2709593002 Cr-Commit-Position: refs/heads/master@{#451983} [modify] https://crrev.com/26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce/ash/common/system/status_area_widget_delegate.cc [modify] https://crrev.com/26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce/ash/common/system/status_area_widget_delegate.h [modify] https://crrev.com/26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce/chrome/browser/chromeos/login/ui/webui_login_view.cc [modify] https://crrev.com/26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce/chrome/browser/chromeos/login/ui/webui_login_view.h
,
Feb 22 2017
merge request to m57 for #12
,
Feb 22 2017
Approving merge to M57 Chrome OS.
,
Feb 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7238549d0ff22bd230e3ad83b4c4508335acb507 commit 7238549d0ff22bd230e3ad83b4c4508335acb507 Author: Qiang Xu <warx@chromium.org> Date: Wed Feb 22 18:23:17 2017 [Merge to M57] Revert of Signin screen and locked screen status area focus advancing (https://codereview.chromium.org/2295843006) Revert reason: Revert to get rid of the crash before having a proper fix. TBR=xiyuan@chromium.org, stevenjb@chromium.org, achuith@chromium.org BUG= 692784 BUG= 468969 TEST=crash doesn't happen now, leaving the bug in crbug.com/468969 comment 7 reopen. Review-Url: https://codereview.chromium.org/2709593002 Cr-Commit-Position: refs/heads/master@{#451983} (cherry picked from commit 26f01531f9e0ecd2e0cde6cf5dacb0e4b70610ce) Review-Url: https://codereview.chromium.org/2711793002 . Cr-Commit-Position: refs/branch-heads/2987@{#643} Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943} [modify] https://crrev.com/7238549d0ff22bd230e3ad83b4c4508335acb507/ash/common/system/status_area_widget_delegate.cc [modify] https://crrev.com/7238549d0ff22bd230e3ad83b4c4508335acb507/ash/common/system/status_area_widget_delegate.h [modify] https://crrev.com/7238549d0ff22bd230e3ad83b4c4508335acb507/chrome/browser/chromeos/login/ui/webui_login_view.cc [modify] https://crrev.com/7238549d0ff22bd230e3ad83b4c4508335acb507/chrome/browser/chromeos/login/ui/webui_login_view.h
,
Feb 22 2017
,
Apr 27 2017
,
May 16 2017
9334.69.0, 58.0.3029.112 |
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by tapted@chromium.org
, Feb 15 2017Status: Assigned (was: Untriaged)