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

Unified Diff: chrome/browser/chromeos/input_method/input_method_manager_impl.cc

Issue 2323823004: Add action for each button on opt-in IME menu. (Closed)
Patch Set: Created 4 years, 3 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/chromeos/input_method/input_method_manager_impl.cc
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
index 834bb1e9c63b4a72bf17aeae2f70317a3a6ab22b..2857f122ad6b1f92d0379f89d3e9d4cfa1297f0a 100644
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
@@ -12,7 +12,9 @@
#include <sstream>
#include <utility>
+#include "ash/shell.h"
#include "base/bind.h"
+#include "base/feature_list.h"
#include "base/hash.h"
#include "base/location.h"
#include "base/metrics/histogram_macros.h"
@@ -30,6 +32,7 @@
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/ash/ash_util.h"
+#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/user_manager/user_manager.h"
@@ -1213,5 +1216,51 @@ void InputMethodManagerImpl::MaybeNotifyImeMenuActivationChanged() {
is_ime_menu_activated_);
}
+void InputMethodManagerImpl::ShowInputViewWithKeyset(
+ const std::string& keyset) {
+ std::string overriden_url = keyboard::GetOverrideContentUrl().spec();
James Cook 2016/09/12 17:05:56 nit: overriden -> overridden
Azure Wei 2016/09/14 06:53:28 Done.
+
+ auto i = overriden_url.find("#id");
James Cook 2016/09/12 17:05:57 Parsing URLs as strings is discouraged. Is there a
Azure Wei 2016/09/14 06:53:28 Updated with using ReplaceComponents(), it this be
James Cook 2016/09/14 21:14:27 Yes, thanks.
+ // If fails to find "#id", it means the current IME is not system IME, and we
+ // don't support show e/v/h input for such IME extension.
+ if (i == std::string::npos) {
James Cook 2016/09/12 17:05:56 nit: no need for {} for single-line if
Azure Wei 2016/09/14 06:53:28 Done.
+ return;
+ }
+
+ // For system IME exension, the input view url is overriden as:
+ // chrome-extension://${extension_id}/inputview.html#id=us.compact.qwerty
+ // &language=en-US&passwordLayout=us.compact.qwerty&name=keyboard_us
+ // We should replace the id=${keyset} part with desired keyset.
+ auto j = overriden_url.find("&", i + 1);
+ overriden_url.replace(i, j - i, "#id=" + keyset);
+
+ keyboard::SetOverrideContentUrl(GURL(overriden_url));
+
+ keyboard::KeyboardController* keyboard_controller =
+ keyboard::KeyboardController::GetInstance();
+ if (keyboard_controller) {
+ keyboard_controller->ShowKeyboard(false);
+ return;
+ }
+
+ if (keyboard::IsKeyboardEnabled())
+ return;
+
+ // Forcibly enables the a11y onscreen keyboard if there is on keyboard enabled
+ // for now. And re-disables it after showing once.
+ keyboard::SetAccessibilityKeyboardEnabled(true);
+ ash::Shell::GetInstance()->CreateKeyboard();
+ keyboard_controller = keyboard::KeyboardController::GetInstance();
+ if (!keyboard_controller) {
+ keyboard::SetAccessibilityKeyboardEnabled(false);
+ }
+ keyboard_controller->ShowKeyboard(false);
+ keyboard::SetAccessibilityKeyboardEnabled(false);
James Cook 2016/09/12 17:05:57 Does it matter if the accessibilitykeyboard was en
Azure Wei 2016/09/14 06:53:28 Updated this logic.
+}
James Cook 2016/09/12 17:05:56 I don't know the virtual keyboard code very well,
Azure Wei 2016/09/14 06:53:28 Updated. Also added tests: InputMethodManagerImpl
+
+bool InputMethodManagerImpl::IsEHVInputOnImeMenuEnabled() {
+ return base::FeatureList::IsEnabled(features::kEHVInputOnImeMenu);
James Cook 2016/09/12 17:05:56 FYI, I think the comment on kENVInputOnImeMenu in
Azure Wei 2016/09/14 06:53:28 Updated.
+}
+
} // namespace input_method
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698