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

Unified Diff: chrome/browser/speech/speech_input_extension_manager.h

Issue 14230005: Remove all code for chrome.experimental.speechInput extension API (Closed) Base URL: https://src.chromium.org/svn/trunk/src/
Patch Set: rebase Created 7 years, 8 months 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/speech/speech_input_extension_manager.h
===================================================================
--- chrome/browser/speech/speech_input_extension_manager.h (revision 195413)
+++ chrome/browser/speech/speech_input_extension_manager.h (working copy)
@@ -1,244 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_SPEECH_SPEECH_INPUT_EXTENSION_MANAGER_H_
-#define CHROME_BROWSER_SPEECH_SPEECH_INPUT_EXTENSION_MANAGER_H_
-
-#include <string>
-
-#include "base/callback_forward.h"
-#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"
-
-class Profile;
-
-namespace base {
-class ListValue;
-}
-
-namespace content {
-class NotificationRegistrar;
-struct SpeechRecognitionError;
-class SpeechRecognitionManager;
-struct SpeechRecognitionResult;
-}
-
-namespace net {
-class URLRequestContextGetter;
-}
-
-// Used for API tests.
-class SpeechInputExtensionInterface {
- public:
- SpeechInputExtensionInterface();
- virtual ~SpeechInputExtensionInterface();
-
- // Called from the IO thread.
- virtual void StartRecording(
- content::SpeechRecognitionEventListener* listener,
- net::URLRequestContextGetter* context_getter,
- const std::string& extension_name,
- const std::string& language,
- const std::string& grammar,
- bool filter_profanities,
- int render_process_id) = 0;
-
- virtual void StopRecording(bool recognition_failed) = 0;
- virtual bool HasAudioInputDevices() = 0;
- virtual bool IsCapturingAudio() = 0;
-
- // Called from the UI thread.
- virtual bool HasValidRecognizer() = 0;
-};
-
-// Manages the speech input requests and responses from the extensions
-// associated to the given profile.
-class SpeechInputExtensionManager
- : public base::RefCountedThreadSafe<SpeechInputExtensionManager>,
- public content::SpeechRecognitionEventListener,
- public content::NotificationObserver,
- private SpeechInputExtensionInterface {
- public:
- enum State {
- kIdle = 0,
- kStarting,
- kRecording,
- kStopping,
- kShutdown // Internal sink state when the profile is destroyed on shutdown.
- };
-
- // Structure containing the details of the speech input failed notification.
- struct ExtensionError {
- std::string extension_id_;
- std::string error_;
-
- ExtensionError(const std::string& extension_id, const std::string& error)
- : extension_id_(extension_id), error_(error) {}
- };
-
- typedef base::Callback<void(bool)> IsRecordingCallback;
-
- // Should not be used directly. Managed by a ProfileKeyedServiceFactory.
- explicit SpeechInputExtensionManager(Profile* profile);
-
- // Returns the corresponding manager for the given profile, creating
- // a new one if required.
- static SpeechInputExtensionManager* GetForProfile(Profile* profile);
-
- // Request to start speech recognition for the provided extension.
- bool Start(const std::string& extension_id,
- const std::string& language,
- const std::string& grammar,
- bool filter_profanities,
- std::string* error);
-
- // Request to stop an ongoing speech recognition.
- bool Stop(const std::string& extension_id, std::string* error);
-
- // Retrieve the actual state of the API manager.
- State state() const { return state_; }
-
- // Check if recording is currently ongoing in Chrome.
- // This method is expected to be called from the UI thread.
- // The callback will be invoked with the result on this same thread.
- void IsRecording(const IsRecordingCallback& callback);
-
- // Called by internal ProfileKeyedService class.
- void ShutdownOnUIThread();
-
- // Methods from content::NotificationObserver.
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- // Methods from SpeechRecognitionEventListener.
- virtual void OnRecognitionStart(int session_id) OVERRIDE;
- virtual void OnAudioStart(int session_id) OVERRIDE;
- virtual void OnEnvironmentEstimationComplete(int session_id) OVERRIDE;
- virtual void OnSoundStart(int session_id) OVERRIDE;
- virtual void OnSoundEnd(int session_id) OVERRIDE;
- virtual void OnAudioEnd(int session_id) OVERRIDE;
- virtual void OnRecognitionResults(
- int session_id, const content::SpeechRecognitionResults& result) OVERRIDE;
- virtual void OnRecognitionError(
- int session_id, const content::SpeechRecognitionError& error) OVERRIDE;
- virtual void OnAudioLevelsChange(int session_id, float volume,
- float noise_volume) OVERRIDE;
- virtual void OnRecognitionEnd(int session_id) OVERRIDE;
-
- // Methods for API testing.
- void SetSpeechInputExtensionInterface(
- SpeechInputExtensionInterface* speech_interface);
-
- SpeechInputExtensionInterface* GetSpeechInputExtensionInterface();
-
- private:
- // SpeechInputExtensionInterface methods:
- virtual bool IsCapturingAudio() OVERRIDE;
- virtual bool HasAudioInputDevices() OVERRIDE;
- virtual bool HasValidRecognizer() OVERRIDE;
- virtual void StartRecording(
- content::SpeechRecognitionEventListener* listener,
- net::URLRequestContextGetter* context_getter,
- const std::string& extension_name,
- const std::string& language,
- const std::string& grammar,
- bool filter_profanities,
- int render_process_id) OVERRIDE;
-
- virtual void StopRecording(bool recognition_failed) OVERRIDE;
-
- // Internal methods.
- void StartOnIOThread(
- scoped_refptr<net::URLRequestContextGetter> context_getter,
- const std::string& extension_name,
- const std::string& language,
- const std::string& grammar,
- bool filter_profanities,
- int render_process_id);
- void ForceStopOnIOThread();
- void IsRecordingOnIOThread(const IsRecordingCallback& callback);
-
- void SetRecognitionResultsOnUIThread(
- const content::SpeechRecognitionResults& result,
- const std::string& extension_id);
- void DidStartReceivingAudioOnUIThread();
- void StopSucceededOnUIThread();
- void IsRecordingOnUIThread(const IsRecordingCallback& callback, bool result);
-
- void DispatchError(const std::string& error, bool dispatch_event);
- void DispatchEventToExtension(const std::string& extension_id,
- const std::string& event,
- scoped_ptr<base::ListValue> event_args);
- void ExtensionUnloaded(const std::string& extension_id);
-
- void ResetToIdleState();
-
- void AbortAllSessionsOnIOThread();
-
- int GetRenderProcessIDForExtension(const std::string& extension_id) const;
-
- virtual ~SpeechInputExtensionManager();
-
- friend class base::RefCountedThreadSafe<SpeechInputExtensionManager>;
-
- // 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
- // operates in the IO thread while the extension code uses the UI thread.
- base::Lock state_lock_;
-
- // Used in the UI thread but also its raw value as notification
- // source in the IO thread, guarded by the state lock and value.
- Profile* profile_;
-
- // Used in both threads, guarded by the state lock.
- State state_;
- std::string extension_id_in_use_;
-
- // Used in the UI thread.
- scoped_ptr<content::NotificationRegistrar> registrar_;
- SpeechInputExtensionInterface* speech_interface_;
-
- // Used in the IO thread.
- bool is_recognition_in_progress_;
- 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_
« no previous file with comments | « chrome/browser/speech/speech_input_extension_apitest.cc ('k') | chrome/browser/speech/speech_input_extension_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698