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

Side by Side Diff: chromeos/ime/component_extension_ime_manager.cc

Issue 190033005: [IME] Removes the duplicated IMEs in chrome://settings/languages, and support async component IMEs … (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: try to make test green. Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chromeos/ime/component_extension_ime_manager.h" 5 #include "chromeos/ime/component_extension_ime_manager.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "chromeos/ime/extension_ime_util.h" 9 #include "chromeos/ime/extension_ime_util.h"
10 10
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 ComponentExtensionIME::~ComponentExtensionIME() { 69 ComponentExtensionIME::~ComponentExtensionIME() {
70 } 70 }
71 71
72 ComponentExtensionIMEManagerDelegate::ComponentExtensionIMEManagerDelegate() { 72 ComponentExtensionIMEManagerDelegate::ComponentExtensionIMEManagerDelegate() {
73 } 73 }
74 74
75 ComponentExtensionIMEManagerDelegate::~ComponentExtensionIMEManagerDelegate() { 75 ComponentExtensionIMEManagerDelegate::~ComponentExtensionIMEManagerDelegate() {
76 } 76 }
77 77
78 ComponentExtensionIMEManager::ComponentExtensionIMEManager() 78 ComponentExtensionIMEManager::ComponentExtensionIMEManager()
79 : is_initialized_(false) { 79 : is_initialized_(false), was_initialization_notified_(false) {
80 for (size_t i = 0; i < arraysize(kLoginLayoutWhitelist); ++i) { 80 for (size_t i = 0; i < arraysize(kLoginLayoutWhitelist); ++i) {
81 login_layout_set_.insert(kLoginLayoutWhitelist[i]); 81 login_layout_set_.insert(kLoginLayoutWhitelist[i]);
82 } 82 }
83 } 83 }
84 84
85 ComponentExtensionIMEManager::~ComponentExtensionIMEManager() { 85 ComponentExtensionIMEManager::~ComponentExtensionIMEManager() {
86 } 86 }
87 87
88 void ComponentExtensionIMEManager::Initialize( 88 void ComponentExtensionIMEManager::Initialize(
89 scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate) { 89 scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate) {
90 delegate_ = delegate.Pass(); 90 delegate_ = delegate.Pass();
91 component_extension_imes_ = delegate_->ListIME(); 91 component_extension_imes_ = delegate_->ListIME();
92 is_initialized_ = true; 92 is_initialized_ = true;
93 FOR_EACH_OBSERVER(Observer, observers_, OnInitialized()); 93 }
94
95 void ComponentExtensionIMEManager::NotifyInitialized() {
96 if (is_initialized_ && !was_initialization_notified_) {
97 FOR_EACH_OBSERVER(
98 Observer, observers_, OnImeComponentExtensionInitialized());
99 was_initialization_notified_ = true;
100 }
94 } 101 }
95 102
96 bool ComponentExtensionIMEManager::IsInitialized() { 103 bool ComponentExtensionIMEManager::IsInitialized() {
97 return is_initialized_; 104 return is_initialized_;
98 } 105 }
99 106
100 bool ComponentExtensionIMEManager::LoadComponentExtensionIME( 107 bool ComponentExtensionIMEManager::LoadComponentExtensionIME(
101 const std::string& input_method_id) { 108 const std::string& input_method_id) {
102 ComponentExtensionIME ime; 109 ComponentExtensionIME ime;
103 if (FindEngineEntry(input_method_id, &ime, NULL)) 110 if (FindEngineEntry(input_method_id, &ime, NULL))
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 // Enables extension based xkb keyboards on login screen. 203 // Enables extension based xkb keyboards on login screen.
197 extension_ime_util::IsKeyboardLayoutExtension( 204 extension_ime_util::IsKeyboardLayoutExtension(
198 input_method_id) && IsInLoginLayoutWhitelist(layouts), 205 input_method_id) && IsInLoginLayoutWhitelist(layouts),
199 component_extension_imes_[i].options_page_url, 206 component_extension_imes_[i].options_page_url,
200 component_extension_imes_[i].input_view_url)); 207 component_extension_imes_[i].input_view_url));
201 } 208 }
202 } 209 }
203 return result; 210 return result;
204 } 211 }
205 212
213 input_method::InputMethodDescriptors
214 ComponentExtensionIMEManager::GetXkbIMEAsInputMethodDescriptor() {
215 input_method::InputMethodDescriptors result;
216 const input_method::InputMethodDescriptors& descriptors =
217 GetAllIMEAsInputMethodDescriptor();
218 for (size_t i = 0; i < descriptors.size(); ++i) {
219 if (extension_ime_util::IsKeyboardLayoutExtension(descriptors[i].id()))
220 result.push_back(descriptors[i]);
221 }
222 return result;
223 }
224
206 void ComponentExtensionIMEManager::AddObserver(Observer* observer) { 225 void ComponentExtensionIMEManager::AddObserver(Observer* observer) {
207 observers_.AddObserver(observer); 226 observers_.AddObserver(observer);
208 } 227 }
209 228
210 void ComponentExtensionIMEManager::RemoveObserver(Observer* observer) { 229 void ComponentExtensionIMEManager::RemoveObserver(Observer* observer) {
211 observers_.RemoveObserver(observer); 230 observers_.RemoveObserver(observer);
212 } 231 }
213 232
214 bool ComponentExtensionIMEManager::FindEngineEntry( 233 bool ComponentExtensionIMEManager::FindEngineEntry(
215 const std::string& input_method_id, 234 const std::string& input_method_id,
(...skipping 26 matching lines...) Expand all
242 bool ComponentExtensionIMEManager::IsInLoginLayoutWhitelist( 261 bool ComponentExtensionIMEManager::IsInLoginLayoutWhitelist(
243 const std::vector<std::string>& layouts) { 262 const std::vector<std::string>& layouts) {
244 for (size_t i = 0; i < layouts.size(); ++i) { 263 for (size_t i = 0; i < layouts.size(); ++i) {
245 if (login_layout_set_.find(layouts[i]) != login_layout_set_.end()) 264 if (login_layout_set_.find(layouts[i]) != login_layout_set_.end())
246 return true; 265 return true;
247 } 266 }
248 return false; 267 return false;
249 } 268 }
250 269
251 } // namespace chromeos 270 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/ime/component_extension_ime_manager.h ('k') | chromeos/ime/component_extension_ime_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698