New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 730887 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 557406
issue 681072



Sign in to add a comment

mash: Ink drop remains on the AppList shelf button when the app list window hides.

Project Member Reported by msw@chromium.org, Jun 8 2017

Issue description

mash: Ink drop broken and crashes clicking the QuickLaunch shelf item.

In chrome --mash
(1) Click the QuickLaunch shelf item. (notice that the ink drop gets stuck)
(2) Click the QuickLaunch shelf item again.
Expected: The item activates/minimizes/restores as appropriate.
Actual: The ink drop gets stuck and the second click will cause a crash.

This is related to (blocking)  Issue 557406 , and (blocking?)  Issue 681072 .

Crash stack:
[10704:10704:0607/172104.954504:190127305586:FATAL:square_ink_drop_ripple.cc(237)] Check failed: InkDropState::HIDDEN == old_ink_drop_state (0 vs. 1) old_ink_drop_state=ACTION_PENDING
#0 0x7f59845b51eb base::debug::StackTrace::StackTrace()
#1 0x7f59845b3f2c base::debug::StackTrace::StackTrace()
#2 0x7f5984620107 logging::LogMessage::~LogMessage()
#3 0x7f5977f86ec3 views::SquareInkDropRipple::AnimateStateChange()
#4 0x7f5977f84096 views::InkDropRipple::AnimateToState()
#5 0x7f5977f7ccc3 views::InkDropImpl::AnimateToState()
#6 0x7f5977f7811e views::InkDropHostView::AnimateInkDrop()
#7 0x7f5977fa7692 views::CustomButton::OnMousePressed()
#8 0x7f597587c407 ash::ShelfButton::OnMousePressed()
#9 0x7f597807f582 views::View::ProcessMousePressed()
#10 0x7f597807f236 views::View::OnMouseEvent()
#11 0x7f5977f78536 views::InkDropHostView::OnMouseEvent()
#12 0x7f597a282e63 ui::EventHandler::OnEvent()
#13 0x7f597a28b615 ui::ScopedTargetHandler::OnEvent()
#14 0x7f597a27ec00 ui::EventDispatcher::DispatchEvent()
#15 0x7f597a27e55b ui::EventDispatcher::ProcessEvent()
#16 0x7f597a27e2f2 ui::EventDispatcherDelegate::DispatchEventToTarget()
#17 0x7f597a27e1d2 ui::EventDispatcherDelegate::DispatchEvent()
#18 0x7f597809b566 views::internal::RootView::OnMousePressed()
#19 0x7f59780a3826 views::Widget::OnMouseEvent()
#20 0x7f59780f45ee views::NativeWidgetAura::OnMouseEvent()
#21 0x7f597a282e63 ui::EventHandler::OnEvent()
#22 0x7f597a27ec00 ui::EventDispatcher::DispatchEvent()
#23 0x7f597a27e55b ui::EventDispatcher::ProcessEvent()
#24 0x7f597a27e2f2 ui::EventDispatcherDelegate::DispatchEventToTarget()
#25 0x7f597a27e1d2 ui::EventDispatcherDelegate::DispatchEvent()
#26 0x7f597a283c91 ui::EventProcessor::OnEventFromSource()
#27 0x7f597a283ddc ui::EventProcessor::OnEventFromSource()
#28 0x7f597a284cb5 ui::EventSource::DeliverEventToSink()
#29 0x7f597a28492c ui::EventSource::SendEventToSink()
#30 0x7f5979ccfbec aura::WindowTreeHostMus::SendEventToSink()
#31 0x7f5979cbf094 aura::(anonymous namespace)::DispatchEventToTarget()
#32 0x7f5979cbec39 aura::WindowTreeClient::OnWindowInputEvent()
#33 0x7f5979d8b5a1 ui::mojom::WindowTreeClientStubDispatch::Accept()
#34 0x7f5979cd0833 ui::mojom::WindowTreeClientStub<>::Accept()
#35 0x7f5984a52ea2 mojo::InterfaceEndpointClient::HandleValidatedMessage()
#36 0x7f5984a52861 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#37 0x7f5984a50760 mojo::FilterChain::Accept()
#38 0x7f5984a546df mojo::InterfaceEndpointClient::HandleIncomingMessage()
#39 0x7f5984a68e5c mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#40 0x7f5984a686e4 mojo::internal::MultiplexRouter::Accept()
#41 0x7f5984a50760 mojo::FilterChain::Accept()
#42 0x7f5984a45562 mojo::Connector::ReadSingleMessage()
#43 0x7f5984a460de mojo::Connector::ReadAllAvailableMessages()
#44 0x7f5984a45f2e mojo::Connector::OnHandleReadyInternal()
#45 0x7f5984a45e2b mojo::Connector::OnWatcherHandleReady()
#46 0x7f5984a48d6c _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIPS3_JjEEEvS5_OT_DpOT0_
#47 0x7f5984a48c76 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#48 0x7f5984a48c07 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEEOj
#49 0x7f5984a48b0c _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEOj
#50 0x7f5984d3db81 _ZNKR4base8CallbackIFvjELNS_8internal8CopyModeE1ELNS2_10RepeatModeE1EE3RunEj
#51 0x7f5984d3cfd1 mojo::SimpleWatcher::OnHandleReady()
#52 0x7f5984d3e573 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijEvE6InvokeIRKNS_7WeakPtrIS3_EEJRKiRKjEEEvS5_OT_DpOT0_
#53 0x7f5984d3e3c4 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijERKNS_7WeakPtrIS5_EEJRKiRKjEEEvOT_OT0_DpOT1_
#54 0x7f5984d3e324 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijEJNS_7WeakPtrIS4_EEijEEEFvvEE7RunImplIRKS6_RKSt5tupleIJS8_ijEEJLm0ELm1ELm2EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE
#55 0x7f5984d3e1cc _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijEJNS_7WeakPtrIS4_EEijEEEFvvEE3RunEPNS0_13BindStateBaseE
#56 0x7f598457462e _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE0ELNS2_10RepeatModeE0EE3RunEv
#57 0x7f59845ba6e1 base::debug::TaskAnnotator::RunTask()
#58 0x7f5984648c4e base::MessageLoop::RunTask()
#59 0x7f5984648eb7 base::MessageLoop::DeferOrRunPendingTask()
#60 0x7f59846491cf base::MessageLoop::DoWork()
#61 0x7f598465b0cc base::MessagePumpLibevent::Run()

 

