New issue
Advanced search Search tips

Issue 605218 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Chrome crashes in mash when checking deprecated accelerators

Project Member Reported by kylec...@chromium.org, Apr 20 2016

Issue description

The chrome browser crashes once any keyboard input events are routed to a BrowserView::PreHandleKeyboardEvent inside mash. The BrowserView calls chrome::IsAcceleratorDeprecated which calls ash::Shell::GetInstance. There is no ash::Shell instance so the chrome browser crashes here with the following stack trace:

[141344:141344:0420/145118:FATAL:shell.cc(212)] Check failed: instance_. 
#0 0x7f7cd7eeaa9e base::debug::StackTrace::StackTrace()
#1 0x7f7cd7f07c1a logging::LogMessage::~LogMessage()
#2 0x7f7cd32b2161 ash::Shell::GetInstance()
#3 0x7f7cd96d9329 chrome::IsAcceleratorDeprecated()
#4 0x7f7cd976a810 BrowserView::PreHandleKeyboardEvent()
#5 0x7f7cd95c2cdb Browser::PreHandleKeyboardEvent()
#6 0x7f7cd5b511dd content::WebContentsImpl::PreHandleKeyboardEvent()
#7 0x7f7cd5a6d441 content::RenderWidgetHostImpl::ForwardKeyboardEvent()
#8 0x7f7cd5a75a7a content::RenderWidgetHostViewAura::OnKeyEvent()
#9 0x7f7cd35d182b ui::EventDispatcher::ProcessEvent()
#10 0x7f7cd35d15dd ui::EventDispatcherDelegate::DispatchEvent()
#11 0x7f7cd35d2247 ui::EventProcessor::OnEventFromSource()
#12 0x7f7cd35d272c ui::EventSource::SendEventToProcessor()
#13 0x7f7cd38fd730 ui::InputMethodBase::DispatchKeyEventPostIME()
#14 0x7f7cd1fd2e1b views::InputMethodMUS::DispatchKeyEvent()
#15 0x7f7cd1fdd0b7 views::WindowTreeHostMus::DispatchEvent()
#16 0x7f7cd1fd6d8c views::PlatformWindowMus::OnWindowInputEvent()
#17 0x7f7cd1febf31 mus::WindowTreeClientImpl::OnWindowInputEvent()
#18 0x7f7cd201b54c mus::mojom::WindowTreeClientStub::Accept()
#19 0x7f7cd1ff4d7a mojo::internal::InterfaceEndpointClient::HandleValidatedMessage()
#20 0x7f7cd201e2e4 mus::mojom::WindowTreeClientRequestValidator::Accept()
#21 0x7f7cd1ff5a5a mojo::internal::InterfaceEndpointClient::HandleIncomingMessage()
#22 0x7f7cd1ff94f9 mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#23 0x7f7cd1ff8ff1 mojo::internal::MultiplexRouter::Accept()
#24 0x7f7cd1ff6a5f mojo::internal::MessageHeaderValidator::Accept()
#25 0x7f7cd1ff3ec2 mojo::internal::Connector::ReadSingleMessage()
#26 0x7f7cd1ff43d4 mojo::internal::Connector::OnHandleReadyInternal()
#27 0x7f7cd20214ab mojo::Watcher::OnHandleReady()
#28 0x7f7cd1ff451f _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0ELm1EEEENS0_9BindStateINS0_15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEEEFvPS8_jEJRNS_7WeakPtrIS8_EERjEEENS0_12InvokeHelperILb1EvSB_EEFvvEE3RunEPNS0_13BindStateBaseE
#29 0x7f7cd7eebb06 base::debug::TaskAnnotator::RunTask()
#30 0x7f7cd7f119c5 base::MessageLoop::RunTask()
#31 0x7f7cd7f11cf8 base::MessageLoop::DeferOrRunPendingTask()
#32 0x7f7cd7f11f0b base::MessageLoop::DoWork()
#33 0x7f7cd7f14909 base::MessagePumpLibevent::Run()
#34 0x7f7cd7f11561 base::MessageLoop::RunHandler()
#35 0x7f7cd7f3c78d base::RunLoop::Run()
#36 0x7f7cd8691a05 ChromeBrowserMainParts::MainMessageLoopRun()
#37 0x7f7cd57de892 content::BrowserMainLoop::RunMainMessageLoopParts()
#38 0x7f7cd57e16d8 content::BrowserMainRunnerImpl::Run()
#39 0x7f7cd57d9e66 content::BrowserMain()
#40 0x7f7cd60e6991 content::ContentMainRunnerImpl::Run()
#41 0x7f7cd60e5680 content::ContentMain()
#42 0x7f7cd864a303 ChromeMain
#43 0x7f7ccfc0bec5 __libc_start_main
#44 0x7f7cd864a18f <unknown>
 
Owner: kylec...@chromium.org
Status: Started (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 21 2016

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

commit 5d7c79e257fecde79e9a5f98621a68f283c52198
Author: kylechar <kylechar@chromium.org>
Date: Thu Apr 21 17:43:33 2016

Don't check ash accelerators in browser with mash.

The chrome browser is crashing when chrome::IsAcceleratorDeprecated() is
called when running mash. This is due to ash::Shell not existing in the
browser process.

The chrome browser process shouldn't be handling ash accelerators in
mash, it should be done by the mus process. Bail out early from the
method if running in mash instead.

BUG= 605218 

Review URL: https://codereview.chromium.org/1902393003

Cr-Commit-Position: refs/heads/master@{#388807}

[modify] https://crrev.com/5d7c79e257fecde79e9a5f98621a68f283c52198/chrome/browser/ui/ash/ash_util.cc

Status: Fixed (was: Started)
Components: Internals>Services>WindowService
Components: -MUS>Phase>1

Sign in to add a comment