New issue
Advanced search Search tips

Issue 854835 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

Tab dragging - Occasional crash after the drag ends

Project Member Reported by x...@chromium.org, Jun 20 2018

Issue description

Chrome Version: 69.0.3467.0
OS: Chrome

What steps will reproduce the problem?
(1) In tablet mode, open a few browser windows 
(2) Drag all tabs of a browser window together, overview should open behind the dragged window
(3) Drag a small amount of distance and then release the drag

What is the expected result?
The dragged window should be restored to maximized window

What happens instead?
Sometimes crash happens

Callstack:
[227064:227064:0620/161716.266434:FATAL:tab_drag_controller.cc(1980)] Check failed: dragged_tabstrip->IsDragSessionActive() && active_. 
#0 0x7f3d26d0774c base::debug::StackTrace::StackTrace()
#1 0x7f3d26c570bb logging::LogMessage::~LogMessage()
#2 0x5575048520f6 TabDragController::SetTabDraggingInfo()
#3 0x55750484e59b TabDragController::Attach()
#4 0x5575048504dc TabDragController::DragBrowserToNewTabStrip()
#5 0x55750484f672 TabDragController::ContinueDragging()
#6 0x55750484d9b6 TabDragController::Drag()
#7 0x55750484fd08 TabDragController::OnWidgetBoundsChanged()
#8 0x7f3d210a3f93 views::Widget::OnNativeWidgetMove()
#9 0x7f3d210c08dd views::NativeWidgetAura::OnBoundsChanged()
#10 0x7f3d225b8514 aura::Window::OnLayerBoundsChanged()
#11 0x7f3d224fe8cd ui::Layer::SetBoundsFromAnimation()
#12 0x7f3d225b4d95 aura::Window::SetBoundsInternal()
#13 0x7f3d20a2a6e9 ash::wm::WindowState::SetBoundsDirect()
#14 0x7f3d20a2a8bf ash::wm::WindowState::SetBoundsDirectCrossFade()
#15 0x7f3d20a1f3b8 ash::TabletModeWindowState::UpdateBounds()
#16 0x7f3d20a1c3ad ash::TabletModeWindowManager::OnOverviewModeEnded()
#17 0x7f3d2090d49e ash::Shell::NotifyOverviewModeEnded()
#18 0x7f3d209fc03e ash::WindowSelectorController::OnSelectionEnded()
#19 0x7f3d209fb86f ash::WindowSelectorController::ToggleOverview()
#20 0x7f3d20a11d72 ash::SplitViewController::TabDraggedWindowObserver::OnWindowPropertyChanged()
#21 0x7f3d225b6be5 aura::Window::AfterPropertyChange()
#22 0x7f3d26f6b505 ui::PropertyHandler::SetPropertyInternal()
#23 0x7f3d225810bb ui::PropertyHandler::ClearProperty<>()
#24 0x5575048522f2 TabDragController::ClearTabDraggingInfo()
#25 0x55750484fae9 TabDragController::EndDragImpl()
#26 0x55750484d875 TabDragController::EndDrag()
#27 0x5575046c71c1 TabStrip::EndDrag()
#28 0x5575046cad48 TabStrip::OnMouseReleased()


 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 9

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

commit ddb2b533063e200d40e2bf89cc8bb11462158806
Author: Xiaoqian Dai <xdai@chromium.org>
Date: Mon Jul 09 23:31:10 2018

Tab Dragging: Fix occasional crash when the drag is ending.

When the drag ends, TabDragController::ClearTabDraggingInfo() might
trigger a bounds change of the dragged window, which then trigger
TabDragController::OnWidgetBoundsChanged() to be called again to
continue dragging. We should remove TabDragController as an observer of
the dragged widget when the drag is ending as we do not care about any
subsequent moves to the widget.

Bug:  854835 
Change-Id: Ia940e7f0a33609bfc19ff9d96861948579fb5dd7
Reviewed-on: https://chromium-review.googlesource.com/1109266
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Xiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573521}
[modify] https://crrev.com/ddb2b533063e200d40e2bf89cc8bb11462158806/chrome/browser/ui/views/tabs/tab_drag_controller.cc
[modify] https://crrev.com/ddb2b533063e200d40e2bf89cc8bb11462158806/chrome/browser/ui/views/tabs/tab_drag_controller.h
[modify] https://crrev.com/ddb2b533063e200d40e2bf89cc8bb11462158806/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc

Status: Fixed (was: Untriaged)

Sign in to add a comment