diff options
-rw-r--r-- | content/browser/speech/speech_recognition_manager_impl.cc | 13 | ||||
-rw-r--r-- | content/browser/speech/speech_recognition_manager_impl.h | 2 | ||||
-rw-r--r-- | content/content_tests.gypi | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/content/browser/speech/speech_recognition_manager_impl.cc b/content/browser/speech/speech_recognition_manager_impl.cc index 5967620..be99298 100644 --- a/content/browser/speech/speech_recognition_manager_impl.cc +++ b/content/browser/speech/speech_recognition_manager_impl.cc @@ -51,6 +51,7 @@ void ShowAudioInputSettingsOnFileThread() { namespace speech { +#if !defined(OS_IOS) class SpeechRecognitionManagerImpl::PermissionRequest : public media_stream::MediaStreamRequester { public: @@ -125,6 +126,7 @@ class SpeechRecognitionManagerImpl::PermissionRequest std::string label_; bool started_; }; +#endif // !defined(OS_IOS) SpeechRecognitionManagerImpl* SpeechRecognitionManagerImpl::GetInstance() { return g_speech_recognition_manager_impl; @@ -229,6 +231,11 @@ void SpeechRecognitionManagerImpl::RecognitionAllowedCallback(int session_id, if (!SessionExists(session_id)) return; +#if defined(OS_IOS) + // On iOS, voice search can only be initiated by clear user action and thus + // it is always allowed. + DCHECK(!ask_user && is_allowed); +#else if (ask_user) { const SpeechRecognitionSessionContext& context = GetSessionContext(session_id); @@ -246,8 +253,8 @@ void SpeechRecognitionManagerImpl::RecognitionAllowedCallback(int session_id, return; } - permission_request_.reset(); +#endif // defined(OS_IOS) if (is_allowed) { MessageLoop::current()->PostTask(FROM_HERE, @@ -267,11 +274,13 @@ void SpeechRecognitionManagerImpl::AbortSession(int session_id) { if (!SessionExists(session_id)) return; +#if !defined(OS_IOS) if (permission_request_.get() && permission_request_->Session() == session_id) { DCHECK(permission_request_.get()); permission_request_->Abort(); } +#endif // !defined(OS_IOS) MessageLoop::current()->PostTask(FROM_HERE, base::Bind(&SpeechRecognitionManagerImpl::DispatchEvent, @@ -283,11 +292,13 @@ void SpeechRecognitionManagerImpl::StopAudioCaptureForSession(int session_id) { if (!SessionExists(session_id)) return; +#if !defined(OS_IOS) if (permission_request_.get() && permission_request_->Session() == session_id) { DCHECK(permission_request_.get()); permission_request_->Abort(); } +#endif // !defined(OS_IOS) MessageLoop::current()->PostTask(FROM_HERE, base::Bind(&SpeechRecognitionManagerImpl::DispatchEvent, diff --git a/content/browser/speech/speech_recognition_manager_impl.h b/content/browser/speech/speech_recognition_manager_impl.h index abb451e..c5fb75e 100644 --- a/content/browser/speech/speech_recognition_manager_impl.h +++ b/content/browser/speech/speech_recognition_manager_impl.h @@ -175,8 +175,10 @@ class CONTENT_EXPORT SpeechRecognitionManagerImpl : // since tasks pending on a destroyed WeakPtr are automatically discarded. base::WeakPtrFactory<SpeechRecognitionManagerImpl> weak_factory_; +#if !defined(OS_IOS) class PermissionRequest; scoped_ptr<PermissionRequest> permission_request_; +#endif // !defined(OS_IOS) }; } // namespace speech diff --git a/content/content_tests.gypi b/content/content_tests.gypi index 3f6e19c..2892eff 100644 --- a/content/content_tests.gypi +++ b/content/content_tests.gypi @@ -475,6 +475,7 @@ ['exclude', '\\.(cc|mm)$'], ['include', '_ios\\.(cc|mm)$'], ['include', '^browser/notification_service_impl_unittest\\.cc$'], + ['include', '^browser/speech/.*_unittest\\.cc$'], ['include', '^browser/web_contents/navigation_entry_impl_unittest\\.cc$'], ['include', '^test/run_all_unittests\\.cc$'], ], |