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 172056d4fbedd6272d6ff9440e69fd7266fe872f..23eb0b8b275a8629e2dd0764efb56df79ac1f5c8 100644 |
--- a/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm |
+++ b/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm |
@@ -66,16 +66,14 @@ class ZoomLevelObserver { |
public: |
ZoomLevelObserver(WrenchMenuController* controller, |
content::HostZoomMap* map) |
- : callback_(base::Bind(&ZoomLevelObserver::OnZoomLevelChanged, |
- base::Unretained(this))), |
- controller_(controller), |
+ : controller_(controller), |
map_(map) { |
- map_->AddZoomLevelChangedCallback(callback_); |
+ subscription_ = map_->AddZoomLevelChangedCallback( |
+ base::Bind(&ZoomLevelObserver::OnZoomLevelChanged, |
+ base::Unretained(this))); |
} |
- ~ZoomLevelObserver() { |
- map_->RemoveZoomLevelChangedCallback(callback_); |
- } |
+ ~ZoomLevelObserver() {} |
private: |
void OnZoomLevelChanged(const HostZoomMap::ZoomLevelChange& change) { |
@@ -86,7 +84,7 @@ class ZoomLevelObserver { |
[[controller_ zoomDisplay] setTitle:SysUTF16ToNSString(level)]; |
} |
- content::HostZoomMap::ZoomLevelChangedCallback callback_; |
+ scoped_ptr<content::HostZoomMap::Subscription> subscription_; |
WrenchMenuController* controller_; // Weak; owns this. |
content::HostZoomMap* map_; // Weak. |