X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fextensions%2Fapi%2Fsystem_indicator%2Fsystem_indicator_manager.h;h=719144eb267bfdc4ab63d0f9a7593433132c6978;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=a7d7edaf265800a167b4cd24b5a34eebde1c9962;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h b/src/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h index a7d7eda..719144e 100644 --- a/src/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h +++ b/src/chrome/browser/extensions/api/system_indicator/system_indicator_manager.h @@ -11,10 +11,9 @@ #include "base/memory/linked_ptr.h" #include "base/scoped_observer.h" #include "base/threading/thread_checker.h" +#include "chrome/browser/extensions/api/extension_action/extension_action_api.h" #include "chrome/browser/extensions/extension_action_icon_factory.h" #include "components/keyed_service/core/keyed_service.h" -#include "content/public/browser/notification_observer.h" -#include "content/public/browser/notification_registrar.h" #include "extensions/browser/extension_registry_observer.h" class ExtensionAction; @@ -30,8 +29,8 @@ class ExtensionRegistry; // Keeps track of all the systemIndicator icons created for a given Profile // that are currently visible in the UI. Use SystemIndicatorManagerFactory to // create a SystemIndicatorManager object. -class SystemIndicatorManager : public content::NotificationObserver, - public ExtensionRegistryObserver, +class SystemIndicatorManager : public ExtensionRegistryObserver, + public ExtensionActionAPI::Observer, public KeyedService { public: SystemIndicatorManager(Profile* profile, StatusTray* status_tray); @@ -43,20 +42,17 @@ class SystemIndicatorManager : public content::NotificationObserver, private: FRIEND_TEST_ALL_PREFIXES(::SystemIndicatorApiTest, SystemIndicator); - // content::NotificationDelegate implementation. - virtual void Observe(int type, - const content::NotificationSource& source, - const content::NotificationDetails& details) OVERRIDE; - // ExtensionRegistryObserver implementation. virtual void OnExtensionUnloaded( content::BrowserContext* browser_context, const Extension* extension, UnloadedExtensionInfo::Reason reason) OVERRIDE; - // Determines whether the indicator should be hidden or shown and calls the - // appropriate function. - void OnSystemIndicatorChanged(const ExtensionAction* extension_action); + // ExtensionActionAPI::Observer implementation. + virtual void OnExtensionActionUpdated( + ExtensionAction* extension_action, + content::WebContents* web_contents, + content::BrowserContext* browser_context) OVERRIDE; // Causes a call to OnStatusIconClicked for the specified extension_id. // Returns false if no ExtensionIndicatorIcon is found for the extension. @@ -77,9 +73,11 @@ class SystemIndicatorManager : public content::NotificationObserver, Profile* profile_; StatusTray* status_tray_; SystemIndicatorMap system_indicators_; - content::NotificationRegistrar registrar_; base::ThreadChecker thread_checker_; + ScopedObserver + extension_action_observer_; + // Listen to extension unloaded notifications. ScopedObserver extension_registry_observer_;