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

Unified Diff: content/browser/speech/speech_recognition_manager_impl.cc

Issue 10399025: Moved instantiation of SpeechRecognitionManager inside browser_main_loop, instead of Singleton. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed build issues. Created 8 years, 7 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: content/browser/speech/speech_recognition_manager_impl.cc
diff --git a/content/browser/speech/speech_recognition_manager_impl.cc b/content/browser/speech/speech_recognition_manager_impl.cc
index 9301d9d65c119d0022f58ad42bce407a217b7a9a..7a0d5c814104717152dd983d5494f704fc31f756 100644
--- a/content/browser/speech/speech_recognition_manager_impl.cc
+++ b/content/browser/speech/speech_recognition_manager_impl.cc
@@ -5,7 +5,6 @@
#include "content/browser/speech/speech_recognition_manager_impl.h"
#include "base/bind.h"
-#include "base/memory/singleton.h"
#include "content/browser/browser_main_loop.h"
#include "content/browser/speech/google_one_shot_remote_engine.h"
#include "content/browser/speech/speech_recognition_engine.h"
@@ -39,22 +38,30 @@ SpeechRecognitionManager* SpeechRecognitionManager::GetInstance() {
}
} // namespace content
+namespace {
+speech::SpeechRecognitionManagerImpl* g_speech_recognition_manager_impl;
+} // namespace
+
namespace speech {
SpeechRecognitionManagerImpl* SpeechRecognitionManagerImpl::GetInstance() {
- return Singleton<SpeechRecognitionManagerImpl,
- LeakySingletonTraits<SpeechRecognitionManagerImpl> >::get();
+ DCHECK(g_speech_recognition_manager_impl);
+ return g_speech_recognition_manager_impl;
}
SpeechRecognitionManagerImpl::SpeechRecognitionManagerImpl()
: session_id_capturing_audio_(kSessionIDInvalid),
last_session_id_(kSessionIDInvalid),
- is_dispatching_event_(false) {
- delegate_ = content::GetContentClient()->browser()->
- GetSpeechRecognitionManagerDelegate();
+ is_dispatching_event_(false),
+ delegate_(content::GetContentClient()->browser()->
+ GetSpeechRecognitionManagerDelegate()) {
+ DCHECK(!g_speech_recognition_manager_impl);
+ g_speech_recognition_manager_impl = this;
}
SpeechRecognitionManagerImpl::~SpeechRecognitionManagerImpl() {
+ DCHECK(g_speech_recognition_manager_impl);
+ g_speech_recognition_manager_impl = NULL;
// Recognition sessions will be aborted by the corresponding destructors.
sessions_.clear();
}
@@ -73,7 +80,7 @@ int SpeechRecognitionManagerImpl::CreateSession(
std::string hardware_info;
bool can_report_metrics = false;
- if (delegate_)
+ if (delegate_.get())
delegate_->GetDiagnosticInformation(&can_report_metrics, &hardware_info);
SpeechRecognitionEngineConfig remote_engine_config;
@@ -108,7 +115,7 @@ void SpeechRecognitionManagerImpl::StartSession(int session_id) {
AbortSession(session_id_capturing_audio_);
}
- if (delegate_)
+ if (delegate_.get())
delegate_->CheckRecognitionIsAllowed(
session_id,
base::Bind(&SpeechRecognitionManagerImpl::RecognitionAllowedCallback,
@@ -472,7 +479,7 @@ SpeechRecognitionEventListener* SpeechRecognitionManagerImpl::GetListener(
SpeechRecognitionEventListener*
SpeechRecognitionManagerImpl::GetDelegateListener() const {
- return delegate_ ? delegate_->GetEventListener() : NULL;
+ return delegate_.get() ? delegate_->GetEventListener() : NULL;
}
const SpeechRecognitionSessionConfig&
« no previous file with comments | « content/browser/speech/speech_recognition_manager_impl.h ('k') | content/public/browser/speech_recognition_session_config.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698