Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / hotword_private / hotword_private_api.h
index 3086277..62a8f0c 100644 (file)
@@ -7,9 +7,9 @@
 
 #include "base/prefs/pref_change_registrar.h"
 #include "base/values.h"
-#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
 #include "chrome/browser/extensions/chrome_extension_function.h"
 #include "chrome/common/extensions/api/hotword_private.h"
+#include "extensions/browser/browser_context_keyed_api_factory.h"
 
 class Profile;
 
@@ -17,23 +17,27 @@ namespace extensions {
 
 // Listens for changes in disable/enabled state and forwards as an extension
 // event.
-class HotwordPrivateEventService : public ProfileKeyedAPI  {
+class HotwordPrivateEventService : public BrowserContextKeyedAPI {
  public:
-  explicit HotwordPrivateEventService(Profile* profile);
+  explicit HotwordPrivateEventService(content::BrowserContext* context);
   virtual ~HotwordPrivateEventService();
 
-  // ProfileKeyedAPI implementation.
+  // BrowserContextKeyedAPI implementation.
   virtual void Shutdown() OVERRIDE;
-  static ProfileKeyedAPIFactory<HotwordPrivateEventService>*
+  static BrowserContextKeyedAPIFactory<HotwordPrivateEventService>*
       GetFactoryInstance();
   static const char* service_name();
 
   void OnEnabledChanged(const std::string& pref_name);
 
+  void OnHotwordSessionRequested();
+
+  void OnHotwordSessionStopped();
+
  private:
-  friend class ProfileKeyedAPIFactory<HotwordPrivateEventService>;
+  friend class BrowserContextKeyedAPIFactory<HotwordPrivateEventService>;
 
-  void SignalEvent();
+  void SignalEvent(const std::string& event_name);
 
   Profile* profile_;
   PrefChangeRegistrar pref_change_registrar_;
@@ -49,7 +53,33 @@ class HotwordPrivateSetEnabledFunction : public ChromeSyncExtensionFunction {
   virtual ~HotwordPrivateSetEnabledFunction() {}
 
   // ExtensionFunction:
-  virtual bool RunImpl() OVERRIDE;
+  virtual bool RunSync() OVERRIDE;
+};
+
+class HotwordPrivateSetAudioLoggingEnabledFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.setAudioLoggingEnabled",
+                             HOTWORDPRIVATE_SETAUDIOLOGGINGENABLED)
+
+ protected:
+  virtual ~HotwordPrivateSetAudioLoggingEnabledFunction() {}
+
+  // ExtensionFunction:
+  virtual bool RunSync() OVERRIDE;
+};
+
+class HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.setHotwordAlwaysOnSearchEnabled",
+                             HOTWORDPRIVATE_SETHOTWORDALWAYSONSEARCHENABLED)
+
+ protected:
+  virtual ~HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction() {}
+
+  // ExtensionFunction:
+  virtual bool RunSync() OVERRIDE;
 };
 
 class HotwordPrivateGetStatusFunction : public ChromeSyncExtensionFunction {
@@ -61,7 +91,46 @@ class HotwordPrivateGetStatusFunction : public ChromeSyncExtensionFunction {
   virtual ~HotwordPrivateGetStatusFunction() {}
 
   // ExtensionFunction:
-  virtual bool RunImpl() OVERRIDE;
+  virtual bool RunSync() OVERRIDE;
+};
+
+class HotwordPrivateSetHotwordSessionStateFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.setHotwordSessionState",
+                             HOTWORDPRIVATE_SETHOTWORDSESSIONSTATE);
+
+ protected:
+  virtual ~HotwordPrivateSetHotwordSessionStateFunction() {}
+
+  // ExtensionFunction:
+  virtual bool RunSync() OVERRIDE;
+};
+
+class HotwordPrivateNotifyHotwordRecognitionFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.notifyHotwordRecognition",
+                             HOTWORDPRIVATE_NOTIFYHOTWORDRECOGNITION);
+
+ protected:
+  virtual ~HotwordPrivateNotifyHotwordRecognitionFunction() {}
+
+  // ExtensionFunction:
+  virtual bool RunSync() OVERRIDE;
+};
+
+class HotwordPrivateGetLaunchStateFunction :
+    public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.getLaunchState",
+                             HOTWORDPRIVATE_GETLAUNCHSTATE)
+
+ protected:
+  virtual ~HotwordPrivateGetLaunchStateFunction() {}
+
+  // ExtensionFunction:
+  virtual bool RunSync() OVERRIDE;
 };
 
 }  // namespace extensions