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

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 FakeSpeechRecognitionManager. 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 7f9eef1289c5fcf6ba6e7db489d5a1eafcbc72e8..306a14f1533bc1710dfc524d017493842c796b1e 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 {
+static speech::SpeechRecognitionManagerImpl* g_speech_recognition_manager_impl;
+} // namespace
hans 2012/05/15 15:32:31 no need for both anonymous namespace and static
Primiano Tucci (use gerrit) 2012/05/15 16:04:03 Done.
+
namespace speech {
SpeechRecognitionManagerImpl* SpeechRecognitionManagerImpl::GetInstance() {
- return Singleton<SpeechRecognitionManagerImpl,
- LeakySingletonTraits<SpeechRecognitionManagerImpl> >::get();
+ DCHECK(g_speech_recognition_manager_impl);
hans 2012/05/15 15:32:31 but the comment for GetInstance() says this may re
Primiano Tucci (use gerrit) 2012/05/15 16:04:03 Ah, right. I changed the comment (I copied it from
+ 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);
GoogleOneShotRemoteEngineConfig 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&

Powered by Google App Engine
This is Rietveld 408576698