| 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 668aae0a9ad7396d301cacd3b572ec5768996021..8761c8faa110bb00e09a835ef9de9f24285ef757 100644
|
| --- a/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
|
| +++ b/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
|
| @@ -373,8 +373,7 @@ void ChromeSpeechRecognitionManagerDelegate::CheckRecognitionIsAllowed(
|
| base::Bind(&CheckRenderViewType,
|
| callback,
|
| render_process_id,
|
| - render_view_id,
|
| - !context.requested_by_page_element));
|
| + render_view_id));
|
| }
|
|
|
| content::SpeechRecognitionEventListener*
|
| @@ -397,8 +396,7 @@ bool ChromeSpeechRecognitionManagerDelegate::FilterProfanities(
|
| void ChromeSpeechRecognitionManagerDelegate::CheckRenderViewType(
|
| base::Callback<void(bool ask_user, bool is_allowed)> callback,
|
| int render_process_id,
|
| - int render_view_id,
|
| - bool js_api) {
|
| + int render_view_id) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| const content::RenderViewHost* render_view_host =
|
| content::RenderViewHost::FromID(render_process_id, render_view_id);
|
| @@ -407,16 +405,9 @@ void ChromeSpeechRecognitionManagerDelegate::CheckRenderViewType(
|
| bool check_permission = false;
|
|
|
| if (!render_view_host) {
|
| - if (!js_api) {
|
| - // If there is no render view, we cannot show the speech bubble, so this
|
| - // is not allowed.
|
| - allowed = false;
|
| - check_permission = false;
|
| - } else {
|
| - // This happens for extensions. Manifest should be checked for permission.
|
| - allowed = true;
|
| - check_permission = false;
|
| - }
|
| + // This happens for extensions. Manifest should be checked for permission.
|
| + allowed = true;
|
| + check_permission = false;
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| base::Bind(callback, check_permission, allowed));
|
| return;
|
| @@ -434,28 +425,14 @@ void ChromeSpeechRecognitionManagerDelegate::CheckRenderViewType(
|
|
|
| extensions::ViewType view_type = extensions::GetViewType(web_contents);
|
|
|
| - // TODO(kalman): Also enable speech bubble for extension popups
|
| - // (VIEW_TYPE_EXTENSION_POPUP) once popup-like control UI works properly in
|
| - // extensions: http://crbug.com/163851.
|
| - // Right now the extension popup closes and dismisses immediately on user
|
| - // click.
|
| if (view_type == extensions::VIEW_TYPE_TAB_CONTENTS ||
|
| view_type == extensions::VIEW_TYPE_APP_WINDOW ||
|
| view_type == extensions::VIEW_TYPE_VIRTUAL_KEYBOARD ||
|
| - // Only allow requests through JavaScript API (|js_api| = true).
|
| - // Requests originating from html element (|js_api| = false) would want
|
| - // to show bubble which isn't quite intuitive from a background page. Also
|
| - // see todo above about issues with rendering such bubbles from extension
|
| - // popups.
|
| - (view_type == extensions::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE &&
|
| - js_api)) {
|
| - // If it is a tab, we can show the speech input bubble or check for
|
| - // permission. For apps, this means manifest would be checked for
|
| - // permission.
|
| -
|
| + view_type == extensions::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE) {
|
| + // If it is a tab, we can check for permission. For apps, this means
|
| + // manifest would be checked for permission.
|
| allowed = true;
|
| - if (js_api)
|
| - check_permission = true;
|
| + check_permission = true;
|
| }
|
|
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
|
|