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

Unified Diff: chrome/browser/chromeos/login/session/user_session_manager.h

Issue 419293002: IME refactoring: ChromeOS introduce input methods State. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unit test fixed. Re-sorted methods of StateImpl and IMM. 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/session/user_session_manager.h
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.h b/chrome/browser/chromeos/login/session/user_session_manager.h
index e32e0cd1f35f986d6b11fd4049f5a91c15a95b0d..a560184fb637ee9470f16adc22f7420f10f81743 100644
--- a/chrome/browser/chromeos/login/session/user_session_manager.h
+++ b/chrome/browser/chromeos/login/session/user_session_manager.h
@@ -14,15 +14,23 @@
#include "chrome/browser/chromeos/base/locale_util.h"
#include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h"
#include "chromeos/dbus/session_manager_client.h"
+#include "chromeos/ime/input_method_manager.h"
#include "chromeos/login/auth/authenticator.h"
#include "chromeos/login/auth/user_context.h"
#include "components/user_manager/user.h"
+#include "components/user_manager/user_manager.h"
#include "net/base/network_change_notifier.h"
class PrefRegistrySimple;
class PrefService;
class Profile;
+namespace user_manager {
+
+class User;
+
+} // namespace user_manager
+
namespace chromeos {
class UserSessionManagerDelegate {
@@ -58,7 +66,8 @@ class UserSessionManager
: public OAuth2LoginManager::Observer,
public net::NetworkChangeNotifier::ConnectionTypeObserver,
public base::SupportsWeakPtr<UserSessionManager>,
- public UserSessionManagerDelegate {
+ public UserSessionManagerDelegate,
+ public user_manager::UserManager::UserSessionStateObserver {
public:
// Returns UserSessionManager instance.
static UserSessionManager* GetInstance();
@@ -112,10 +121,9 @@ class UserSessionManager
// Invoked when the user is logging in for the first time, or is logging in to
// an ephemeral session type, such as guest or a public session.
- static void SetFirstLoginPrefs(
- PrefService* prefs,
- const std::string& public_session_locale,
- const std::string& public_session_input_method);
+ void SetFirstLoginPrefs(Profile* profile,
+ const std::string& public_session_locale,
+ const std::string& public_session_input_method);
// Gets/sets Chrome OAuth client id and secret for kiosk app mode. The default
// values can be overridden with kiosk auth file.
@@ -134,8 +142,15 @@ class UserSessionManager
const user_manager::User* user,
scoped_ptr<locale_util::SwitchLanguageCallback> callback) const;
- void AddSessionStateObserver(UserSessionStateObserver* observer);
- void RemoveSessionStateObserver(UserSessionStateObserver* observer);
+ void AddSessionStateObserver(chromeos::UserSessionStateObserver* observer);
+ void RemoveSessionStateObserver(chromeos::UserSessionStateObserver* observer);
+
+ virtual void ActiveUserChanged(
+ const user_manager::User* active_user) OVERRIDE;
+
+ // Returns default IME state for user session.
+ scoped_refptr<input_method::InputMethodManager::State> GetDefaultIMEState(
+ Profile* profile);
private:
friend struct DefaultSingletonTraits<UserSessionManager>;
@@ -240,7 +255,7 @@ class UserSessionManager
// [user_id] > [user_id_hash]
SessionManagerClient::ActiveSessionsMap pending_user_sessions_;
- ObserverList<UserSessionStateObserver> session_state_observer_list_;
+ ObserverList<chromeos::UserSessionStateObserver> session_state_observer_list_;
// OAuth2 session related members.
@@ -262,6 +277,10 @@ class UserSessionManager
std::string chrome_client_id_;
std::string chrome_client_secret_;
+ // Per-user-session Input Methods states.
+ std::map<Profile*, scoped_refptr<input_method::InputMethodManager::State> >
+ default_ime_states_;
+
DISALLOW_COPY_AND_ASSIGN(UserSessionManager);
};
« no previous file with comments | « chrome/browser/chromeos/login/lock/screen_locker.cc ('k') | chrome/browser/chromeos/login/session/user_session_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698