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

Side by Side Diff: content/browser/speech/speech_recognition_manager_impl.cc

Issue 17508005: Minor cleanup to remove the static thread-safe methods on BrowserMainLoop. Initially I thought this… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: revert PostTask change Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/speech/speech_recognition_manager_impl.h" 5 #include "content/browser/speech/speech_recognition_manager_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "content/browser/browser_main_loop.h" 8 #include "content/browser/browser_main_loop.h"
9 #include "content/browser/renderer_host/media/media_stream_manager.h" 9 #include "content/browser/renderer_host/media/media_stream_manager.h"
10 #include "content/browser/renderer_host/media/media_stream_ui_proxy.h" 10 #include "content/browser/renderer_host/media/media_stream_ui_proxy.h"
(...skipping 19 matching lines...) Expand all
30 using base::Callback; 30 using base::Callback;
31 31
32 namespace content { 32 namespace content {
33 33
34 SpeechRecognitionManager* SpeechRecognitionManager::manager_for_tests_; 34 SpeechRecognitionManager* SpeechRecognitionManager::manager_for_tests_;
35 35
36 namespace { 36 namespace {
37 37
38 SpeechRecognitionManagerImpl* g_speech_recognition_manager_impl; 38 SpeechRecognitionManagerImpl* g_speech_recognition_manager_impl;
39 39
40 void ShowAudioInputSettingsOnFileThread() { 40 void ShowAudioInputSettingsOnFileThread(media::AudioManager* audio_manager) {
41 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 41 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
42 BrowserMainLoop::GetAudioManager()->ShowAudioInputSettings(); 42 audio_manager->ShowAudioInputSettings();
43 } 43 }
44 44
45 } // namespace 45 } // namespace
46 46
47 SpeechRecognitionManager* SpeechRecognitionManager::GetInstance() { 47 SpeechRecognitionManager* SpeechRecognitionManager::GetInstance() {
48 if (manager_for_tests_) 48 if (manager_for_tests_)
49 return manager_for_tests_; 49 return manager_for_tests_;
50 return SpeechRecognitionManagerImpl::GetInstance(); 50 return SpeechRecognitionManagerImpl::GetInstance();
51 } 51 }
52 52
53 void SpeechRecognitionManager::SetManagerForTests( 53 void SpeechRecognitionManager::SetManagerForTests(
54 SpeechRecognitionManager* manager) { 54 SpeechRecognitionManager* manager) {
55 manager_for_tests_ = manager; 55 manager_for_tests_ = manager;
56 } 56 }
57 57
58 SpeechRecognitionManagerImpl* SpeechRecognitionManagerImpl::GetInstance() { 58 SpeechRecognitionManagerImpl* SpeechRecognitionManagerImpl::GetInstance() {
59 return g_speech_recognition_manager_impl; 59 return g_speech_recognition_manager_impl;
60 } 60 }
61 61
62 SpeechRecognitionManagerImpl::SpeechRecognitionManagerImpl() 62 SpeechRecognitionManagerImpl::SpeechRecognitionManagerImpl(
63 : primary_session_id_(kSessionIDInvalid), 63 media::AudioManager* audio_manager,
64 MediaStreamManager* media_stream_manager)
65 : audio_manager_(audio_manager),
66 media_stream_manager_(media_stream_manager),
67 primary_session_id_(kSessionIDInvalid),
64 last_session_id_(kSessionIDInvalid), 68 last_session_id_(kSessionIDInvalid),
65 is_dispatching_event_(false), 69 is_dispatching_event_(false),
66 delegate_(GetContentClient()->browser()-> 70 delegate_(GetContentClient()->browser()->
67 GetSpeechRecognitionManagerDelegate()), 71 GetSpeechRecognitionManagerDelegate()),
68 weak_factory_(this) { 72 weak_factory_(this) {
69 DCHECK(!g_speech_recognition_manager_impl); 73 DCHECK(!g_speech_recognition_manager_impl);
70 g_speech_recognition_manager_impl = this; 74 g_speech_recognition_manager_impl = this;
71 } 75 }
72 76
73 SpeechRecognitionManagerImpl::~SpeechRecognitionManagerImpl() { 77 SpeechRecognitionManagerImpl::~SpeechRecognitionManagerImpl() {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 bool ask_user, 180 bool ask_user,
177 bool is_allowed) { 181 bool is_allowed) {
178 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 182 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
179 if (!SessionExists(session_id)) 183 if (!SessionExists(session_id))
180 return; 184 return;
181 185
182 if (ask_user) { 186 if (ask_user) {
183 SessionsTable::iterator iter = sessions_.find(session_id); 187 SessionsTable::iterator iter = sessions_.find(session_id);
184 DCHECK(iter != sessions_.end()); 188 DCHECK(iter != sessions_.end());
185 SpeechRecognitionSessionContext& context = iter->second->context; 189 SpeechRecognitionSessionContext& context = iter->second->context;
186 context.label = 190 context.label = media_stream_manager_->MakeMediaAccessRequest(
187 BrowserMainLoop::GetMediaStreamManager()->MakeMediaAccessRequest( 191 context.render_process_id,
188 context.render_process_id, 192 context.render_view_id,
189 context.render_view_id, 193 StreamOptions(MEDIA_DEVICE_AUDIO_CAPTURE, MEDIA_NO_SERVICE),
190 StreamOptions(MEDIA_DEVICE_AUDIO_CAPTURE, MEDIA_NO_SERVICE), 194 GURL(context.context_name),
191 GURL(context.context_name), 195 base::Bind(
192 base::Bind( 196 &SpeechRecognitionManagerImpl::MediaRequestPermissionCallback,
193 &SpeechRecognitionManagerImpl::MediaRequestPermissionCallback, 197 weak_factory_.GetWeakPtr(), session_id));
194 weak_factory_.GetWeakPtr(), session_id));
195 return; 198 return;
196 } 199 }
197 200
198 if (is_allowed) { 201 if (is_allowed) {
199 base::MessageLoop::current()->PostTask( 202 base::MessageLoop::current()->PostTask(
200 FROM_HERE, 203 FROM_HERE,
201 base::Bind(&SpeechRecognitionManagerImpl::DispatchEvent, 204 base::Bind(&SpeechRecognitionManagerImpl::DispatchEvent,
202 weak_factory_.GetWeakPtr(), 205 weak_factory_.GetWeakPtr(),
203 session_id, 206 session_id,
204 EVENT_START)); 207 EVENT_START));
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 SpeechRecognitionManagerImpl::GetDelegateListener() const { 638 SpeechRecognitionManagerImpl::GetDelegateListener() const {
636 return delegate_.get() ? delegate_->GetEventListener() : NULL; 639 return delegate_.get() ? delegate_->GetEventListener() : NULL;
637 } 640 }
638 641
639 const SpeechRecognitionSessionConfig& 642 const SpeechRecognitionSessionConfig&
640 SpeechRecognitionManagerImpl::GetSessionConfig(int session_id) const { 643 SpeechRecognitionManagerImpl::GetSessionConfig(int session_id) const {
641 return GetSession(session_id)->config; 644 return GetSession(session_id)->config;
642 } 645 }
643 646
644 bool SpeechRecognitionManagerImpl::HasAudioInputDevices() { 647 bool SpeechRecognitionManagerImpl::HasAudioInputDevices() {
645 return BrowserMainLoop::GetAudioManager()->HasAudioInputDevices(); 648 return audio_manager_->HasAudioInputDevices();
646 } 649 }
647 650
648 string16 SpeechRecognitionManagerImpl::GetAudioInputDeviceModel() { 651 string16 SpeechRecognitionManagerImpl::GetAudioInputDeviceModel() {
649 return BrowserMainLoop::GetAudioManager()->GetAudioInputDeviceModel(); 652 return audio_manager_->GetAudioInputDeviceModel();
650 } 653 }
651 654
652 void SpeechRecognitionManagerImpl::ShowAudioInputSettings() { 655 void SpeechRecognitionManagerImpl::ShowAudioInputSettings() {
653 // Since AudioManager::ShowAudioInputSettings can potentially launch external 656 // Since AudioManager::ShowAudioInputSettings can potentially launch external
654 // processes, do that in the FILE thread to not block the calling threads. 657 // processes, do that in the FILE thread to not block the calling threads.
655 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, 658 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
656 base::Bind(&ShowAudioInputSettingsOnFileThread)); 659 base::Bind(&ShowAudioInputSettingsOnFileThread,
660 audio_manager_));
657 } 661 }
658 662
659 SpeechRecognitionManagerImpl::Session::Session() 663 SpeechRecognitionManagerImpl::Session::Session()
660 : id(kSessionIDInvalid), 664 : id(kSessionIDInvalid),
661 listener_is_active(true) { 665 listener_is_active(true) {
662 } 666 }
663 667
664 SpeechRecognitionManagerImpl::Session::~Session() { 668 SpeechRecognitionManagerImpl::Session::~Session() {
665 } 669 }
666 670
667 } // namespace content 671 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/speech/speech_recognition_manager_impl.h ('k') | content/public/browser/media_devices_monitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698