New issue
Advanced search Search tips

Issue 905752 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Shift-tab on views-based shelf will crash the lock screen

Project Member Reported by pbos@chromium.org, Nov 15

Issue description

Repro: Build a (debug?) chromeos build of chrome on linux, run chrome, lock the screen and press shift-tab to cycle the entire screen. Tabbing forward works fine.

After you pass "Shut down" chrome crashes with the following stacks:

[221878:221878:1115/185924.312362:FATAL:views_screen_locker.cc(294)] Check failed: false. 
#0 0x7fd60c48d21d base::debug::StackTrace::StackTrace()
#1 0x7fd60c18b33a base::debug::StackTrace::StackTrace()
#2 0x7fd60c1f724e logging::LogMessage::~LogMessage()
#3 0x55743446dadf chromeos::ViewsScreenLocker::HandleFocusOobeDialog()
#4 0x55743a3a7910 LoginScreenClient::FocusOobeDialog()
#5 0x7fd5f2681b16 ash::mojom::LoginScreenClientStubDispatch::Accept()
#6 0x55743a3a8ee3 ash::mojom::LoginScreenClientStub<>::Accept()
#7 0x7fd60c7e106d mojo::InterfaceEndpointClient::HandleValidatedMessage()
#8 0x7fd60c7dfb01 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#9 0x7fd60c7ddfd8 mojo::FilterChain::Accept()
#10 0x7fd60c7e3a06 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#11 0x7fd60c7f03d2 mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#12 0x7fd60c7ef9f5 mojo::internal::MultiplexRouter::Accept()
#13 0x7fd60c7ddfd8 mojo::FilterChain::Accept()
#14 0x7fd60c7d0684 mojo::Connector::ReadSingleMessage()
#15 0x7fd60c7d162a mojo::Connector::ReadAllAvailableMessages()
#16 0x7fd60c7d13f8 mojo::Connector::OnHandleReadyInternal()
#17 0x7fd60c7d12fb mojo::Connector::OnWatcherHandleReady()
#18 0x7fd60c7d4e9f _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIS5_PS3_JjEEEvT_OT0_DpOT1_
#19 0x7fd60c7d4dcf _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#20 0x7fd60c7d4d65 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEEOj
#21 0x7fd60c7d4c8b _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEj
#22 0x7fd60c7cbc9e _ZNKR4base17RepeatingCallbackIFvjEE3RunEj
#23 0x7fd60c7d3ddf mojo::SimpleWatcher::DiscardReadyState()
#24 0x7fd60c7d404f _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEvE6InvokeIRKSC_JS6_jSA_EEEvOT_DpOT0_
#25 0x7fd60c7d3fed _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS8_jSC_EEEvOT_DpOT0_
#26 0x7fd60c7d3f90 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE7RunImplIRKSD_RKNSt3__15tupleIJS5_EEEJLm0EEEEvOT_OT0_NSK_16integer_sequenceImJXspT1_EEEEOjSB_
#27 0x7fd60c7d3eb6 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE3RunEPNS0_13BindStateBaseEjSB_
#28 0x7fd60c769b7e _ZNKR4base17RepeatingCallbackIFvjRKN4mojo18HandleSignalsStateEEE3RunEjS4_
#29 0x7fd60c76951b mojo::SimpleWatcher::OnHandleReady()
#30 0x7fd60c76a333 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijRKNS2_18HandleSignalsStateEEvE6InvokeIS8_RKNS_7WeakPtrIS3_EEJRKiRKjS6_EEEvT_OT0_DpOT1_
#31 0x7fd60c76a275 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijRKNS4_18HandleSignalsStateEERKNS_7WeakPtrIS5_EEJRKiRKjS8_EEEvOT_OT0_DpOT1_
#32 0x7fd60c76a1d2 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#33 0x7fd60c76a01c _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE3RunEPNS0_13BindStateBaseE
#34 0x7fd60c13d10e _ZNO4base12OnceCallbackIFvvEE3RunEv
#35 0x7fd60c18c7ea base::debug::TaskAnnotator::RunTask()
#36 0x7fd60c21d9bc base::MessageLoopImpl::RunTask()
#37 0x7fd60c21dcbb base::MessageLoopImpl::DeferOrRunPendingTask()
#38 0x7fd60c21e2d4 base::MessageLoopImpl::DoWork()
#39 0x7fd60c4e0279 base::MessagePumpLibevent::Run()
#40 0x7fd60c21d1d6 base::MessageLoopImpl::Run()
#41 0x7fd60c2c8ab2 base::RunLoop::Run()
#42 0x5574357ae7ce ChromeBrowserMainParts::MainMessageLoopRun()
#43 0x7fd6047c6133 content::BrowserMainLoop::RunMainMessageLoopParts()
#44 0x7fd6047ce500 content::BrowserMainRunnerImpl::Run()
#45 0x7fd6047b961e content::BrowserMain()
#46 0x7fd606a60bd0 content::RunBrowserProcessMain()
#47 0x7fd606a63779 content::ContentMainRunnerImpl::Run()
#48 0x7fd606a599ec content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#49 0x7fd5d9c39261 service_manager::Main()
#50 0x7fd606a5e305 content::ContentMain()
#51 0x557431967ac6 ChromeMain
#52 0x5574319679d2 main
#53 0x7fd5dbbd62b1 __libc_start_main
#54 0x5574319678aa _start

