diff options
author | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-27 21:25:28 +0000 |
---|---|---|
committer | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-27 21:25:28 +0000 |
commit | 9fadfcb99f3399f07afaaeb60b922d36fa160694 (patch) | |
tree | 6450e3998d6975f45a032ec78a927dea768a9e9c | |
parent | 09f02585c46b884151b94b4497f5592db0bc92ea (diff) | |
download | chromium_src-9fadfcb99f3399f07afaaeb60b922d36fa160694.zip chromium_src-9fadfcb99f3399f07afaaeb60b922d36fa160694.tar.gz chromium_src-9fadfcb99f3399f07afaaeb60b922d36fa160694.tar.bz2 |
Crash: Moving bookmarks into subfolder in incognito window
Fixes issue with bookmark hover where button target is dealloc'd without properly
cancelling delayed hover button open.
BUG=42051
TEST=Manual according to steps in bug.
Review URL: http://codereview.chromium.org/1706017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45740 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/bookmark_bar_folder_controller.mm | 1 | ||||
-rw-r--r-- | chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/chrome/browser/cocoa/bookmark_bar_folder_controller.mm b/chrome/browser/cocoa/bookmark_bar_folder_controller.mm index 861f6e2..29d7185 100644 --- a/chrome/browser/cocoa/bookmark_bar_folder_controller.mm +++ b/chrome/browser/cocoa/bookmark_bar_folder_controller.mm @@ -84,6 +84,7 @@ const CGFloat kScrollWindowVerticalMargin = 0.0; - (void)dealloc { [self removeScrollTracking]; [self endScroll]; + [hoverState_ draggingExited]; // Note: we don't need to // [NSObject cancelPreviousPerformRequestsWithTarget:self]; // Because all of our performSelector: calls use withDelay: which diff --git a/chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm b/chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm index 5d977e4..86d78bb 100644 --- a/chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm +++ b/chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm @@ -38,12 +38,12 @@ [self scheduleCloseBookmarkFolderOnHoverButton]; } else if (hoverState_ == kHoverStateClosed) { // Open the new. - [self scheduleOpenBookmarkFolderOnHoverButton:[button retain]]; + [self scheduleOpenBookmarkFolderOnHoverButton:button]; } } else if (!hoverButton_) { // CASE C: we don't have a current hoverButton_ but we have dragged onto // a new folder so we open the new one. - [self scheduleOpenBookmarkFolderOnHoverButton:[button retain]]; + [self scheduleOpenBookmarkFolderOnHoverButton:button]; } } else if (!button) { if (hoverButton_) { @@ -100,7 +100,7 @@ // Schedule open of hover button. Transition to kHoverStateOpening state. - (void)scheduleOpenBookmarkFolderOnHoverButton:(BookmarkButton*)button { DCHECK(button); - hoverButton_.reset(button); + hoverButton_.reset([button retain]); [self setHoverState:kHoverStateOpening]; [self performSelector:@selector(openBookmarkFolderOnHoverButton:) withObject:hoverButton_ |