Index: chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm |
diff --git a/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm b/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm |
index 91228f01c57dd7801cdf7cd9501c4e0251538e34..1c71fde2f5753efbca12fe7ccb8457cfad2515da 100644 |
--- a/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm |
+++ b/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm |
@@ -72,63 +72,6 @@ class AsyncUninstaller : public ExtensionUninstallDialog::Delegate { |
DISALLOW_COPY_AND_ASSIGN(AsyncUninstaller); |
}; |
-namespace extension_action_context_menu { |
- |
-class DevmodeObserver : public content::NotificationObserver { |
- public: |
- DevmodeObserver(ExtensionActionContextMenu* menu, |
- PrefService* service) |
- : menu_(menu), pref_service_(service) { |
- registrar_.Init(pref_service_); |
- registrar_.Add(prefs::kExtensionsUIDeveloperMode, this); |
- } |
- virtual ~DevmodeObserver() {} |
- |
- void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- if (type == chrome::NOTIFICATION_PREF_CHANGED) |
- [menu_ updateInspectorItem]; |
- else |
- NOTREACHED(); |
- } |
- |
- private: |
- ExtensionActionContextMenu* menu_; |
- PrefService* pref_service_; |
- PrefChangeRegistrar registrar_; |
-}; |
- |
-class ProfileObserverBridge : public content::NotificationObserver { |
- public: |
- ProfileObserverBridge(ExtensionActionContextMenu* owner, |
- const Profile* profile) |
- : owner_(owner), |
- profile_(profile) { |
- registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED, |
- content::Source<Profile>(profile)); |
- } |
- |
- ~ProfileObserverBridge() {} |
- |
- // Overridden from content::NotificationObserver |
- void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- if (type == chrome::NOTIFICATION_PROFILE_DESTROYED && |
- source == content::Source<Profile>(profile_)) { |
- [owner_ invalidateProfile]; |
- } |
- } |
- |
- private: |
- ExtensionActionContextMenu* owner_; |
- const Profile* profile_; |
- content::NotificationRegistrar registrar_; |
-}; |
- |
-} // namespace extension_action_context_menu |
- |
@interface ExtensionActionContextMenu(Private) |
// Callback for the context menu items. |
- (void)dispatch:(id)menuItem; |
@@ -146,7 +89,6 @@ enum { |
kExtensionContextUninstall = 4, |
kExtensionContextHide = 5, |
kExtensionContextManage = 7, |
- kExtensionContextInspect = 8 |
}; |
int CurrentTabId() { |
@@ -203,39 +145,11 @@ int CurrentTabId() { |
} |
} |
- NSString* inspectorTitle = |
- l10n_util::GetNSStringWithFixup(IDS_EXTENSION_ACTION_INSPECT_POPUP); |
- inspectorItem_.reset([[NSMenuItem alloc] initWithTitle:inspectorTitle |
- action:@selector(dispatch:) |
- keyEquivalent:@""]); |
- [inspectorItem_.get() setTarget:self]; |
- [inspectorItem_.get() setTag:kExtensionContextInspect]; |
- |
- PrefService* service = profile_->GetPrefs(); |
- observer_.reset( |
- new extension_action_context_menu::DevmodeObserver(self, service)); |
- profile_observer_.reset( |
- new extension_action_context_menu::ProfileObserverBridge(self, |
- profile)); |
- |
- [self updateInspectorItem]; |
return self; |
} |
return nil; |
} |
-- (void)updateInspectorItem { |
- PrefService* service = profile_->GetPrefs(); |
- bool devmode = service->GetBoolean(prefs::kExtensionsUIDeveloperMode); |
- if (devmode) { |
- if ([self indexOfItem:inspectorItem_.get()] == -1) |
- [self addItem:inspectorItem_.get()]; |
- } else { |
- if ([self indexOfItem:inspectorItem_.get()] != -1) |
- [self removeItem:inspectorItem_.get()]; |
- } |
-} |
- |
- (void)dispatch:(id)menuItem { |
Browser* browser = BrowserList::FindBrowserWithProfile(profile_); |
if (!browser) |
@@ -278,37 +192,6 @@ int CurrentTabId() { |
browser->ShowExtensionsTab(); |
break; |
} |
- case kExtensionContextInspect: { |
- BrowserWindowCocoa* window = |
- static_cast<BrowserWindowCocoa*>(browser->window()); |
- ToolbarController* toolbarController = |
- [window->cocoa_controller() toolbarController]; |
- LocationBarViewMac* locationBarView = |
- [toolbarController locationBarBridge]; |
- |
- NSPoint popupPoint = NSZeroPoint; |
- if (extension_->page_action() == action_) { |
- popupPoint = locationBarView->GetPageActionBubblePoint(action_); |
- |
- } else if (extension_->browser_action() == action_) { |
- BrowserActionsController* controller = |
- [toolbarController browserActionsController]; |
- popupPoint = [controller popupPointForBrowserAction:extension_]; |
- |
- } else { |
- NOTREACHED() << "action_ is not a page action or browser action?"; |
- } |
- |
- int tabId = CurrentTabId(); |
- GURL url = action_->GetPopupUrl(tabId); |
- DCHECK(url.is_valid()); |
- [ExtensionPopupController showURL:url |
- inBrowser:BrowserList::GetLastActive() |
- anchoredAt:popupPoint |
- arrowLocation:info_bubble::kTopRight |
- devMode:YES]; |
- break; |
- } |
default: |
NOTREACHED(); |
break; |
@@ -316,19 +199,11 @@ int CurrentTabId() { |
} |
- (BOOL)validateMenuItem:(NSMenuItem*)menuItem { |
- if ([menuItem tag] == kExtensionContextInspect) { |
- // Disable 'Inspect popup' if there is no popup. |
- return action_ && action_->HasPopup(CurrentTabId()); |
- } else if ([menuItem tag] == kExtensionContextOptions) { |
+ if ([menuItem tag] == kExtensionContextOptions) { |
// Disable 'Options' if there are no options to set. |
return extension_->options_url().spec().length() > 0; |
} |
return YES; |
} |
-- (void)invalidateProfile { |
- observer_.reset(); |
- profile_ = NULL; |
-} |
- |
@end |