New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 688383 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
OOO Dec 22 - Jan 8
Closed: Feb 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 672468



Sign in to add a comment

Virtual keyboard private API calls AudioManager::HasInputDevices() on UI thread.

Project Member Reported by olka@chromium.org, Feb 3 2017

Issue description

Call stack:
.ChromeVirtualKeyboardDelegate::GetKeyboardConfig()
..keyboard::IsVoiceInputEnabled()
...AudioManager::HasInputDevices()

AudioManager::HasInputDevices() calls into platform audio to enumerate devices, which should be done on the thread audio system is initialized on (which is AudioManager thread).
 

Comment 1 by olka@chromium.org, Feb 3 2017

Description: Show this description

Comment 2 by olka@chromium.org, Feb 3 2017

Blocking: 672468
Project Member

Comment 3 by bugdroid1@chromium.org, Feb 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f60887063fcf9c142a478a46f3c052c51256d5ca

commit f60887063fcf9c142a478a46f3c052c51256d5ca
Author: olka <olka@chromium.org>
Date: Fri Feb 10 19:52:09 2017

Switching VirtualKeyboardPrivate keyboard config call stack to receive HasInputDevices() responce asyncrhonously

* AudioSystem::HasInputDevices() method added;
* AudioSystem::Get() introduced to access AudioSystem instance outside of content/browser and on any browser thread (approach is similar to AudioManager one).
* HasInputDevices call is moved from ui/keyboard/keyboard_util to ChromeVirtualKeyboardDelegate;
* ChromeVirtualKeyboardDelegate::GetKeyboardConfig() replies asynchronously now, as well as VirtualKeyboardPrivateGetKeyboardConfigFunction.
* Drive-by fix in SpeechRecognition browser tests (MocKAudioManager was not being deleted there because its message loop was shut down during unique_ptr destruction.)

TESTING=manually tested virtual keyboard on a chromebook.
BUG= 688383 ,  672468 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2687853002
Cr-Commit-Position: refs/heads/master@{#449704}

[add] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/chrome/browser/extensions/api/virtual_keyboard_private/DEPS
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.h
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/content/browser/speech/speech_recognition_browsertest.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_delegate.h
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.h
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/media/audio/BUILD.gn
[add] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/media/audio/audio_system.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/media/audio/audio_system.h
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/media/audio/audio_system_impl.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/media/audio/audio_system_impl.h
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/media/audio/audio_system_impl_unittest.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/ui/keyboard/BUILD.gn
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/f60887063fcf9c142a478a46f3c052c51256d5ca/ui/keyboard/keyboard_util.h

Comment 4 by olka@chromium.org, Feb 16 2017

Status: Fixed (was: Started)

Sign in to add a comment