diff options
Diffstat (limited to 'chrome/browser/views/tabs/dragged_tab_controller.cc')
-rw-r--r-- | chrome/browser/views/tabs/dragged_tab_controller.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/chrome/browser/views/tabs/dragged_tab_controller.cc b/chrome/browser/views/tabs/dragged_tab_controller.cc index cf768a7..455c703 100644 --- a/chrome/browser/views/tabs/dragged_tab_controller.cc +++ b/chrome/browser/views/tabs/dragged_tab_controller.cc @@ -103,6 +103,11 @@ DraggedTabController::~DraggedTabController() { in_destructor_ = true; CleanUpSourceTab(); MessageLoopForUI::current()->RemoveObserver(this); + // Need to delete the view here manually _before_ we reset the dragged + // contents to NULL, otherwise if the view is animating to its destination + // bounds, it won't be able to clean up properly since its cleanup routine + // uses GetIndexForDraggedContents, which will be invalid. + view_.reset(NULL); ChangeDraggedContents(NULL); // This removes our observer. } |