Index: chrome/browser/views/browser_actions_container.cc |
=================================================================== |
--- chrome/browser/views/browser_actions_container.cc (revision 42514) |
+++ chrome/browser/views/browser_actions_container.cc (working copy) |
@@ -125,7 +125,13 @@ |
Extension::kBrowserActionIconMaxSize)); |
} |
-BrowserActionButton::~BrowserActionButton() { |
+void BrowserActionButton::Destroy() { |
+ if (showing_context_menu_) { |
+ context_menu_menu_->CancelMenu(); |
+ MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
+ } else { |
+ delete this; |
+ } |
} |
gfx::Insets BrowserActionButton::GetInsets() const { |
@@ -235,6 +241,8 @@ |
context_menu_menu_->RunContextMenuAt(point); |
SetButtonNotPushed(); |
+ showing_context_menu_ = false; |
+ |
return false; |
} else if (IsPopup()) { |
return MenuButton::OnMousePressed(e); |
@@ -276,7 +284,10 @@ |
menu_visible_ = false; |
} |
+BrowserActionButton::~BrowserActionButton() { |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// BrowserActionView |
@@ -289,6 +300,11 @@ |
button_->UpdateState(); |
} |
+BrowserActionView::~BrowserActionView() { |
+ RemoveChildView(button_); |
+ button_->Destroy(); |
+} |
+ |
gfx::Canvas* BrowserActionView::GetIconWithBadge() { |
int tab_id = panel_->GetCurrentTabId(); |