summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/input_method/input_method_manager_impl.h
diff options
context:
space:
mode:
authorshuchen@chromium.org <shuchen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-15 16:37:06 +0000
committershuchen@chromium.org <shuchen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-15 16:37:06 +0000
commitad34dafd3dcc7f81b84fca53a1df9ce5c75b9b1e (patch)
tree700907b406fe4200ad3c8fd0a211c284718d825a /chrome/browser/chromeos/input_method/input_method_manager_impl.h
parente0f767ce708f77f2bf3156856228576cdcbd5976 (diff)
downloadchromium_src-ad34dafd3dcc7f81b84fca53a1df9ce5c75b9b1e.zip
chromium_src-ad34dafd3dcc7f81b84fca53a1df9ce5c75b9b1e.tar.gz
chromium_src-ad34dafd3dcc7f81b84fca53a1df9ce5c75b9b1e.tar.bz2
[IME] Support multi profiles in IMF.
1) make the engine map in input ime api as an Profile-key'ed map. 2) move the engine map from IMEBridge to InputMethodManagerImpl, and let IMEBridge only keeps the current engine. 3) make the engine map in InputMethodManagerImpl as an Profile-key'ed map. BUG=359066 TEST=Verified on pixel. Review URL: https://codereview.chromium.org/229633003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263871 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/input_method/input_method_manager_impl.h')
-rw-r--r--chrome/browser/chromeos/input_method/input_method_manager_impl.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.h b/chrome/browser/chromeos/input_method/input_method_manager_impl.h
index 5064bef..d357c29 100644
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.h
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.h
@@ -14,6 +14,7 @@
#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/input_method/candidate_window_controller.h"
#include "chrome/browser/chromeos/input_method/input_method_util.h"
+#include "chrome/browser/profiles/profile.h"
#include "chromeos/ime/input_method_manager.h"
#include "chromeos/ime/input_method_whitelist.h"
@@ -159,6 +160,9 @@ class InputMethodManagerImpl : public InputMethodManager,
// (after list of enabled input methods has been updated)
void ReconfigureIMFramework();
+ // Gets the current active user profile.
+ Profile* GetProfile() const;
+
scoped_ptr<InputMethodDelegate> delegate_;
// The current browser status.
@@ -212,6 +216,13 @@ class InputMethodManagerImpl : public InputMethodManager,
base::WeakPtrFactory<InputMethodManagerImpl> weak_ptr_factory_;
+ // The engine map:
+ // { Profile : { input_method_id : Engine } }.
+ typedef std::map<std::string, InputMethodEngineInterface*>
+ EngineMap;
+ typedef std::map<Profile*, EngineMap, ProfileCompare> ProfileEngineMap;
+ ProfileEngineMap profile_engine_map_;
+
DISALLOW_COPY_AND_ASSIGN(InputMethodManagerImpl);
};