Index: chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm |
diff --git a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm |
index cd5aa2739d4bbacaa94066e2ede11ab20f4d6c2a..7e53734c90932355bae75ccd053a1c3274450c90 100644 |
--- a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm |
+++ b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm |
@@ -212,17 +212,7 @@ class ExtensionServiceObserverBridge : public content::NotificationObserver, |
gfx::NativeWindow window = payload->second; |
if (window != browser_->window()->GetNativeWindow()) |
break; |
- ExtensionService* service = browser_->profile()->GetExtensionService(); |
- if (!service) |
- break; |
- const Extension* extension = service->GetExtensionById(extension_id, |
- false); |
- if (!extension) |
- break; |
- BrowserActionButton* button = [owner_ buttonForExtension:extension]; |
- // |button| can be nil when the browser action has its button hidden. |
- if (button) |
- [owner_ browserActionClicked:button]; |
+ [owner_ activateBrowserAction:extension_id]; |
break; |
} |
default: |
@@ -452,6 +442,21 @@ class ExtensionServiceObserverBridge : public content::NotificationObserver, |
return YES; |
} |
+- (void)activateBrowserAction:(const std::string&)extension_id { |
+ ExtensionService* service = browser_->profile()->GetExtensionService(); |
+ if (!service) |
+ return; |
+ |
+ const Extension* extension = service->GetExtensionById(extension_id, false); |
+ if (!extension) |
+ return; |
+ |
+ BrowserActionButton* button = [self buttonForExtension:extension]; |
+ // |button| can be nil when the browser action has its button hidden. |
+ if (button) |
+ [self browserActionClicked:button]; |
+} |
+ |
#pragma mark - |
#pragma mark NSMenuDelegate |