Shift-tab on views-based shelf will crash the lock screen |
||||
Issue descriptionRepro: 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?
,
Nov 15
Bumping to P1 since this will kick the user out of their session.
,
Nov 15
,
Nov 15
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
,
Nov 15
@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.
,
Nov 15
It should go in reverse order of tabbing, so iirc that's the end of the user list.
,
Nov 15
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).
,
Nov 16
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.
,
Nov 16
,
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
,
Nov 16
|
||||
►
Sign in to add a comment |
||||
Comment 1 by jdufault@chromium.org
, Nov 15Owner: qnnguyen@chromium.org
Status: Assigned (was: Untriaged)