Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(975)

Unified Diff: chrome/browser/ui/toolbar/wrench_menu_model.cc

Issue 12039058: content: convert zoom notifications to observer usage (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..5c6d0094f2618aa0832b30e3960d47b39572e1c4 100644
--- a/chrome/browser/ui/toolbar/wrench_menu_model.cc
+++ b/chrome/browser/ui/toolbar/wrench_menu_model.cc
@@ -225,16 +225,17 @@ WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
: ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)),
provider_(provider),
browser_(browser),
- tab_strip_model_(browser_->tab_strip_model()) {
+ tab_strip_model_(browser_->tab_strip_model()),
+ zoom_callback_(base::Bind(&WrenchMenuModel::OnZoomLevelChanged,
+ base::Unretained(this))) {
Build(is_new_menu, supports_new_separators);
UpdateZoomControls();
+ HostZoomMap::GetForBrowserContext(
+ browser->profile())->AddZoomLevelChangedCallback(zoom_callback_);
+
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,9 @@ WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
WrenchMenuModel::~WrenchMenuModel() {
if (tab_strip_model_)
tab_strip_model_->RemoveObserver(this);
+
+ HostZoomMap::GetForBrowserContext(
+ browser()->profile())->RemoveZoomLevelChangedCallback(zoom_callback_);
}
bool WrenchMenuModel::DoesCommandIdDismissMenu(int command_id) const {
@@ -455,14 +459,8 @@ void WrenchMenuModel::TabStripModelDeleted() {
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.
@@ -754,3 +752,8 @@ GlobalError* WrenchMenuModel::GetActiveSignedInServiceError() const {
}
return NULL;
}
+
+void WrenchMenuModel::OnZoomLevelChanged(const std::string& host) {
+ UpdateZoomControls();
+}
+

Powered by Google App Engine
This is Rietveld 408576698