summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/tabs/dragged_tab_controller.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/tabs/dragged_tab_controller.cc')
-rw-r--r--chrome/browser/views/tabs/dragged_tab_controller.cc5
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.
}