| 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..64f41c05e9508ee3fe2b61aa29387b7b951c187c 100644
|
| --- a/chrome/browser/chromeos/login/session/user_session_manager.h
|
| +++ b/chrome/browser/chromeos/login/session/user_session_manager.h
|
| @@ -13,7 +13,9 @@
|
| #include "base/observer_list.h"
|
| #include "chrome/browser/chromeos/base/locale_util.h"
|
| #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h"
|
| +#include "chrome/browser/chromeos/login/users/user_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"
|
| @@ -23,6 +25,12 @@ 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 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);
|
| };
|
|
|
|
|