Index: chrome/browser/ui/views/wrench_menu.cc |
diff --git a/chrome/browser/ui/views/wrench_menu.cc b/chrome/browser/ui/views/wrench_menu.cc |
index d62924654ecc55e3689ad1673d7006f1832d77fa..d82ec3d7ec5bc8b42e086ed0ded11f3882b95477 100644 |
--- a/chrome/browser/ui/views/wrench_menu.cc |
+++ b/chrome/browser/ui/views/wrench_menu.cc |
@@ -528,15 +528,15 @@ class WrenchMenu::ZoomView : public WrenchMenuView { |
int fullscreen_index) |
: WrenchMenuView(menu, menu_model), |
fullscreen_index_(fullscreen_index), |
- zoom_callback_(base::Bind(&WrenchMenu::ZoomView::OnZoomLevelChanged, |
- base::Unretained(this))), |
increment_button_(NULL), |
zoom_label_(NULL), |
decrement_button_(NULL), |
fullscreen_button_(NULL), |
zoom_label_width_(0) { |
- HostZoomMap::GetForBrowserContext( |
- menu->browser_->profile())->AddZoomLevelChangedCallback(zoom_callback_); |
+ zoom_subscription_ = HostZoomMap::GetForBrowserContext( |
+ menu->browser_->profile())->AddZoomLevelChangedCallback( |
+ base::Bind(&WrenchMenu::ZoomView::OnZoomLevelChanged, |
+ base::Unretained(this))); |
decrement_button_ = CreateButtonWithAccName( |
IDS_ZOOM_MINUS2, MenuButtonBackground::LEFT_BUTTON, decrement_index, |
@@ -614,9 +614,7 @@ class WrenchMenu::ZoomView : public WrenchMenuView { |
UpdateZoomControls(); |
} |
- virtual ~ZoomView() { |
- Shutdown(); |
- } |
+ virtual ~ZoomView() {} |
// Overridden from View. |
virtual gfx::Size GetPreferredSize() OVERRIDE { |
@@ -672,21 +670,10 @@ class WrenchMenu::ZoomView : public WrenchMenuView { |
// Overridden from WrenchMenuObserver. |
virtual void WrenchMenuDestroyed() OVERRIDE { |
- Shutdown(); |
WrenchMenuView::WrenchMenuDestroyed(); |
} |
private: |
- // Invoked from the destructor or when the WrenchMenu is destroyed. |
- void Shutdown() { |
- if (!menu()) |
- return; |
- |
- HostZoomMap::GetForBrowserContext( |
- menu()->browser_->profile())->RemoveZoomLevelChangedCallback( |
- zoom_callback_); |
- } |
- |
void OnZoomLevelChanged(const HostZoomMap::ZoomLevelChange& change) { |
UpdateZoomControls(); |
} |
@@ -738,7 +725,7 @@ class WrenchMenu::ZoomView : public WrenchMenuView { |
// Index of the fullscreen menu item in the model. |
const int fullscreen_index_; |
- content::HostZoomMap::ZoomLevelChangedCallback zoom_callback_; |
+ scoped_ptr<content::HostZoomMap::Subscription> zoom_subscription_; |
content::NotificationRegistrar registrar_; |
// Button for incrementing the zoom. |