| Index: chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm b/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm
|
| index 0a200cacc02a0785e4c1c050eb07e67fbb95d620..0bfe5f98c32895ec61f147f76fe7cb871a75045b 100644
|
| --- a/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm
|
| @@ -114,6 +114,19 @@ class ZoomLevelObserver {
|
| return self;
|
| }
|
|
|
| +- (void)browserWillBeDestroyed {
|
| + // This method indicates imminent destruction. Destroy owned objects that hold
|
| + // a weak Browser*, or pass this call onto reference counted objects.
|
| + recentTabsMenuModelDelegate_.reset();
|
| + [self setModel:nullptr];
|
| + wrenchMenuModel_.reset();
|
| + buttonViewController_.reset();
|
| +
|
| + [browserActionsController_ browserWillBeDestroyed];
|
| +
|
| + browser_ = nullptr;
|
| +}
|
| +
|
| - (void)addItemToMenu:(NSMenu*)menu
|
| atIndex:(NSInteger)index
|
| fromModel:(ui::MenuModel*)model {
|
| @@ -328,6 +341,7 @@ class ZoomLevelObserver {
|
| }
|
|
|
| - (void)createModel {
|
| + DCHECK(browser_);
|
| recentTabsMenuModelDelegate_.reset();
|
| wrenchMenuModel_.reset(
|
| new WrenchMenuModel(acceleratorDelegate_.get(), browser_));
|
|
|