Index: content/renderer/speech_recognition_dispatcher.cc |
diff --git a/content/renderer/speech_recognition_dispatcher.cc b/content/renderer/speech_recognition_dispatcher.cc |
index 3d76c20b90825a495e7da382468866f87e26a8b4..06cef4c360d43cf44162d245b3ae9640087cf98b 100644 |
--- a/content/renderer/speech_recognition_dispatcher.cc |
+++ b/content/renderer/speech_recognition_dispatcher.cc |
@@ -35,6 +35,15 @@ SpeechRecognitionDispatcher::SpeechRecognitionDispatcher( |
SpeechRecognitionDispatcher::~SpeechRecognitionDispatcher() { |
} |
+void SpeechRecognitionDispatcher::AbortAllRecognitions() { |
+ for (HandleMap::iterator iter = handle_map_.begin(); |
+ iter != handle_map_.end(); |
+ ++iter) { |
+ // OnEnd event will be sent to the SpeechRecognition object later. |
+ abort(iter->second, recognizer_client_); |
+ } |
+} |
+ |
bool SpeechRecognitionDispatcher::OnMessageReceived( |
const IPC::Message& message) { |
bool handled = true; |
@@ -58,6 +67,7 @@ void SpeechRecognitionDispatcher::start( |
const WebSpeechRecognitionParams& params, |
WebSpeechRecognizerClient* recognizer_client) { |
DCHECK(!recognizer_client_ || recognizer_client_ == recognizer_client); |
+ |
recognizer_client_ = recognizer_client; |
SpeechRecognitionHostMsg_StartRequest_Params msg_params; |
@@ -206,7 +216,6 @@ void SpeechRecognitionDispatcher::OnResultsRetrieved( |
GetHandleFromID(request_id), final, provisional); |
} |
- |
int SpeechRecognitionDispatcher::GetOrCreateIDForHandle( |
const WebSpeechRecognitionHandle& handle) { |
// Search first for an existing mapping. |