Received signal 6
#0 0x7fd60c48d21d base::debug::StackTrace::StackTrace()
#1 0x7fd60c18b33a base::debug::StackTrace::StackTrace()
#2 0x7fd60c48cc9f base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7fd5dd4b00c0 <unknown>
#4 0x7fd5dbbe8fcf gsignal
#5 0x7fd5dbbea3fa abort
#6 0x7fd60c48c506 base::debug::(anonymous namespace)::DebugBreak()
#7 0x7fd60c48c4e8 base::debug::BreakDebugger()
#8 0x7fd60c1f8004 logging::LogMessage::~LogMessage()
#9 0x55743446dadf chromeos::ViewsScreenLocker::HandleFocusOobeDialog()
#10 0x55743a3a7910 LoginScreenClient::FocusOobeDialog()
#11 0x7fd5f2681b16 ash::mojom::LoginScreenClientStubDispatch::Accept()
#12 0x55743a3a8ee3 ash::mojom::LoginScreenClientStub<>::Accept()
#13 0x7fd60c7e106d mojo::InterfaceEndpointClient::HandleValidatedMessage()
#14 0x7fd60c7dfb01 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#15 0x7fd60c7ddfd8 mojo::FilterChain::Accept()
#16 0x7fd60c7e3a06 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#17 0x7fd60c7f03d2 mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#18 0x7fd60c7ef9f5 mojo::internal::MultiplexRouter::Accept()
#19 0x7fd60c7ddfd8 mojo::FilterChain::Accept()
#20 0x7fd60c7d0684 mojo::Connector::ReadSingleMessage()
#21 0x7fd60c7d162a mojo::Connector::ReadAllAvailableMessages()
#22 0x7fd60c7d13f8 mojo::Connector::OnHandleReadyInternal()
#23 0x7fd60c7d12fb mojo::Connector::OnWatcherHandleReady()
#24 0x7fd60c7d4e9f _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIS5_PS3_JjEEEvT_OT0_DpOT1_
#25 0x7fd60c7d4dcf _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#26 0x7fd60c7d4d65 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEEOj
#27 0x7fd60c7d4c8b _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEj
#28 0x7fd60c7cbc9e _ZNKR4base17RepeatingCallbackIFvjEE3RunEj
#29 0x7fd60c7d3ddf mojo::SimpleWatcher::DiscardReadyState()
#30 0x7fd60c7d404f _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEvE6InvokeIRKSC_JS6_jSA_EEEvOT_DpOT0_
#31 0x7fd60c7d3fed _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS8_jSC_EEEvOT_DpOT0_
#32 0x7fd60c7d3f90 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE7RunImplIRKSD_RKNSt3__15tupleIJS5_EEEJLm0EEEEvOT_OT0_NSK_16integer_sequenceImJXspT1_EEEEOjSB_
#33 0x7fd60c7d3eb6 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE3RunEPNS0_13BindStateBaseEjSB_
#34 0x7fd60c769b7e _ZNKR4base17RepeatingCallbackIFvjRKN4mojo18HandleSignalsStateEEE3RunEjS4_
#35 0x7fd60c76951b mojo::SimpleWatcher::OnHandleReady()
#36 0x7fd60c76a333 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijRKNS2_18HandleSignalsStateEEvE6InvokeIS8_RKNS_7WeakPtrIS3_EEJRKiRKjS6_EEEvT_OT0_DpOT1_
#37 0x7fd60c76a275 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijRKNS4_18HandleSignalsStateEERKNS_7WeakPtrIS5_EEJRKiRKjS8_EEEvOT_OT0_DpOT1_
#38 0x7fd60c76a1d2 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#39 0x7fd60c76a01c _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE3RunEPNS0_13BindStateBaseE
#40 0x7fd60c13d10e _ZNO4base12OnceCallbackIFvvEE3RunEv
#41 0x7fd60c18c7ea base::debug::TaskAnnotator::RunTask()
#42 0x7fd60c21d9bc base::MessageLoopImpl::RunTask()
#43 0x7fd60c21dcbb base::MessageLoopImpl::DeferOrRunPendingTask()
#44 0x7fd60c21e2d4 base::MessageLoopImpl::DoWork()
#45 0x7fd60c4e0279 base::MessagePumpLibevent::Run()
#46 0x7fd60c21d1d6 base::MessageLoopImpl::Run()
#47 0x7fd60c2c8ab2 base::RunLoop::Run()
#48 0x5574357ae7ce ChromeBrowserMainParts::MainMessageLoopRun()
#49 0x7fd6047c6133 content::BrowserMainLoop::RunMainMessageLoopParts()
#50 0x7fd6047ce500 content::BrowserMainRunnerImpl::Run()
#51 0x7fd6047b961e content::BrowserMain()
#52 0x7fd606a60bd0 content::RunBrowserProcessMain()
#53 0x7fd606a63779 content::ContentMainRunnerImpl::Run()
#54 0x7fd606a599ec content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#55 0x7fd5d9c39261 service_manager::Main()
#56 0x7fd606a5e305 content::ContentMain()
#57 0x557431967ac6 ChromeMain
#58 0x5574319679d2 main
#59 0x7fd5dbbd62b1 __libc_start_main
#60 0x5574319678aa _start
  r8: 0000000000000000  r9: 00007ffc80f3b9c0 r10: 0000000000000008 r11: 0000000000000246
 r12: 0000557431967880 r13: 00007ffc80f45470 r14: 0000000000000000 r15: 0000000000000000
  di: 0000000000000002  si: 00007ffc80f3b9c0  bp: 00007ffc80f3bc00  bx: 0000000000000006
  dx: 0000000000000000  ax: 0000000000000000  cx: 00007fd5dbbe8fcf  sp: 00007ffc80f3ba38
  ip: 00007fd5dbbe8fcf efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

