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

Unified Diff: chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc

Issue 2687853002: Switching VirtualKeyboardPrivate keyboard config call stack to receive HasInputDevices() responce a… (Closed)
Patch Set: Fix for compilation error on linux_chromium_chromeos Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
diff --git a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
index aeda9a0a8a8de63c687a3c7299ed2d5c6b3a30ab..e67c58718283fe2e8d1dfc060fe0d1469e3553a7 100644
--- a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
+++ b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
@@ -8,6 +8,7 @@
#include <utility>
#include "ash/shell.h"
+#include "base/bind.h"
#include "base/command_line.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics_action.h"
@@ -20,6 +21,7 @@
#include "components/user_manager/user_manager.h"
#include "content/public/browser/user_metrics.h"
#include "extensions/common/api/virtual_keyboard_private.h"
+#include "media/audio/audio_system.h"
#include "ui/aura/window_tree_host.h"
#include "ui/keyboard/keyboard_controller.h"
#include "ui/keyboard/keyboard_switches.h"
@@ -69,27 +71,19 @@ keyboard::KeyboardState getKeyboardStateEnum(
namespace extensions {
-bool ChromeVirtualKeyboardDelegate::GetKeyboardConfig(
- base::DictionaryValue* results) {
+ChromeVirtualKeyboardDelegate::ChromeVirtualKeyboardDelegate()
+ : weak_factory_(this) {
+ weak_this_ = weak_factory_.GetWeakPtr();
+}
+
+ChromeVirtualKeyboardDelegate::~ChromeVirtualKeyboardDelegate() {}
+
+void ChromeVirtualKeyboardDelegate::GetKeyboardConfig(
+ OnKeyboardSettingsCallback on_settings_callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- results->SetString("layout", keyboard::GetKeyboardLayout());
- // TODO(bshe): Consolidate a11y, hotrod and normal mode into a mode enum. See
- // crbug.com/529474.
- results->SetBoolean("a11ymode", keyboard::GetAccessibilityKeyboardEnabled());
- results->SetBoolean("hotrodmode", keyboard::GetHotrodKeyboardEnabled());
- std::unique_ptr<base::ListValue> features(new base::ListValue());
- features->AppendString(GenerateFeatureFlag(
- "floatingvirtualkeyboard", keyboard::IsFloatingVirtualKeyboardEnabled()));
- features->AppendString(
- GenerateFeatureFlag("gesturetyping", keyboard::IsGestureTypingEnabled()));
- features->AppendString(GenerateFeatureFlag(
- "gestureediting", keyboard::IsGestureEditingEnabled()));
- features->AppendString(
- GenerateFeatureFlag("voiceinput", keyboard::IsVoiceInputEnabled()));
- features->AppendString(GenerateFeatureFlag("experimental",
- keyboard::IsExperimentalInputViewEnabled()));
- results->Set("features", std::move(features));
- return true;
+ media::AudioSystem::Get()->HasInputDevices(
+ base::Bind(&ChromeVirtualKeyboardDelegate::OnHasInputDevices, weak_this_,
+ std::move(on_settings_callback)));
}
bool ChromeVirtualKeyboardDelegate::HideKeyboard() {
@@ -198,4 +192,29 @@ bool ChromeVirtualKeyboardDelegate::IsLanguageSettingsEnabled() {
chromeos::ScreenLocker::default_screen_locker()->locked()));
}
+void ChromeVirtualKeyboardDelegate::OnHasInputDevices(
+ OnKeyboardSettingsCallback on_settings_callback,
+ bool has_input_devices) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ std::unique_ptr<base::DictionaryValue> results(new base::DictionaryValue());
+ results->SetString("layout", keyboard::GetKeyboardLayout());
+ // TODO(bshe): Consolidate a11y, hotrod and normal mode into a mode enum. See
+ // crbug.com/529474.
+ results->SetBoolean("a11ymode", keyboard::GetAccessibilityKeyboardEnabled());
+ results->SetBoolean("hotrodmode", keyboard::GetHotrodKeyboardEnabled());
+ std::unique_ptr<base::ListValue> features(new base::ListValue());
+ features->AppendString(GenerateFeatureFlag(
+ "floatingvirtualkeyboard", keyboard::IsFloatingVirtualKeyboardEnabled()));
+ features->AppendString(
+ GenerateFeatureFlag("gesturetyping", keyboard::IsGestureTypingEnabled()));
+ features->AppendString(GenerateFeatureFlag(
+ "gestureediting", keyboard::IsGestureEditingEnabled()));
+ features->AppendString(GenerateFeatureFlag(
+ "voiceinput", has_input_devices && keyboard::IsVoiceInputEnabled()));
+ features->AppendString(GenerateFeatureFlag(
+ "experimental", keyboard::IsExperimentalInputViewEnabled()));
+ results->Set("features", std::move(features));
+ std::move(on_settings_callback).Run(std::move(results));
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698