| Index: chrome/browser/ui/toolbar/wrench_menu_model.cc
|
| diff --git a/chrome/browser/ui/toolbar/wrench_menu_model.cc b/chrome/browser/ui/toolbar/wrench_menu_model.cc
|
| index 228c7ef63356f2dfb5e0993986d70135f9fd4a23..868b0bf7f75740eeeb60af2a74c130f2cde1d19b 100644
|
| --- a/chrome/browser/ui/toolbar/wrench_menu_model.cc
|
| +++ b/chrome/browser/ui/toolbar/wrench_menu_model.cc
|
| @@ -229,12 +229,13 @@ WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
|
| Build(is_new_menu, supports_new_separators);
|
| UpdateZoomControls();
|
|
|
| + HostZoomMap::GetForBrowserContext(
|
| + browser->profile())->AddZoomLevelChangedCallback(
|
| + base::Bind(&WrenchMenuModel::OnZoomLevelChanged,
|
| + base::Unretained(this)));
|
| +
|
| tab_strip_model_->AddObserver(this);
|
|
|
| - registrar_.Add(
|
| - this, content::NOTIFICATION_ZOOM_LEVEL_CHANGED,
|
| - content::Source<HostZoomMap>(
|
| - HostZoomMap::GetForBrowserContext(browser_->profile())));
|
| registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
|
| content::NotificationService::AllSources());
|
| }
|
| @@ -242,6 +243,11 @@ WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
|
| WrenchMenuModel::~WrenchMenuModel() {
|
| if (tab_strip_model_)
|
| tab_strip_model_->RemoveObserver(this);
|
| +
|
| + HostZoomMap::GetForBrowserContext(
|
| + browser()->profile())->RemoveZoomLevelChangedCallback(
|
| + base::Bind(&WrenchMenuModel::OnZoomLevelChanged,
|
| + base::Unretained(this)));
|
| }
|
|
|
| bool WrenchMenuModel::DoesCommandIdDismissMenu(int command_id) const {
|
| @@ -452,17 +458,15 @@ void WrenchMenuModel::TabStripModelDeleted() {
|
| tab_strip_model_ = NULL;
|
| }
|
|
|
| +void WrenchMenuModel::OnZoomLevelChanged(const std::string& host) {
|
| + UpdateZoomControls();
|
| +}
|
| +
|
| void WrenchMenuModel::Observe(int type,
|
| const content::NotificationSource& source,
|
| const content::NotificationDetails& details) {
|
| - switch (type) {
|
| - case content::NOTIFICATION_ZOOM_LEVEL_CHANGED:
|
| - case content::NOTIFICATION_NAV_ENTRY_COMMITTED:
|
| - UpdateZoomControls();
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - }
|
| + DCHECK(type == content::NOTIFICATION_NAV_ENTRY_COMMITTED);
|
| + UpdateZoomControls();
|
| }
|
|
|
| // For testing.
|
|
|