Index: chrome/browser/speech/speech_input_extension_manager.h |
=================================================================== |
--- chrome/browser/speech/speech_input_extension_manager.h (revision 176116) |
+++ chrome/browser/speech/speech_input_extension_manager.h (working copy) |
@@ -11,6 +11,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/synchronization/lock.h" |
+#include "chrome/browser/extensions/api/profile_keyed_api_factory.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/speech_recognition_event_listener.h" |
@@ -89,9 +90,6 @@ |
// a new one if required. |
static SpeechInputExtensionManager* GetForProfile(Profile* profile); |
- // Initialize the ProfileKeyedServiceFactory. |
- static void InitializeFactory(); |
- |
// Request to start speech recognition for the provided extension. |
bool Start(const std::string& extension_id, |
const std::string& language, |
@@ -188,7 +186,6 @@ |
virtual ~SpeechInputExtensionManager(); |
friend class base::RefCountedThreadSafe<SpeechInputExtensionManager>; |
- class Factory; |
// Lock used to allow exclusive access to the state variable and methods that |
// either read or write on it. This is required since the speech code |
@@ -212,4 +209,36 @@ |
int speech_recognition_session_id_; |
}; |
+namespace extensions { |
+ |
+class SpeechInputAPI : public ProfileKeyedAPI { |
+ public: |
+ explicit SpeechInputAPI(Profile* profile); |
+ virtual ~SpeechInputAPI(); |
+ |
+ // Convenience method to get the SpeechInputExtensionAPI for a profile. |
+ static SpeechInputAPI* GetForProfile(Profile* profile); |
+ |
+ // ProfileKeyedAPI implementation. |
+ static ProfileKeyedAPIFactory<SpeechInputAPI>* GetFactoryInstance(); |
+ |
+ SpeechInputExtensionManager* manager() const { return manager_.get(); } |
+ |
+ private: |
+ friend class ProfileKeyedAPIFactory<SpeechInputAPI>; |
+ |
+ // ProfileKeyedAPI implementation. |
+ static const char* service_name() { |
+ return "SpeechInputAPI"; |
+ } |
+ static const bool kServiceIsNULLWhileTesting = true; |
+ static const bool kServiceIsCreatedWithProfile = true; |
+ // Methods from ProfileKeyedService. |
+ virtual void Shutdown() OVERRIDE; |
+ |
+ scoped_refptr<SpeechInputExtensionManager> manager_; |
+}; |
+ |
+} // namespace extensions |
+ |
#endif // CHROME_BROWSER_SPEECH_SPEECH_INPUT_EXTENSION_MANAGER_H_ |