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

Unified Diff: chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc

Issue 12982009: Fixed the speech crash when the render view has gone away then users click "try again" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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: chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
diff --git a/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc b/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
index 05b435dc70b800c62efa2a27dfc7826d6d5d366f..0d6c75fa9ca4aa7d47aeeab0b6c692386fe6a90c 100644
--- a/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
+++ b/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
@@ -276,7 +276,9 @@ void ChromeSpeechRecognitionManagerDelegate::InfoBubbleFocusChanged(
}
void ChromeSpeechRecognitionManagerDelegate::RestartLastSession() {
tommi (sloooow) - chröme 2013/03/28 10:38:46 Hmm... rename to MaybeRestartLastSession?
- DCHECK(last_session_config_.get());
+ if (!last_session_config_.get())
+ return;
tommi (sloooow) - chröme 2013/03/28 10:38:46 what effect does this have on the functionality? A
+
SpeechRecognitionManager* manager = SpeechRecognitionManager::GetInstance();
const int new_session_id = manager->CreateSession(*last_session_config_);
DCHECK_NE(SpeechRecognitionManager::kSessionIDInvalid, new_session_id);
@@ -472,6 +474,13 @@ ChromeSpeechRecognitionManagerDelegate::GetEventListener() {
return this;
}
+void ChromeSpeechRecognitionManagerDelegate::OnAbortSessionsForListener(
+ SpeechRecognitionEventListener* listener) {
tommi (sloooow) - chröme 2013/03/28 10:38:46 Passing the listener here feels hacky. I would ra
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ if (last_session_config_->event_listener == listener)
+ last_session_config_.reset();
+}
+
void ChromeSpeechRecognitionManagerDelegate::CheckRenderViewType(
base::Callback<void(bool ask_user, bool is_allowed)> callback,
int render_process_id,

Powered by Google App Engine
This is Rietveld 408576698