Chromium Code Reviews| Index: chrome/browser/ui/cocoa/browser_window_controller.mm |
| diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm |
| index b86492f79da7f30b1b6dd650a603f6e73c7dfe09..8f23806471d0e79e5c925be42d98b8c87805d377 100644 |
| --- a/chrome/browser/ui/cocoa/browser_window_controller.mm |
| +++ b/chrome/browser/ui/cocoa/browser_window_controller.mm |
| @@ -40,6 +40,7 @@ |
| #include "chrome/browser/ui/browser_window_state.h" |
| #import "chrome/browser/ui/cocoa/background_gradient_view.h" |
| #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
| +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.h" |
| #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" |
| #import "chrome/browser/ui/cocoa/browser_window_cocoa.h" |
| #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" |
| @@ -1766,36 +1767,30 @@ using content::WebContents; |
| // Show the bookmark bubble (e.g. user just clicked on the STAR). |
| - (void)showBookmarkBubbleForURL:(const GURL&)url |
| alreadyBookmarked:(BOOL)alreadyMarked { |
| - if (!bookmarkBubbleController_) { |
| + if (!bookmarkBubbleObserver_.get()) { |
| + bookmarkBubbleObserver_.reset( |
| + new bookmarks::BookmarkBubbleObserverCocoa(self)); |
| BookmarkModel* model = |
| BookmarkModelFactory::GetForProfile(browser_->profile()); |
| bookmarks::ManagedBookmarkService* managed = |
| ManagedBookmarkServiceFactory::GetForProfile(browser_->profile()); |
| const BookmarkNode* node = model->GetMostRecentlyAddedUserNodeForURL(url); |
| - bookmarkBubbleController_ = |
| - [[BookmarkBubbleController alloc] initWithParentWindow:[self window] |
| - managed:managed |
| - model:model |
| - node:node |
| - alreadyBookmarked:alreadyMarked]; |
| + bookmarkBubbleController_ = [[BookmarkBubbleController alloc] |
| + initWithParentWindow:[self window] |
| + observer:bookmarkBubbleObserver_.get() |
|
tapted
2015/08/25 01:13:21
It might be nicer for the BookmarkBubbleObserverCo
jackhou1
2015/08/25 04:32:29
Yeah, I went with this because it's the same as Vi
tapted
2015/08/25 05:46:34
Not at all strongly - it's just an itch
|
| + managed:managed |
| + model:model |
| + node:node |
| + alreadyBookmarked:alreadyMarked]; |
| [bookmarkBubbleController_ showWindow:self]; |
| - NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; |
| - [center addObserver:self |
| - selector:@selector(bookmarkBubbleWindowWillClose:) |
| - name:NSWindowWillCloseNotification |
| - object:[bookmarkBubbleController_ window]]; |
| + DCHECK(bookmarkBubbleObserver_); |
| } |
| } |
| -// Nil out the weak bookmark bubble controller reference. |
| -- (void)bookmarkBubbleWindowWillClose:(NSNotification*)notification { |
| - DCHECK_EQ([notification object], [bookmarkBubbleController_ window]); |
| - |
| - NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; |
| - [center removeObserver:self |
| - name:NSWindowWillCloseNotification |
| - object:[bookmarkBubbleController_ window]]; |
| +- (void)bookmarkBubbleClosed { |
| + // Nil out the weak bookmark bubble controller reference. |
| bookmarkBubbleController_ = nil; |
|
tapted
2015/08/25 01:13:21
I think |bookmarkBubbleController_| can be removed
jackhou1
2015/08/25 04:32:29
It's used in browser_window_controller_private.mm.
tapted
2015/08/25 05:46:34
Ah.. immersive fullscreen :/. If it's just the [b
|
| + bookmarkBubbleObserver_.reset(); |
| } |
| // Handle the editBookmarkNode: action sent from bookmark bubble controllers. |