summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-27 21:25:28 +0000
committerdhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-27 21:25:28 +0000
commit9fadfcb99f3399f07afaaeb60b922d36fa160694 (patch)
tree6450e3998d6975f45a032ec78a927dea768a9e9c
parent09f02585c46b884151b94b4497f5592db0bc92ea (diff)
downloadchromium_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.mm1
-rw-r--r--chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm6
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_