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

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

Issue 22980018: Disable non Latin keyboard layout on Lock screen and Sign-in screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test case. Created 7 years, 4 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 5a41b15ef0156f77d7599952704fe86993c176f9..ec5aefc4e9b8df29579d5f1e27b94016dfcc9a4e 100644
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
@@ -115,10 +115,11 @@ const struct MigrationHangulKeyboardToInputMethodID {
} // namespace
-bool InputMethodManagerImpl::IsFullLatinKeyboard(
+bool InputMethodManagerImpl::IsLoginKeyboard(
const std::string& layout) const {
- const std::string& lang = util_.GetLanguageCodeFromInputMethodId(layout);
- return full_latin_keyboard_checker.IsFullLatinKeyboard(layout, lang);
+ const InputMethodDescriptor* ime =
+ util_.GetInputMethodDescriptorFromId(layout);
+ return ime ? ime->is_login_keyboard() : false;
}
InputMethodManagerImpl::InputMethodManagerImpl(
@@ -246,7 +247,7 @@ void InputMethodManagerImpl::EnableLayouts(const std::string& language_code,
// layouts, so it appears first on the list of active input
// methods at the input language status menu.
if (util_.IsValidInputMethodId(initial_layout) &&
- InputMethodUtil::IsKeyboardLayout(initial_layout)) {
+ IsLoginKeyboard(initial_layout)) {
layouts.push_back(initial_layout);
} else if (!initial_layout.empty()) {
DVLOG(1) << "EnableLayouts: ignoring non-keyboard or invalid ID: "
@@ -258,7 +259,7 @@ void InputMethodManagerImpl::EnableLayouts(const std::string& language_code,
const std::string& candidate = candidates[i];
// Not efficient, but should be fine, as the two vectors are very
// short (2-5 items).
- if (!Contains(layouts, candidate))
+ if (!Contains(layouts, candidate) && IsLoginKeyboard(candidate))
layouts.push_back(candidate);
}
@@ -562,7 +563,7 @@ void InputMethodManagerImpl::AddInputMethodExtension(
}
extra_input_methods_[id] =
- InputMethodDescriptor(id, name, layouts, languages, options_url);
+ InputMethodDescriptor(id, name, layouts, languages, false, options_url);
if (Contains(enabled_extension_imes_, id) &&
!ComponentExtensionIMEManager::IsComponentExtensionIMEId(id)) {
if (!Contains(active_input_method_ids_, id)) {
@@ -925,7 +926,7 @@ void InputMethodManagerImpl::OnScreenLocked() {
const std::string& input_method_id = saved_active_input_method_ids_[i];
// Skip if it's not a keyboard layout. Drop input methods including
// extension ones.
- if (!InputMethodUtil::IsKeyboardLayout(input_method_id))
+ if (!IsLoginKeyboard(input_method_id))
continue;
active_input_method_ids_.push_back(input_method_id);
if (input_method_id == hardware_keyboard_id)

Powered by Google App Engine
This is Rietveld 408576698