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

Side by Side Diff: chrome/browser/speech/speech_recognition_bubble_controller.cc

Issue 148343008: Speech Recognition API: Safeguarding against page closes during startup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review comments Created 6 years, 10 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/speech/speech_recognition_bubble_controller.h" 5 #include "chrome/browser/speech/speech_recognition_bubble_controller.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "chrome/browser/tab_contents/tab_util.h" 8 #include "chrome/browser/tab_contents/tab_util.h"
9 #include "content/public/browser/browser_thread.h" 9 #include "content/public/browser/browser_thread.h"
10 #include "content/public/browser/notification_registrar.h" 10 #include "content/public/browser/notification_registrar.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 161
162 // In the case of a tab closed or crashed, the bubble can have been destroyed 162 // In the case of a tab closed or crashed, the bubble can have been destroyed
163 // earlier on the UI thread, while other tasks were being enqueued from the IO 163 // earlier on the UI thread, while other tasks were being enqueued from the IO
164 // to the UI thread. Simply return in such cases. 164 // to the UI thread. Simply return in such cases.
165 if (request.type != REQUEST_CREATE && !bubble_.get()) 165 if (request.type != REQUEST_CREATE && !bubble_.get())
166 return; 166 return;
167 167
168 switch (request.type) { 168 switch (request.type) {
169 case REQUEST_CREATE: 169 case REQUEST_CREATE:
170 bubble_.reset(SpeechRecognitionBubble::Create( 170 bubble_.reset(SpeechRecognitionBubble::Create(
171 tab_util::GetWebContentsByID(request.render_process_id, 171 request.render_process_id, request.render_view_id,
172 request.render_view_id),
173 this, request.element_rect)); 172 this, request.element_rect));
174 173
175 if (!bubble_.get()) { 174 if (!bubble_.get()) {
176 // Could be null if tab or display rect were invalid. 175 // Could be null if tab or display rect were invalid.
177 // Simulate the cancel button being clicked to inform the delegate. 176 // Simulate the cancel button being clicked to inform the delegate.
178 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 177 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
179 base::Bind( 178 base::Bind(
180 &SpeechRecognitionBubbleController::InvokeDelegateButtonClicked, 179 &SpeechRecognitionBubbleController::InvokeDelegateButtonClicked,
181 this, SpeechRecognitionBubble::BUTTON_CANCEL)); 180 this, SpeechRecognitionBubble::BUTTON_CANCEL));
182 return; 181 return;
(...skipping 27 matching lines...) Expand all
210 volume(0.0F), 209 volume(0.0F),
211 noise_volume(0.0F), 210 noise_volume(0.0F),
212 render_process_id(0), 211 render_process_id(0),
213 render_view_id(0) { 212 render_view_id(0) {
214 } 213 }
215 214
216 SpeechRecognitionBubbleController::UIRequest::~UIRequest() { 215 SpeechRecognitionBubbleController::UIRequest::~UIRequest() {
217 } 216 }
218 217
219 } // namespace speech 218 } // namespace speech
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698