| Index: chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
|
| index c899d04d9aafa5ba44b534c5867730a158751f6f..23590b7f37bdbfaa1c8370f58cd973008ddb638d 100644
|
| --- a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
|
| @@ -394,14 +394,22 @@ void ToolbarActionsBarBridge::ShowExtensionMessageBubble(
|
| }
|
|
|
| - (void)dealloc {
|
| + [self browserWillBeDestroyed];
|
| + [super dealloc];
|
| +}
|
| +
|
| +- (void)browserWillBeDestroyed {
|
| + [overflowMenu_ setDelegate:nil];
|
| // Explicitly destroy the ToolbarActionsBar so all buttons get removed with a
|
| // valid BrowserActionsController, and so we can verify state before
|
| // destruction.
|
| - toolbarActionsBar_->DeleteActions();
|
| - toolbarActionsBar_.reset();
|
| + if (toolbarActionsBar_.get()) {
|
| + toolbarActionsBar_->DeleteActions();
|
| + toolbarActionsBar_.reset();
|
| + }
|
| DCHECK_EQ(0u, [buttons_ count]);
|
| [[NSNotificationCenter defaultCenter] removeObserver:self];
|
| - [super dealloc];
|
| + browser_ = nullptr;
|
| }
|
|
|
| - (void)update {
|
|
|