Chromium Code Reviews| Index: components/session_manager/core/session_manager.cc |
| diff --git a/components/session_manager/core/session_manager.cc b/components/session_manager/core/session_manager.cc |
| index 3d2c4b5a40a2ee3c4065859e6925897290fed1ba..713766eba39135df256f05fc6980cd82728c6151 100644 |
| --- a/components/session_manager/core/session_manager.cc |
| +++ b/components/session_manager/core/session_manager.cc |
| @@ -4,13 +4,16 @@ |
| #include "components/session_manager/core/session_manager.h" |
| +#include <algorithm> |
| + |
| #include "base/logging.h" |
| #include "build/build_config.h" |
| +#include "components/user_manager/user_manager.h" |
| namespace session_manager { |
| // static |
| -SessionManager* SessionManager::instance = NULL; |
| +SessionManager* SessionManager::instance = nullptr; |
| SessionManager::SessionManager() { |
| DCHECK(!SessionManager::Get()); |
| @@ -18,8 +21,8 @@ SessionManager::SessionManager() { |
| } |
| SessionManager::~SessionManager() { |
| - DCHECK(instance == this); |
| - SessionManager::SetInstance(NULL); |
| + DCHECK_EQ(instance, this); |
| + SessionManager::SetInstance(nullptr); |
| } |
| // static |
| @@ -38,6 +41,18 @@ void SessionManager::SetSessionState(SessionState state) { |
| } |
| } |
| +void SessionManager::CreateSession(const AccountId& user_account_id, |
| + const std::string& user_id_hash, |
| + bool browser_restart) { |
| + DCHECK(std::find_if(sessions_.begin(), sessions_.end(), |
|
achuithb
2016/10/31 21:55:57
Nice
|
| + [user_account_id](const Session& session) { |
| + return session.user_account_id == user_account_id; |
| + }) == sessions_.end()); |
| + |
| + sessions_.push_back({next_id_++, user_account_id}); |
| + NotifyUserLoggedIn(user_account_id, user_id_hash, browser_restart); |
| +} |
| + |
| bool SessionManager::IsSessionStarted() const { |
| return session_started_; |
| } |
| @@ -46,6 +61,15 @@ void SessionManager::SessionStarted() { |
| session_started_ = true; |
| } |
| +void SessionManager::NotifyUserLoggedIn(const AccountId& user_account_id, |
| + const std::string& user_id_hash, |
| + bool browser_restart) { |
| + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); |
|
achuithb
2016/10/31 21:55:57
auto* may be fine here
xiyuan
2016/10/31 22:29:45
Done.
|
| + if (!user_manager) |
| + return; |
| + user_manager->UserLoggedIn(user_account_id, user_id_hash, browser_restart); |
| +} |
| + |
| // static |
| void SessionManager::SetInstance(SessionManager* session_manager) { |
| SessionManager::instance = session_manager; |