Comment 1 by sky@chromium.org, Jun 8 2017

Cc: bruthig@chromium.org
DCHECKs in ink drop code like this typically indicate events are getting dropped, or we're not forwarding the correct events.
Or events are being sent more than once (which is kind-of included in "we're not forwarding correct events.")

In this case the InkDrop appears to already be in a PENDING state and it is trying to go to the PENDING state again.  Might be caused by the previous PENDING state never progressing properly to a HIDDEN state OR multiple input events are triggering PENDING, which is suspiciously incorrect...

Comment 3 by msw@chromium.org, Aug 21 2017

Status: Started (was: Assigned)
Summary: mash: Ink drop remains on the AppList shelf button when the app list window hides. (was: mash: Ink drop broken and crashes clicking the QuickLaunch shelf item.)
DCHECKs changed to logs: https://chromium-review.googlesource.com/c/610364
The QuickLaunch shelf item no longer seems to have an ink drop defect. 

Re-targeting this bug for the one defect I still observe:
The app list button stays highlighted when the app list window hides.
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 22 2017

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

commit b3a073579dffb23de8ebe1f181361b7f2a3d1ba7
Author: Mike Wasserman <msw@chromium.org>
Date: Tue Aug 22 23:25:14 2017

mash: Fix the app list button's ink drop deactivation.

Always use AppListDelegateImpl for Shell AppList notifications.
(avoid AppListPresenterDelegate[Mus] duplication/disparity)

Remove the delegate removal TODO, may relate to crbug.com/733662
(the delegate may be necessary until ui/app_list moves into ash)

Fix root window checks (they're null for invalid/old display ids).

Rename TestAppListPresenterImpl, connect with the ash app list.
Add helpers to spin a run loop on app list show/dismiss (via mojo).

Enable numerous tests on Mash that rely on the presenter, etc.
Avoid mock app list notifications when possible in tests.

Bug:  730887 ,  696028 ,  695751 
Change-Id: I19a3f8adc7ca66a7ad81fb254198c96fb4428ae3
Reviewed-on: https://chromium-review.googlesource.com/624515
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496502}
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/BUILD.gn
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/app_list/app_list_delegate_impl.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/app_list/app_list_presenter_delegate.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/app_list/app_list_presenter_delegate_unittest.cc
[add] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/app_list/test_app_list_presenter_impl.cc
[add] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/app_list/test_app_list_presenter_impl.h
[delete] https://crrev.com/a48fd5adbbe586213bbca80cb10cc83aaa705e70/ash/app_list/test_app_list_view_presenter_impl.cc
[delete] https://crrev.com/a48fd5adbbe586213bbca80cb10cc83aaa705e70/ash/app_list/test_app_list_view_presenter_impl.h
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/shelf/app_list_button.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/shelf/shelf_layout_manager_unittest.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/shelf/shelf_view_unittest.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/shell.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/wm/overview/window_selector_unittest.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/wm/window_cycle_controller_unittest.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ui/app_list/presenter/app_list_presenter_impl.cc
[modify] https://crrev.com/b3a073579dffb23de8ebe1f181361b7f2a3d1ba7/ui/app_list/presenter/app_list_presenter_impl.h

Comment 5 by msw@chromium.org, Aug 22 2017

Status: Fixed (was: Started)

Comment 6 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment