| 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 3fff7484f57fdd17974f0f059866dda1be90a128..f86de43b536d984cb9ea38698cda8ee04175b03c 100644
|
| --- a/components/session_manager/core/session_manager.cc
|
| +++ b/components/session_manager/core/session_manager.cc
|
| @@ -6,12 +6,30 @@
|
|
|
| #include "base/logging.h"
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +#include "base/command_line.h"
|
| +#include "base/sys_info.h"
|
| +#include "chromeos/chromeos_switches.h"
|
| +#endif
|
| +
|
| namespace session_manager {
|
|
|
| +// static
|
| +SessionManager* SessionManager::instance = NULL;
|
| +
|
| SessionManager::SessionManager() : session_state_(SESSION_STATE_UNKNOWN) {
|
| + DCHECK(!SessionManager::Get());
|
| + SessionManager::SetInstance(this);
|
| }
|
|
|
| SessionManager::~SessionManager() {
|
| + DCHECK(instance == this);
|
| + SessionManager::SetInstance(NULL);
|
| +}
|
| +
|
| +// static
|
| +SessionManager* SessionManager::Get() {
|
| + return SessionManager::instance;
|
| }
|
|
|
| void SessionManager::SetSessionState(SessionState state) {
|
| @@ -31,10 +49,26 @@ void SessionManager::Initialize(SessionManagerDelegate* delegate) {
|
| delegate_->SetSessionManager(this);
|
| }
|
|
|
| +// static
|
| +void SessionManager::SetInstance(SessionManager* session_manager) {
|
| + SessionManager::instance = session_manager;
|
| +}
|
| +
|
| void SessionManager::Start() {
|
| delegate_->Start();
|
| }
|
|
|
| +// static
|
| +bool SessionManager::HasBrowserRestarted() {
|
| +#if defined(OS_CHROMEOS)
|
| + CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| + return base::SysInfo::IsRunningOnChromeOS() &&
|
| + command_line->HasSwitch(chromeos::switches::kLoginUser);
|
| +#else
|
| + return false;
|
| +#endif
|
| +}
|
| +
|
| SessionManagerDelegate::SessionManagerDelegate() : session_manager_(NULL) {
|
| }
|
|
|
|
|