jdufault@ can you help triage?
 
Cc: jdufault@chromium.org
Owner: qnnguyen@chromium.org
Status: Assigned (was: Untriaged)
Coming from [1]; one option is to only focus the OOBE dialog on the login screen.

1: https://cs.chromium.org/chromium/src/ash/shelf/login_shelf_view.cc?l=396-397&rcl=0688b8a4b05ab68b0fd77b33b10e64e19d767a12
Components: -UI>Shell UI>Shell>LockScreen
Labels: -Pri-3 M-73 OS-Chrome Pri-1
Bumping to P1 since this will kick the user out of their session.
Summary: Shift-tab on views-based shelf will crash the lock screen (was: NOTREACHED in chromeos::ViewsScreenLocker::HandleFocusOobeDialog when shift-tabbing the ash lock screen)
Do we need these AboutToRequestFocusFromTabTraversal overrides, or could we make use of SetFocusTraversableParent here, like I just did in crrev.com/c/1338222 ?

If so, we could refactor that focus setup to a reusable method.

https://cs.chromium.org/chromium/src/ash/shelf/login_shelf_view.cc?rcl=0688b8a4b05ab68b0fd77b33b10e64e19d767a12&l=336
@pbos - i think that might be a good way to go. If we go that route, we'll need to change the traversable parent depending on whether we're in lock or login screen. I can investigate that.

@jdufault - if we're in the lock screen, should shift-tab go from the end of the shelf to the user pod? Just making sure that's the behavior we'd like.
It should go in reverse order of tabbing, so iirc that's the end of the user list.
qnnguyen@: Is the traversable parent always the anchor? Tabbing to the anchor and then tabbing again gets you into the widget, and if we set up this thing that's where focus returns once you've tabbed through the entire widget (instead of cycling inside it).
pbos@ - In this context i'm not sure I understand what the anchor is, and I realize I misunderstood the traversable parent concept as well. I'm not sure it really applies in this scenario, since the LoginShelfView shouldn't be traversable at all.

The fix I came up with (https://chromium-review.googlesource.com/c/chromium/src/+/1338111) is fairly simple.
Cc: mukai@chromium.org
 Issue 905872  has been merged into this issue.
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 16

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

commit 805a7dfe713fff624abdb319264ac446d50d7f89
Author: Quan Nguyen <qnnguyen@chromium.org>
Date: Fri Nov 16 19:51:54 2018

cros: Don't attempt to focus OOBE dialog if it is not showing

This prevents an invalid request while in the lock screen, since the OOBE
dialog does not exist.

Bug:  905752 
Change-Id: Ie1f820877ea659c9cbfa1e260c2e6a49776e46c9
Reviewed-on: https://chromium-review.googlesource.com/c/1338111
Reviewed-by: Michael Wasserman <msw@chromium.org>
Reviewed-by: Jacob Dufault <jdufault@chromium.org>
Commit-Queue: Quan Nguyen <qnnguyen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608903}
[modify] https://crrev.com/805a7dfe713fff624abdb319264ac446d50d7f89/ash/shelf/login_shelf_view.cc

Status: Fixed (was: Assigned)

Sign in to add a comment