Chromium Code Reviews| 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 7a0d5c814104717152dd983d5494f704fc31f756..2da52ef6a9be9bc764ee09696d5bb064bdad93de 100644 |
| --- a/content/browser/speech/speech_recognition_manager_impl.cc |
| +++ b/content/browser/speech/speech_recognition_manager_impl.cc |
| @@ -327,6 +327,12 @@ void SpeechRecognitionManagerImpl::AbortAllSessionsForListener( |
| void SpeechRecognitionManagerImpl::DispatchEvent(int session_id, |
| FSMEvent event) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + |
| + // There are some corner cases in which the session might be deleted (due to |
| + // an EndRecognition event) between a request (e.g. Abort) and its dispatch. |
|
Satish
2012/05/20 21:40:26
In any of these cases, does the caller need to be
Primiano Tucci (use gerrit)
2012/05/21 16:03:13
As a general reply, every caller (delegate) receiv
|
| + if (!SessionExists(session_id)) |
| + return; |
| + |
| const Session& session = GetSession(session_id); |
| FSMState session_state = GetSessionState(session_id); |
| DCHECK_LE(session_state, SESSION_STATE_MAX_VALUE); |