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 c50e0771aa895a36304f3502c335c0e12c749cbf..68f0754ceccd4886de843625b4c153a144f7c810 100644 |
--- a/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm |
+++ b/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.mm |
@@ -13,6 +13,7 @@ |
#import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" |
#import "chrome/browser/ui/cocoa/wrench_menu/menu_tracked_root_view.h" |
#include "chrome/browser/ui/toolbar/wrench_menu_model.h" |
+#include "chrome/browser/profiles/profile.h" |
#include "content/browser/user_metrics.h" |
#include "content/common/content_notification_types.h" |
#include "content/common/notification_observer.h" |
@@ -36,7 +37,7 @@ class ZoomLevelObserver : public NotificationObserver { |
explicit ZoomLevelObserver(WrenchMenuController* controller) |
: controller_(controller) { |
registrar_.Add(this, content::NOTIFICATION_ZOOM_LEVEL_CHANGED, |
- NotificationService::AllSources()); |
+ NotificationService::AllBrowserContextsAndSources()); |
} |
void Observe(int type, |
@@ -44,6 +45,11 @@ class ZoomLevelObserver : public NotificationObserver { |
const NotificationDetails& details) { |
DCHECK_EQ(type, content::NOTIFICATION_ZOOM_LEVEL_CHANGED); |
WrenchMenuModel* wrenchMenuModel = [controller_ wrenchMenuModel]; |
+ if (wrenchMenuModel->browser()->profile()->GetHostZoomMap() != |
+ Source<HostZoomMap>(source).ptr()) { |
+ return; |
+ } |
+ |
wrenchMenuModel->UpdateZoomControls(); |
const string16 level = |
wrenchMenuModel->GetLabelForCommandId(IDC_ZOOM_PERCENT_DISPLAY); |