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

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: rebase Created 7 years, 10 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
« no previous file with comments | « chrome/browser/ui/toolbar/wrench_menu_model.h ('k') | chrome/browser/ui/views/wrench_menu.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 6956729ee736ccf0d0f93985adef7ddee38169a3..c24ce72e75d39ef854a646af80f59b01cdfab39a 100644
--- a/chrome/browser/ui/toolbar/wrench_menu_model.cc
+++ b/chrome/browser/ui/toolbar/wrench_menu_model.cc
@@ -212,16 +212,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());
}
@@ -229,6 +230,11 @@ WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
WrenchMenuModel::~WrenchMenuModel() {
if (tab_strip_model_)
tab_strip_model_->RemoveObserver(this);
+
+ if (browser()) {
+ HostZoomMap::GetForBrowserContext(
+ browser()->profile())->RemoveZoomLevelChangedCallback(zoom_callback_);
+ }
}
bool WrenchMenuModel::DoesCommandIdDismissMenu(int command_id) const {
@@ -421,14 +427,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.
@@ -697,3 +697,7 @@ void WrenchMenuModel::UpdateZoomControls() {
zoom_label_ = l10n_util::GetStringFUTF16(
IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent));
}
+
+void WrenchMenuModel::OnZoomLevelChanged(const std::string& host) {
+ UpdateZoomControls();
+}
« no previous file with comments | « chrome/browser/ui/toolbar/wrench_menu_model.h ('k') | chrome/browser/ui/views/wrench_menu.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698