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

Unified Diff: chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm

Issue 703443002: Move more extension action cocoa logic into the platform delegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dc_toolbar_abstract_extension_action
Patch Set: Created 6 years, 1 month 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/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 d86dc90d390f060393fc3c0d529ef817bfc8d44f..eaaa25b8bb4384711003f000c0e2c9cacc8f3b84 100644
--- a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
+++ b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
@@ -8,7 +8,6 @@
#include <string>
#include "base/strings/sys_string_conversions.h"
-#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_action_manager.h"
#include "chrome/browser/extensions/extension_toolbar_model.h"
@@ -17,16 +16,11 @@
#include "chrome/browser/ui/browser_window.h"
#import "chrome/browser/ui/cocoa/extensions/browser_action_button.h"
#import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h"
-#import "chrome/browser/ui/cocoa/extensions/extension_action_context_menu_controller.h"
#import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h"
#import "chrome/browser/ui/cocoa/image_button_cell.h"
#import "chrome/browser/ui/cocoa/menu_button.h"
#include "chrome/browser/ui/extensions/extension_action_view_controller.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/notification_source.h"
#include "grit/theme_resources.h"
#import "third_party/google_toolbox_for_mac/src/AppKit/GTMNSAnimation+Duration.h"
@@ -170,47 +164,11 @@ const CGFloat kBrowserActionBubbleYOffset = 3.0;
// A helper class to proxy extension notifications to the view controller's
// appropriate methods.
class ExtensionServiceObserverBridge
- : public content::NotificationObserver,
- public extensions::ExtensionToolbarModel::Observer {
+ : public extensions::ExtensionToolbarModel::Observer {
public:
ExtensionServiceObserverBridge(BrowserActionsController* owner,
Browser* browser)
: owner_(owner), browser_(browser) {
- registrar_.Add(this,
- extensions::NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE,
- content::Source<Profile>(browser->profile()));
- registrar_.Add(
- this,
- extensions::NOTIFICATION_EXTENSION_COMMAND_BROWSER_ACTION_MAC,
- content::Source<Profile>(browser->profile()));
- }
-
- // Overridden from content::NotificationObserver.
- void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) override {
- switch (type) {
- case extensions::NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE: {
- ExtensionPopupController* popup = [ExtensionPopupController popup];
- if (popup && ![popup isClosing])
- [popup close];
-
- break;
- }
- case extensions::NOTIFICATION_EXTENSION_COMMAND_BROWSER_ACTION_MAC: {
- std::pair<const std::string, gfx::NativeWindow>* payload =
- content::Details<std::pair<const std::string, gfx::NativeWindow> >(
- details).ptr();
- std::string extension_id = payload->first;
- gfx::NativeWindow window = payload->second;
- if (window != browser_->window()->GetNativeWindow())
- break;
- [owner_ activateBrowserAction:extension_id];
- break;
- }
- default:
- NOTREACHED() << L"Unexpected notification";
- }
}
// extensions::ExtensionToolbarModel::Observer implementation.
@@ -256,9 +214,6 @@ class ExtensionServiceObserverBridge
// The browser we listen for events from. Weak.
Browser* browser_;
- // Used for registering to receive notifications and automatic clean up.
- content::NotificationRegistrar registrar_;
-
DISALLOW_COPY_AND_ASSIGN(ExtensionServiceObserverBridge);
};
@@ -491,19 +446,11 @@ class ExtensionServiceObserverBridge
<< "Don't create a BrowserActionButton if there is no browser action.";
scoped_ptr<ToolbarActionViewController> viewController(
new ExtensionActionViewController(extension, browser_, extensionAction));
- // TODO(devlin): Move ContextMenuController stuff to
- // ExtensionActionViewController.
- ExtensionActionContextMenuController* menuController =
- [[ExtensionActionContextMenuController alloc]
- initWithExtension:extension
- browser:browser_
- extensionAction:extensionAction];
BrowserActionButton* newButton =
[[[BrowserActionButton alloc]
initWithFrame:buttonFrame
viewController:viewController.Pass()
- controller:self
- menuController:menuController] autorelease];
+ controller:self] autorelease];
[newButton setTarget:self];
[newButton setAction:@selector(browserActionClicked:)];
NSString* buttonKey = base::SysUTF8ToNSString(extension->id());

Powered by Google App Engine
This is Rietveld 408576698