OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/extensions/input_method_api.h" | 5 #include "chrome/browser/chromeos/extensions/input_method_api.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
11 #include "base/lazy_instance.h" | 11 #include "base/lazy_instance.h" |
12 #include "base/values.h" | 12 #include "base/values.h" |
13 #include "chrome/browser/chromeos/extensions/dictionary_event_router.h" | 13 #include "chrome/browser/chromeos/extensions/dictionary_event_router.h" |
| 14 #include "chrome/browser/chromeos/extensions/ime_menu_event_router.h" |
14 #include "chrome/browser/chromeos/extensions/input_method_event_router.h" | 15 #include "chrome/browser/chromeos/extensions/input_method_event_router.h" |
15 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 16 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
16 #include "chrome/browser/extensions/api/input_ime/input_ime_api.h" | 17 #include "chrome/browser/extensions/api/input_ime/input_ime_api.h" |
17 #include "chrome/browser/spellchecker/spellcheck_factory.h" | 18 #include "chrome/browser/spellchecker/spellcheck_factory.h" |
18 #include "chrome/browser/spellchecker/spellcheck_service.h" | 19 #include "chrome/browser/spellchecker/spellcheck_service.h" |
19 #include "chrome/browser/sync/profile_sync_service_factory.h" | 20 #include "chrome/browser/sync/profile_sync_service_factory.h" |
20 #include "chromeos/chromeos_switches.h" | 21 #include "chromeos/chromeos_switches.h" |
21 #include "components/browser_sync/browser/profile_sync_service.h" | 22 #include "components/browser_sync/browser/profile_sync_service.h" |
22 #include "extensions/browser/extension_function_registry.h" | 23 #include "extensions/browser/extension_function_registry.h" |
23 #include "extensions/browser/extension_system.h" | 24 #include "extensions/browser/extension_system.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 "inputMethodPrivate.onDictionaryChanged"; | 177 "inputMethodPrivate.onDictionaryChanged"; |
177 | 178 |
178 // static | 179 // static |
179 const char InputMethodAPI::kOnDictionaryLoaded[] = | 180 const char InputMethodAPI::kOnDictionaryLoaded[] = |
180 "inputMethodPrivate.onDictionaryLoaded"; | 181 "inputMethodPrivate.onDictionaryLoaded"; |
181 | 182 |
182 // static | 183 // static |
183 const char InputMethodAPI::kOnInputMethodChanged[] = | 184 const char InputMethodAPI::kOnInputMethodChanged[] = |
184 "inputMethodPrivate.onChanged"; | 185 "inputMethodPrivate.onChanged"; |
185 | 186 |
| 187 // static |
| 188 const char InputMethodAPI::kOnImeMenuActivated[] = |
| 189 "inputMethodPrivate.onImeMenuActivated"; |
| 190 |
| 191 // static |
| 192 const char InputMethodAPI::kOnImeMenuDeactivated[] = |
| 193 "inputMethodPrivate.onImeMenuDeactivated"; |
| 194 |
186 InputMethodAPI::InputMethodAPI(content::BrowserContext* context) | 195 InputMethodAPI::InputMethodAPI(content::BrowserContext* context) |
187 : context_(context) { | 196 : context_(context) { |
188 EventRouter::Get(context_)->RegisterObserver(this, kOnInputMethodChanged); | 197 EventRouter::Get(context_)->RegisterObserver(this, kOnInputMethodChanged); |
189 EventRouter::Get(context_)->RegisterObserver(this, kOnDictionaryChanged); | 198 EventRouter::Get(context_)->RegisterObserver(this, kOnDictionaryChanged); |
190 EventRouter::Get(context_)->RegisterObserver(this, kOnDictionaryLoaded); | 199 EventRouter::Get(context_)->RegisterObserver(this, kOnDictionaryLoaded); |
| 200 EventRouter::Get(context_)->RegisterObserver(this, kOnImeMenuActivated); |
| 201 EventRouter::Get(context_)->RegisterObserver(this, kOnImeMenuDeactivated); |
191 ExtensionFunctionRegistry* registry = | 202 ExtensionFunctionRegistry* registry = |
192 ExtensionFunctionRegistry::GetInstance(); | 203 ExtensionFunctionRegistry::GetInstance(); |
193 registry->RegisterFunction<GetInputMethodConfigFunction>(); | 204 registry->RegisterFunction<GetInputMethodConfigFunction>(); |
194 registry->RegisterFunction<GetCurrentInputMethodFunction>(); | 205 registry->RegisterFunction<GetCurrentInputMethodFunction>(); |
195 registry->RegisterFunction<SetCurrentInputMethodFunction>(); | 206 registry->RegisterFunction<SetCurrentInputMethodFunction>(); |
196 registry->RegisterFunction<GetInputMethodsFunction>(); | 207 registry->RegisterFunction<GetInputMethodsFunction>(); |
197 registry->RegisterFunction<FetchAllDictionaryWordsFunction>(); | 208 registry->RegisterFunction<FetchAllDictionaryWordsFunction>(); |
198 registry->RegisterFunction<AddWordToDictionaryFunction>(); | 209 registry->RegisterFunction<AddWordToDictionaryFunction>(); |
199 registry->RegisterFunction<GetEncryptSyncEnabledFunction>(); | 210 registry->RegisterFunction<GetEncryptSyncEnabledFunction>(); |
200 } | 211 } |
(...skipping 23 matching lines...) Expand all Loading... |
224 } | 235 } |
225 } else if (details.event_name == kOnDictionaryChanged || | 236 } else if (details.event_name == kOnDictionaryChanged || |
226 details.event_name == kOnDictionaryLoaded) { | 237 details.event_name == kOnDictionaryLoaded) { |
227 if (!dictionary_event_router_.get()) { | 238 if (!dictionary_event_router_.get()) { |
228 dictionary_event_router_.reset( | 239 dictionary_event_router_.reset( |
229 new chromeos::ExtensionDictionaryEventRouter(context_)); | 240 new chromeos::ExtensionDictionaryEventRouter(context_)); |
230 } | 241 } |
231 if (details.event_name == kOnDictionaryLoaded) { | 242 if (details.event_name == kOnDictionaryLoaded) { |
232 dictionary_event_router_->DispatchLoadedEventIfLoaded(); | 243 dictionary_event_router_->DispatchLoadedEventIfLoaded(); |
233 } | 244 } |
| 245 } else if (details.event_name == kOnImeMenuActivated || |
| 246 details.event_name == kOnImeMenuDeactivated) { |
| 247 if (!ime_menu_event_router_.get()) { |
| 248 ime_menu_event_router_.reset( |
| 249 new chromeos::ExtensionImeMenuEventRouter(context_)); |
| 250 } |
234 } | 251 } |
235 } | 252 } |
236 | 253 |
237 static base::LazyInstance<BrowserContextKeyedAPIFactory<InputMethodAPI> > | 254 static base::LazyInstance<BrowserContextKeyedAPIFactory<InputMethodAPI> > |
238 g_factory = LAZY_INSTANCE_INITIALIZER; | 255 g_factory = LAZY_INSTANCE_INITIALIZER; |
239 | 256 |
240 // static | 257 // static |
241 BrowserContextKeyedAPIFactory<InputMethodAPI>* | 258 BrowserContextKeyedAPIFactory<InputMethodAPI>* |
242 InputMethodAPI::GetFactoryInstance() { | 259 InputMethodAPI::GetFactoryInstance() { |
243 return g_factory.Pointer(); | 260 return g_factory.Pointer(); |
244 } | 261 } |
245 | 262 |
246 } // namespace extensions | 263 } // namespace extensions |
OLD | NEW |