Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: chrome/browser/cocoa/bookmark_bar_folder_hover_state.mm

Issue 1706017: Crash: Moving bookmarks into subfolder in incognito window (Closed)
Patch Set: Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/cocoa/bookmark_bar_folder_controller.mm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/cocoa/bookmark_bar_folder_hover_state.h" 5 #import "chrome/browser/cocoa/bookmark_bar_folder_hover_state.h"
6 #import "chrome/browser/cocoa/bookmark_bar_controller.h" // namespace bookmarks 6 #import "chrome/browser/cocoa/bookmark_bar_controller.h" // namespace bookmarks
7 7
8 @interface BookmarkBarFolderHoverState(Private) 8 @interface BookmarkBarFolderHoverState(Private)
9 - (void)setHoverState:(HoverState)state; 9 - (void)setHoverState:(HoverState)state;
10 - (void)closeBookmarkFolderOnHoverButton:(BookmarkButton*)button; 10 - (void)closeBookmarkFolderOnHoverButton:(BookmarkButton*)button;
(...skipping 20 matching lines...) Expand all
31 // This implies we've dragged over a new folder, so we'll close the old 31 // This implies we've dragged over a new folder, so we'll close the old
32 // and open the new. 32 // and open the new.
33 // Note that we only schedule the open or close if we have no other tasks 33 // Note that we only schedule the open or close if we have no other tasks
34 // currently pending. 34 // currently pending.
35 35
36 if (hoverState_ == kHoverStateOpen) { 36 if (hoverState_ == kHoverStateOpen) {
37 // Close the old. 37 // Close the old.
38 [self scheduleCloseBookmarkFolderOnHoverButton]; 38 [self scheduleCloseBookmarkFolderOnHoverButton];
39 } else if (hoverState_ == kHoverStateClosed) { 39 } else if (hoverState_ == kHoverStateClosed) {
40 // Open the new. 40 // Open the new.
41 [self scheduleOpenBookmarkFolderOnHoverButton:[button retain]]; 41 [self scheduleOpenBookmarkFolderOnHoverButton:button];
42 } 42 }
43 } else if (!hoverButton_) { 43 } else if (!hoverButton_) {
44 // CASE C: we don't have a current hoverButton_ but we have dragged onto 44 // CASE C: we don't have a current hoverButton_ but we have dragged onto
45 // a new folder so we open the new one. 45 // a new folder so we open the new one.
46 [self scheduleOpenBookmarkFolderOnHoverButton:[button retain]]; 46 [self scheduleOpenBookmarkFolderOnHoverButton:button];
47 } 47 }
48 } else if (!button) { 48 } else if (!button) {
49 if (hoverButton_) { 49 if (hoverButton_) {
50 // CASE D: We have a hoverButton_ but we've moved onto an area that 50 // CASE D: We have a hoverButton_ but we've moved onto an area that
51 // requires no hover. We close the hoverButton_ in this case. This 51 // requires no hover. We close the hoverButton_ in this case. This
52 // means cancelling if the open is pending (i.e. |kHoverStateOpening|) 52 // means cancelling if the open is pending (i.e. |kHoverStateOpening|)
53 // or closing if we don't alrealy have once in progress. 53 // or closing if we don't alrealy have once in progress.
54 54
55 // Intiate close only if we have not already done so. 55 // Intiate close only if we have not already done so.
56 if (hoverState_ == kHoverStateOpening) { 56 if (hoverState_ == kHoverStateOpening) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 [self setHoverState:kHoverStateOpen]; 93 [self setHoverState:kHoverStateOpen];
94 [NSObject 94 [NSObject
95 cancelPreviousPerformRequestsWithTarget:self 95 cancelPreviousPerformRequestsWithTarget:self
96 selector:@selector(closeBookmarkFolderOnHoverButton:) 96 selector:@selector(closeBookmarkFolderOnHoverButton:)
97 object:hoverButton_]; 97 object:hoverButton_];
98 } 98 }
99 99
100 // Schedule open of hover button. Transition to kHoverStateOpening state. 100 // Schedule open of hover button. Transition to kHoverStateOpening state.
101 - (void)scheduleOpenBookmarkFolderOnHoverButton:(BookmarkButton*)button { 101 - (void)scheduleOpenBookmarkFolderOnHoverButton:(BookmarkButton*)button {
102 DCHECK(button); 102 DCHECK(button);
103 hoverButton_.reset(button); 103 hoverButton_.reset([button retain]);
104 [self setHoverState:kHoverStateOpening]; 104 [self setHoverState:kHoverStateOpening];
105 [self performSelector:@selector(openBookmarkFolderOnHoverButton:) 105 [self performSelector:@selector(openBookmarkFolderOnHoverButton:)
106 withObject:hoverButton_ 106 withObject:hoverButton_
107 afterDelay:bookmarks::kDragHoverOpenDelay]; 107 afterDelay:bookmarks::kDragHoverOpenDelay];
108 } 108 }
109 109
110 // Cancel pending hover open. Transition to kHoverStateClosed state. 110 // Cancel pending hover open. Transition to kHoverStateClosed state.
111 - (void)cancelPendingOpenBookmarkFolderOnHoverButton { 111 - (void)cancelPendingOpenBookmarkFolderOnHoverButton {
112 [self setHoverState:kHoverStateClosed]; 112 [self setHoverState:kHoverStateClosed];
113 [NSObject 113 [NSObject
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 // Called after a delay to open a new hover folder. 162 // Called after a delay to open a new hover folder.
163 // Note: this method is not meant to be invoked directly, only through 163 // Note: this method is not meant to be invoked directly, only through
164 // a delayed call to |scheduleOpenBookmarkFolderOnHoverButton:|. 164 // a delayed call to |scheduleOpenBookmarkFolderOnHoverButton:|.
165 - (void)openBookmarkFolderOnHoverButton:(BookmarkButton*)button { 165 - (void)openBookmarkFolderOnHoverButton:(BookmarkButton*)button {
166 [self setHoverState:kHoverStateOpen]; 166 [self setHoverState:kHoverStateOpen];
167 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) 167 [[button target] performSelector:@selector(openBookmarkFolderFromButton:)
168 withObject:button]; 168 withObject:button];
169 } 169 }
170 170
171 @end 171 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/bookmark_bar_folder_controller.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698