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

Side by Side Diff: chrome/browser/extensions/api/input_ime/input_ime_api.cc

Issue 444523003: Support IME extensions for Ozone. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed compiling failures. Created 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/chrome_browser_chromeos.gypi » ('j') | ui/base/ime/input_method_factory.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/extensions/api/input_ime/input_ime_api.h" 5 #include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/chromeos/input_method/input_method_engine.h"
9 #include "chrome/browser/chromeos/login/lock/screen_locker.h" 10 #include "chrome/browser/chromeos/login/lock/screen_locker.h"
10 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" 11 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h"
11 #include "chrome/browser/chromeos/login/users/user_manager.h" 12 #include "chrome/browser/chromeos/login/users/user_manager.h"
12 #include "chrome/browser/chromeos/profiles/profile_helper.h" 13 #include "chrome/browser/chromeos/profiles/profile_helper.h"
13 #include "chrome/browser/extensions/extension_service.h" 14 #include "chrome/browser/extensions/extension_service.h"
14 #include "chrome/browser/profiles/profile_manager.h" 15 #include "chrome/browser/profiles/profile_manager.h"
15 #include "chrome/common/extensions/api/input_ime.h" 16 #include "chrome/common/extensions/api/input_ime.h"
16 #include "chrome/common/extensions/api/input_ime/input_components_handler.h" 17 #include "chrome/common/extensions/api/input_ime/input_components_handler.h"
17 #include "chromeos/ime/component_extension_ime_manager.h" 18 #include "chromeos/ime/component_extension_ime_manager.h"
18 #include "chromeos/ime/extension_ime_util.h" 19 #include "chromeos/ime/extension_ime_util.h"
19 #include "chromeos/ime/input_method_manager.h" 20 #include "chromeos/ime/input_method_manager.h"
20 #include "extensions/browser/event_router.h" 21 #include "extensions/browser/event_router.h"
21 #include "extensions/browser/extension_function_registry.h" 22 #include "extensions/browser/extension_function_registry.h"
22 #include "extensions/browser/extension_registry.h" 23 #include "extensions/browser/extension_registry.h"
23 #include "extensions/browser/extension_system.h" 24 #include "extensions/browser/extension_system.h"
24 #include "extensions/common/manifest_handlers/background_info.h" 25 #include "extensions/common/manifest_handlers/background_info.h"
25 26
26 #if defined(USE_X11)
27 #include "chrome/browser/chromeos/input_method/input_method_engine.h"
28 #endif
29
30 namespace input_ime = extensions::api::input_ime; 27 namespace input_ime = extensions::api::input_ime;
31 namespace KeyEventHandled = extensions::api::input_ime::KeyEventHandled; 28 namespace KeyEventHandled = extensions::api::input_ime::KeyEventHandled;
32 namespace DeleteSurroundingText = 29 namespace DeleteSurroundingText =
33 extensions::api::input_ime::DeleteSurroundingText; 30 extensions::api::input_ime::DeleteSurroundingText;
34 namespace UpdateMenuItems = extensions::api::input_ime::UpdateMenuItems; 31 namespace UpdateMenuItems = extensions::api::input_ime::UpdateMenuItems;
35 namespace SendKeyEvents = extensions::api::input_ime::SendKeyEvents; 32 namespace SendKeyEvents = extensions::api::input_ime::SendKeyEvents;
36 namespace HideInputView = extensions::api::input_ime::HideInputView; 33 namespace HideInputView = extensions::api::input_ime::HideInputView;
37 namespace SetMenuItems = extensions::api::input_ime::SetMenuItems; 34 namespace SetMenuItems = extensions::api::input_ime::SetMenuItems;
38 namespace SetCursorPosition = extensions::api::input_ime::SetCursorPosition; 35 namespace SetCursorPosition = extensions::api::input_ime::SetCursorPosition;
39 namespace SetCandidates = extensions::api::input_ime::SetCandidates; 36 namespace SetCandidates = extensions::api::input_ime::SetCandidates;
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 namespace extensions { 335 namespace extensions {
339 336
340 InputImeEventRouter* 337 InputImeEventRouter*
341 InputImeEventRouter::GetInstance() { 338 InputImeEventRouter::GetInstance() {
342 return Singleton<InputImeEventRouter>::get(); 339 return Singleton<InputImeEventRouter>::get();
343 } 340 }
344 341
345 bool InputImeEventRouter::RegisterImeExtension( 342 bool InputImeEventRouter::RegisterImeExtension(
346 const std::string& extension_id, 343 const std::string& extension_id,
347 const std::vector<extensions::InputComponentInfo>& input_components) { 344 const std::vector<extensions::InputComponentInfo>& input_components) {
348 #if defined(USE_X11)
349 VLOG(1) << "RegisterImeExtension: " << extension_id; 345 VLOG(1) << "RegisterImeExtension: " << extension_id;
350 346
351 if (engine_map_[extension_id]) 347 if (engine_map_[extension_id])
352 return false; 348 return false;
353 349
354 chromeos::input_method::InputMethodManager* manager = 350 chromeos::input_method::InputMethodManager* manager =
355 chromeos::input_method::InputMethodManager::Get(); 351 chromeos::input_method::InputMethodManager::Get();
356 chromeos::ComponentExtensionIMEManager* comp_ext_ime_manager = 352 chromeos::ComponentExtensionIMEManager* comp_ext_ime_manager =
357 manager->GetComponentExtensionIMEManager(); 353 manager->GetComponentExtensionIMEManager();
358 354
(...skipping 29 matching lines...) Expand all
388 } 384 }
389 385
390 scoped_ptr<chromeos::InputMethodEngineInterface::Observer> observer( 386 scoped_ptr<chromeos::InputMethodEngineInterface::Observer> observer(
391 new chromeos::ImeObserver(extension_id)); 387 new chromeos::ImeObserver(extension_id));
392 chromeos::InputMethodEngine* engine = new chromeos::InputMethodEngine(); 388 chromeos::InputMethodEngine* engine = new chromeos::InputMethodEngine();
393 engine->Initialize(observer.Pass(), extension_id.c_str()); 389 engine->Initialize(observer.Pass(), extension_id.c_str());
394 engine_map_[extension_id] = engine; 390 engine_map_[extension_id] = engine;
395 manager->AddInputMethodExtension(extension_id, descriptors, engine); 391 manager->AddInputMethodExtension(extension_id, descriptors, engine);
396 392
397 return true; 393 return true;
398 #else
399 // TODO(spang): IME support under ozone.
400 NOTIMPLEMENTED();
401 return false;
402 #endif
403 } 394 }
404 395
405 void InputImeEventRouter::UnregisterAllImes(const std::string& extension_id) { 396 void InputImeEventRouter::UnregisterAllImes(const std::string& extension_id) {
406 std::map<std::string, InputMethodEngineInterface*>::iterator it = 397 std::map<std::string, InputMethodEngineInterface*>::iterator it =
407 engine_map_.find(extension_id); 398 engine_map_.find(extension_id);
408 if (it != engine_map_.end()) { 399 if (it != engine_map_.end()) {
409 chromeos::input_method::InputMethodManager::Get() 400 chromeos::input_method::InputMethodManager::Get()
410 ->RemoveInputMethodExtension(extension_id); 401 ->RemoveInputMethodExtension(extension_id);
411 delete it->second; 402 delete it->second;
412 engine_map_.erase(it); 403 engine_map_.erase(it);
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 // Notifies the IME extension for IME ready with onActivate/onFocus events. 844 // Notifies the IME extension for IME ready with onActivate/onFocus events.
854 if (engine) 845 if (engine)
855 engine->Enable(engine->GetActiveComponentId()); 846 engine->Enable(engine->GetActiveComponentId());
856 } 847 }
857 848
858 InputImeEventRouter* InputImeAPI::input_ime_event_router() { 849 InputImeEventRouter* InputImeAPI::input_ime_event_router() {
859 return InputImeEventRouter::GetInstance(); 850 return InputImeEventRouter::GetInstance();
860 } 851 }
861 852
862 } // namespace extensions 853 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | chrome/chrome_browser_chromeos.gypi » ('j') | ui/base/ime/input_method_factory.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698