OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 5 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 #include "extensions/browser/extension_registry.h" | 77 #include "extensions/browser/extension_registry.h" |
78 #include "extensions/browser/extension_system.h" | 78 #include "extensions/browser/extension_system.h" |
79 #include "extensions/common/extension.h" | 79 #include "extensions/common/extension.h" |
80 #include "extensions/common/extension_messages.h" | 80 #include "extensions/common/extension_messages.h" |
81 #include "extensions/common/extension_resource.h" | 81 #include "extensions/common/extension_resource.h" |
82 #include "extensions/common/host_id.h" | 82 #include "extensions/common/host_id.h" |
83 #include "mash/public/interfaces/launchable.mojom.h" | 83 #include "mash/public/interfaces/launchable.mojom.h" |
84 #include "media/audio/sounds/sounds_manager.h" | 84 #include "media/audio/sounds/sounds_manager.h" |
85 #include "media/base/media_switches.h" | 85 #include "media/base/media_switches.h" |
86 #include "services/service_manager/public/cpp/connector.h" | 86 #include "services/service_manager/public/cpp/connector.h" |
| 87 #include "ui/base/ime/chromeos/extension_ime_util.h" |
87 #include "ui/base/ime/chromeos/input_method_manager.h" | 88 #include "ui/base/ime/chromeos/input_method_manager.h" |
88 #include "ui/base/resource/resource_bundle.h" | 89 #include "ui/base/resource/resource_bundle.h" |
89 #include "ui/keyboard/keyboard_controller.h" | 90 #include "ui/keyboard/keyboard_controller.h" |
90 #include "ui/keyboard/keyboard_util.h" | 91 #include "ui/keyboard/keyboard_util.h" |
91 #include "ui/views/widget/widget_observer.h" | 92 #include "ui/views/widget/widget_observer.h" |
92 | 93 |
93 using content::BrowserThread; | 94 using content::BrowserThread; |
94 using extensions::api::braille_display_private::BrailleController; | 95 using extensions::api::braille_display_private::BrailleController; |
95 using extensions::api::braille_display_private::DisplayState; | 96 using extensions::api::braille_display_private::DisplayState; |
96 using extensions::api::braille_display_private::KeyEvent; | 97 using extensions::api::braille_display_private::KeyEvent; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 AccessibilityNotificationType notification_type, | 168 AccessibilityNotificationType notification_type, |
168 bool enabled, | 169 bool enabled, |
169 ash::MagnifierType magnifier_type, | 170 ash::MagnifierType magnifier_type, |
170 ash::AccessibilityNotificationVisibility notify) | 171 ash::AccessibilityNotificationVisibility notify) |
171 : notification_type(notification_type), | 172 : notification_type(notification_type), |
172 enabled(enabled), | 173 enabled(enabled), |
173 magnifier_type(magnifier_type), | 174 magnifier_type(magnifier_type), |
174 notify(notify) {} | 175 notify(notify) {} |
175 | 176 |
176 /////////////////////////////////////////////////////////////////////////////// | 177 /////////////////////////////////////////////////////////////////////////////// |
177 // | |
178 // AccessibilityManager::PrefHandler | 178 // AccessibilityManager::PrefHandler |
179 | 179 |
180 AccessibilityManager::PrefHandler::PrefHandler(const char* pref_path) | 180 AccessibilityManager::PrefHandler::PrefHandler(const char* pref_path) |
181 : pref_path_(pref_path) {} | 181 : pref_path_(pref_path) {} |
182 | 182 |
183 AccessibilityManager::PrefHandler::~PrefHandler() {} | 183 AccessibilityManager::PrefHandler::~PrefHandler() {} |
184 | 184 |
185 void AccessibilityManager::PrefHandler::HandleProfileChanged( | 185 void AccessibilityManager::PrefHandler::HandleProfileChanged( |
186 Profile* previous_profile, Profile* current_profile) { | 186 Profile* previous_profile, Profile* current_profile) { |
187 // Returns if the current profile is null. | 187 // Returns if the current profile is null. |
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1087 void AccessibilityManager::UpdateBrailleImeState() { | 1087 void AccessibilityManager::UpdateBrailleImeState() { |
1088 if (!profile_) | 1088 if (!profile_) |
1089 return; | 1089 return; |
1090 PrefService* pref_service = profile_->GetPrefs(); | 1090 PrefService* pref_service = profile_->GetPrefs(); |
1091 std::string preload_engines_str = | 1091 std::string preload_engines_str = |
1092 pref_service->GetString(prefs::kLanguagePreloadEngines); | 1092 pref_service->GetString(prefs::kLanguagePreloadEngines); |
1093 std::vector<base::StringPiece> preload_engines = base::SplitStringPiece( | 1093 std::vector<base::StringPiece> preload_engines = base::SplitStringPiece( |
1094 preload_engines_str, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 1094 preload_engines_str, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
1095 std::vector<base::StringPiece>::iterator it = | 1095 std::vector<base::StringPiece>::iterator it = |
1096 std::find(preload_engines.begin(), preload_engines.end(), | 1096 std::find(preload_engines.begin(), preload_engines.end(), |
1097 extension_misc::kBrailleImeEngineId); | 1097 extension_ime_util::kBrailleImeEngineId); |
1098 bool is_enabled = (it != preload_engines.end()); | 1098 bool is_enabled = (it != preload_engines.end()); |
1099 bool should_be_enabled = | 1099 bool should_be_enabled = |
1100 (spoken_feedback_enabled_ && braille_display_connected_); | 1100 (spoken_feedback_enabled_ && braille_display_connected_); |
1101 if (is_enabled == should_be_enabled) | 1101 if (is_enabled == should_be_enabled) |
1102 return; | 1102 return; |
1103 if (should_be_enabled) | 1103 if (should_be_enabled) |
1104 preload_engines.push_back(extension_misc::kBrailleImeEngineId); | 1104 preload_engines.push_back(extension_ime_util::kBrailleImeEngineId); |
1105 else | 1105 else |
1106 preload_engines.erase(it); | 1106 preload_engines.erase(it); |
1107 pref_service->SetString(prefs::kLanguagePreloadEngines, | 1107 pref_service->SetString(prefs::kLanguagePreloadEngines, |
1108 base::JoinString(preload_engines, ",")); | 1108 base::JoinString(preload_engines, ",")); |
1109 braille_ime_current_ = false; | 1109 braille_ime_current_ = false; |
1110 } | 1110 } |
1111 | 1111 |
1112 // Overridden from InputMethodManager::Observer. | 1112 // Overridden from InputMethodManager::Observer. |
1113 void AccessibilityManager::InputMethodChanged( | 1113 void AccessibilityManager::InputMethodChanged( |
1114 input_method::InputMethodManager* manager, | 1114 input_method::InputMethodManager* manager, |
1115 Profile* /* profile */, | 1115 Profile* /* profile */, |
1116 bool show_message) { | 1116 bool show_message) { |
1117 // Sticky keys is implemented only in ash. | 1117 // Sticky keys is implemented only in ash. |
1118 // TODO(dpolukhin): support Athena, crbug.com/408733. | 1118 // TODO(dpolukhin): support Athena, crbug.com/408733. |
1119 if (!ash_util::IsRunningInMash()) { | 1119 if (!ash_util::IsRunningInMash()) { |
1120 ash::Shell::Get()->sticky_keys_controller()->SetModifiersEnabled( | 1120 ash::Shell::Get()->sticky_keys_controller()->SetModifiersEnabled( |
1121 manager->IsISOLevel5ShiftUsedByCurrentInputMethod(), | 1121 manager->IsISOLevel5ShiftUsedByCurrentInputMethod(), |
1122 manager->IsAltGrUsedByCurrentInputMethod()); | 1122 manager->IsAltGrUsedByCurrentInputMethod()); |
1123 } | 1123 } |
1124 const chromeos::input_method::InputMethodDescriptor descriptor = | 1124 const chromeos::input_method::InputMethodDescriptor descriptor = |
1125 manager->GetActiveIMEState()->GetCurrentInputMethod(); | 1125 manager->GetActiveIMEState()->GetCurrentInputMethod(); |
1126 braille_ime_current_ = | 1126 braille_ime_current_ = |
1127 (descriptor.id() == extension_misc::kBrailleImeEngineId); | 1127 (descriptor.id() == extension_ime_util::kBrailleImeEngineId); |
1128 } | 1128 } |
1129 | 1129 |
1130 void AccessibilityManager::OnSessionStateChanged() { | 1130 void AccessibilityManager::OnSessionStateChanged() { |
1131 if (!chromevox_panel_) | 1131 if (!chromevox_panel_) |
1132 return; | 1132 return; |
1133 if (chromevox_panel_->for_blocked_user_session() == | 1133 if (chromevox_panel_->for_blocked_user_session() == |
1134 session_manager::SessionManager::Get()->IsUserSessionBlocked()) { | 1134 session_manager::SessionManager::Get()->IsUserSessionBlocked()) { |
1135 return; | 1135 return; |
1136 } | 1136 } |
1137 | 1137 |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 NotifyAccessibilityStatusChanged(details); | 1419 NotifyAccessibilityStatusChanged(details); |
1420 } | 1420 } |
1421 | 1421 |
1422 void AccessibilityManager::OnBrailleKeyEvent(const KeyEvent& event) { | 1422 void AccessibilityManager::OnBrailleKeyEvent(const KeyEvent& event) { |
1423 // Ensure the braille IME is active on braille keyboard (dots) input. | 1423 // Ensure the braille IME is active on braille keyboard (dots) input. |
1424 if ((event.command == | 1424 if ((event.command == |
1425 extensions::api::braille_display_private::KEY_COMMAND_DOTS) && | 1425 extensions::api::braille_display_private::KEY_COMMAND_DOTS) && |
1426 !braille_ime_current_) { | 1426 !braille_ime_current_) { |
1427 input_method::InputMethodManager::Get() | 1427 input_method::InputMethodManager::Get() |
1428 ->GetActiveIMEState() | 1428 ->GetActiveIMEState() |
1429 ->ChangeInputMethod(extension_misc::kBrailleImeEngineId, | 1429 ->ChangeInputMethod(extension_ime_util::kBrailleImeEngineId, |
1430 false /* show_message */); | 1430 false /* show_message */); |
1431 } | 1431 } |
1432 } | 1432 } |
1433 | 1433 |
1434 void AccessibilityManager::OnExtensionUnloaded( | 1434 void AccessibilityManager::OnExtensionUnloaded( |
1435 content::BrowserContext* browser_context, | 1435 content::BrowserContext* browser_context, |
1436 const extensions::Extension* extension, | 1436 const extensions::Extension* extension, |
1437 extensions::UnloadedExtensionReason reason) { | 1437 extensions::UnloadedExtensionReason reason) { |
1438 if (extension->id() == keyboard_listener_extension_id_) { | 1438 if (extension->id() == keyboard_listener_extension_id_) { |
1439 keyboard_listener_extension_id_ = std::string(); | 1439 keyboard_listener_extension_id_ = std::string(); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1526 content::BrowserContext* context) { | 1526 content::BrowserContext* context) { |
1527 keyboard_listener_extension_id_ = id; | 1527 keyboard_listener_extension_id_ = id; |
1528 | 1528 |
1529 extensions::ExtensionRegistry* registry = | 1529 extensions::ExtensionRegistry* registry = |
1530 extensions::ExtensionRegistry::Get(context); | 1530 extensions::ExtensionRegistry::Get(context); |
1531 if (!extension_registry_observer_.IsObserving(registry) && !id.empty()) | 1531 if (!extension_registry_observer_.IsObserving(registry) && !id.empty()) |
1532 extension_registry_observer_.Add(registry); | 1532 extension_registry_observer_.Add(registry); |
1533 } | 1533 } |
1534 | 1534 |
1535 } // namespace chromeos | 1535 } // namespace chromeos |
OLD | NEW |