| Index: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
|
| index 1a1c45512c99171b9a24d884945b9ed838aaf90e..bd79d98b74c8be13097c48ef13045cab61e3f4f3 100644
|
| --- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
|
| @@ -214,7 +214,6 @@ class NotificationBridge : public WrenchMenuBadgeController::Delegate {
|
| commands_ = commands;
|
| profile_ = profile;
|
| browser_ = browser;
|
| - resizeDelegate_ = resizeDelegate;
|
| hasToolbar_ = YES;
|
| hasLocationBar_ = YES;
|
|
|
| @@ -247,30 +246,6 @@ class NotificationBridge : public WrenchMenuBadgeController::Delegate {
|
| return self;
|
| }
|
|
|
| -
|
| -- (void)dealloc {
|
| - browserActionsContainerDelegate_.reset();
|
| -
|
| - // Unset ViewIDs of toolbar elements.
|
| - // ViewIDs of |toolbarView|, |reloadButton_|, |locationBar_| and
|
| - // |browserActionsContainerView_| are handled by themselves.
|
| - view_id_util::UnsetID(backButton_);
|
| - view_id_util::UnsetID(forwardButton_);
|
| - view_id_util::UnsetID(homeButton_);
|
| - view_id_util::UnsetID(wrenchButton_);
|
| -
|
| - // Make sure any code in the base class which assumes [self view] is
|
| - // the "parent" view continues to work.
|
| - hasToolbar_ = YES;
|
| - hasLocationBar_ = YES;
|
| -
|
| - [[NSNotificationCenter defaultCenter] removeObserver:self];
|
| -
|
| - if (trackingArea_.get())
|
| - [[self view] removeTrackingArea:trackingArea_.get()];
|
| - [super dealloc];
|
| -}
|
| -
|
| // Called after the view is done loading and the outlets have been hooked up.
|
| // Now we can hook up bridges that rely on UI objects such as the location
|
| // bar and button state.
|
| @@ -398,6 +373,37 @@ class NotificationBridge : public WrenchMenuBadgeController::Delegate {
|
| [self addAccessibilityDescriptions];
|
| }
|
|
|
| +- (void)browserWillBeDestroyed {
|
| + // This method indicates imminent destruction. Destroy owned objects that hold
|
| + // a weak Browser*, or pass this call onto reference counted objects.
|
| + locationBarView_.reset();
|
| + [backMenuController_ browserWillBeDestroyed];
|
| + [forwardMenuController_ browserWillBeDestroyed];
|
| + [browserActionsController_ browserWillBeDestroyed];
|
| + [wrenchMenuController_ browserWillBeDestroyed];
|
| + browserActionsContainerDelegate_.reset();
|
| +
|
| + // Unset ViewIDs of toolbar elements.
|
| + // ViewIDs of |toolbarView|, |reloadButton_|, |locationBar_| and
|
| + // |browserActionsContainerView_| are handled by themselves.
|
| + view_id_util::UnsetID(backButton_);
|
| + view_id_util::UnsetID(forwardButton_);
|
| + view_id_util::UnsetID(homeButton_);
|
| + view_id_util::UnsetID(wrenchButton_);
|
| +
|
| + // Make sure any code in the base class which assumes [self view] is
|
| + // the "parent" view continues to work.
|
| + hasToolbar_ = YES;
|
| + hasLocationBar_ = YES;
|
| +
|
| + [[NSNotificationCenter defaultCenter] removeObserver:self];
|
| +
|
| + if (trackingArea_.get())
|
| + [[self view] removeTrackingArea:trackingArea_.get()];
|
| +
|
| + browser_ = nullptr;
|
| +}
|
| +
|
| - (void)addAccessibilityDescriptions {
|
| // Set accessibility descriptions. http://openradar.appspot.com/7496255
|
| NSString* description = l10n_util::GetNSStringWithFixup(IDS_ACCNAME_BACK);
|
|
|