OLD | NEW |
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 "chrome/browser/chromeos/input_method/component_extension_ime_manager_i
mpl.h" | 5 #include "chrome/browser/chromeos/input_method/component_extension_ime_manager_i
mpl.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "chrome/browser/extensions/component_loader.h" | 9 #include "chrome/browser/extensions/component_loader.h" |
10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 callback)); | 133 callback)); |
134 } | 134 } |
135 | 135 |
136 bool ComponentExtensionIMEManagerImpl::IsInitialized() { | 136 bool ComponentExtensionIMEManagerImpl::IsInitialized() { |
137 return is_initialized_; | 137 return is_initialized_; |
138 } | 138 } |
139 | 139 |
140 // static | 140 // static |
141 bool ComponentExtensionIMEManagerImpl::ReadEngineComponent( | 141 bool ComponentExtensionIMEManagerImpl::ReadEngineComponent( |
142 const DictionaryValue& dict, | 142 const DictionaryValue& dict, |
143 IBusComponent::EngineDescription* out) { | 143 ComponentExtensionEngine* out) { |
144 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); | 144 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); |
145 DCHECK(out); | 145 DCHECK(out); |
146 std::string type; | 146 std::string type; |
147 if (!dict.GetString(extension_manifest_keys::kType, &type)) | 147 if (!dict.GetString(extension_manifest_keys::kType, &type)) |
148 return false; | 148 return false; |
149 if (type != "ime") | 149 if (type != "ime") |
150 return false; | 150 return false; |
151 if (!dict.GetString(extension_manifest_keys::kId, &out->engine_id)) | 151 if (!dict.GetString(extension_manifest_keys::kId, &out->engine_id)) |
152 return false; | 152 return false; |
153 if (!dict.GetString(extension_manifest_keys::kName, &out->display_name)) | 153 if (!dict.GetString(extension_manifest_keys::kName, &out->display_name)) |
154 return false; | 154 return false; |
155 if (!dict.GetString(extension_manifest_keys::kLanguage, &out->language_code)) | 155 if (!dict.GetString(extension_manifest_keys::kLanguage, &out->language_code)) |
156 return false; | 156 return false; |
157 | 157 |
158 const ListValue* layouts = NULL; | 158 const ListValue* layouts = NULL; |
159 if (!dict.GetList(extension_manifest_keys::kLayouts, &layouts)) | 159 if (!dict.GetList(extension_manifest_keys::kLayouts, &layouts)) |
160 return false; | 160 return false; |
161 | 161 |
162 if (layouts->GetSize() > 0) { | 162 for (size_t i = 0; i < layouts->GetSize(); ++i) { |
163 if (!layouts->GetString(0, &out->layout)) | 163 std::string buffer; |
164 return false; | 164 if (layouts->GetString(i, &buffer)) |
| 165 out->layouts.push_back(buffer); |
165 } | 166 } |
166 return true; | 167 return true; |
167 } | 168 } |
168 | 169 |
169 // static | 170 // static |
170 bool ComponentExtensionIMEManagerImpl::ReadExtensionInfo( | 171 bool ComponentExtensionIMEManagerImpl::ReadExtensionInfo( |
171 const DictionaryValue& manifest, | 172 const DictionaryValue& manifest, |
172 const std::string& extension_id, | 173 const std::string& extension_id, |
173 ComponentExtensionIME* out) { | 174 ComponentExtensionIME* out) { |
174 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); | 175 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 const ListValue* component_list; | 222 const ListValue* component_list; |
222 if (!manifest->GetList(extension_manifest_keys::kInputComponents, | 223 if (!manifest->GetList(extension_manifest_keys::kInputComponents, |
223 &component_list)) | 224 &component_list)) |
224 continue; | 225 continue; |
225 | 226 |
226 for (size_t i = 0; i < component_list->GetSize(); ++i) { | 227 for (size_t i = 0; i < component_list->GetSize(); ++i) { |
227 const DictionaryValue* dictionary; | 228 const DictionaryValue* dictionary; |
228 if (!component_list->GetDictionary(i, &dictionary)) | 229 if (!component_list->GetDictionary(i, &dictionary)) |
229 continue; | 230 continue; |
230 | 231 |
231 IBusComponent::EngineDescription engine; | 232 ComponentExtensionEngine engine; |
232 ReadEngineComponent(*dictionary, &engine); | 233 ReadEngineComponent(*dictionary, &engine); |
233 component_ime.engines.push_back(engine); | 234 component_ime.engines.push_back(engine); |
234 } | 235 } |
235 out_imes->push_back(component_ime); | 236 out_imes->push_back(component_ime); |
236 } | 237 } |
237 } | 238 } |
238 | 239 |
239 void ComponentExtensionIMEManagerImpl::OnReadComponentExtensionsInfo( | 240 void ComponentExtensionIMEManagerImpl::OnReadComponentExtensionsInfo( |
240 std::vector<ComponentExtensionIME>* result, | 241 std::vector<ComponentExtensionIME>* result, |
241 const base::Closure& callback) { | 242 const base::Closure& callback) { |
242 DCHECK(thread_checker_.CalledOnValidThread()); | 243 DCHECK(thread_checker_.CalledOnValidThread()); |
243 DCHECK(result); | 244 DCHECK(result); |
244 component_extension_list_ = *result; | 245 component_extension_list_ = *result; |
245 is_initialized_ = true; | 246 is_initialized_ = true; |
246 callback.Run(); | 247 callback.Run(); |
247 } | 248 } |
248 | 249 |
249 } // namespace chromeos | 250 } // namespace chromeos |
OLD | NEW |