| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/login/session/user_session_manager.h" | 5 #include "chrome/browser/chromeos/login/session/user_session_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" | 33 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" |
| 34 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 34 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
| 35 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" | 35 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" |
| 36 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 36 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 37 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 37 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 38 #include "chrome/browser/chromeos/settings/cros_settings.h" | 38 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 39 #include "chrome/browser/first_run/first_run.h" | 39 #include "chrome/browser/first_run/first_run.h" |
| 40 #include "chrome/browser/google/google_brand_chromeos.h" | 40 #include "chrome/browser/google/google_brand_chromeos.h" |
| 41 #include "chrome/browser/lifetime/application_lifetime.h" | 41 #include "chrome/browser/lifetime/application_lifetime.h" |
| 42 #include "chrome/browser/net/crl_set_fetcher.h" | 42 #include "chrome/browser/net/crl_set_fetcher.h" |
| 43 #include "chrome/browser/net/nss_context.h" | |
| 44 #include "chrome/browser/profiles/profile.h" | 43 #include "chrome/browser/profiles/profile.h" |
| 45 #include "chrome/browser/profiles/profile_manager.h" | 44 #include "chrome/browser/profiles/profile_manager.h" |
| 46 #include "chrome/browser/rlz/rlz.h" | 45 #include "chrome/browser/rlz/rlz.h" |
| 47 #include "chrome/browser/signin/signin_manager_factory.h" | 46 #include "chrome/browser/signin/signin_manager_factory.h" |
| 48 #include "chrome/common/chrome_switches.h" | 47 #include "chrome/common/chrome_switches.h" |
| 49 #include "chrome/common/logging_chrome.h" | 48 #include "chrome/common/logging_chrome.h" |
| 50 #include "chrome/common/pref_names.h" | 49 #include "chrome/common/pref_names.h" |
| 51 #include "chromeos/cert_loader.h" | |
| 52 #include "chromeos/chromeos_switches.h" | 50 #include "chromeos/chromeos_switches.h" |
| 53 #include "chromeos/cryptohome/cryptohome_util.h" | 51 #include "chromeos/cryptohome/cryptohome_util.h" |
| 54 #include "chromeos/dbus/cryptohome_client.h" | 52 #include "chromeos/dbus/cryptohome_client.h" |
| 55 #include "chromeos/dbus/dbus_thread_manager.h" | 53 #include "chromeos/dbus/dbus_thread_manager.h" |
| 56 #include "chromeos/dbus/session_manager_client.h" | 54 #include "chromeos/dbus/session_manager_client.h" |
| 57 #include "chromeos/ime/input_method_manager.h" | 55 #include "chromeos/ime/input_method_manager.h" |
| 58 #include "chromeos/network/portal_detector/network_portal_detector.h" | 56 #include "chromeos/network/portal_detector/network_portal_detector.h" |
| 59 #include "chromeos/network/portal_detector/network_portal_detector_strategy.h" | 57 #include "chromeos/network/portal_detector/network_portal_detector_strategy.h" |
| 60 #include "chromeos/settings/cros_settings_names.h" | 58 #include "chromeos/settings/cros_settings_names.h" |
| 61 #include "components/component_updater/component_updater_service.h" | 59 #include "components/component_updater/component_updater_service.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 const base::FilePath::CharType kRLZDisabledFlagName[] = | 149 const base::FilePath::CharType kRLZDisabledFlagName[] = |
| 152 FILE_PATH_LITERAL(".rlz_disabled"); | 150 FILE_PATH_LITERAL(".rlz_disabled"); |
| 153 | 151 |
| 154 base::FilePath GetRlzDisabledFlagPath() { | 152 base::FilePath GetRlzDisabledFlagPath() { |
| 155 base::FilePath homedir; | 153 base::FilePath homedir; |
| 156 PathService::Get(base::DIR_HOME, &homedir); | 154 PathService::Get(base::DIR_HOME, &homedir); |
| 157 return homedir.Append(kRLZDisabledFlagName); | 155 return homedir.Append(kRLZDisabledFlagName); |
| 158 } | 156 } |
| 159 #endif | 157 #endif |
| 160 | 158 |
| 161 // Callback to GetNSSCertDatabaseForProfile. It starts CertLoader using the | |
| 162 // provided NSS database. It must be called for primary user only. | |
| 163 void OnGetNSSCertDatabaseForUser(net::NSSCertDatabase* database) { | |
| 164 if (!CertLoader::IsInitialized()) | |
| 165 return; | |
| 166 | |
| 167 CertLoader::Get()->StartWithNSSDB(database); | |
| 168 } | |
| 169 | |
| 170 } // namespace | 159 } // namespace |
| 171 | 160 |
| 172 #if defined(ENABLE_RLZ) | 161 #if defined(ENABLE_RLZ) |
| 173 void UserSessionManagerDelegate::OnRlzInitialized() { | 162 void UserSessionManagerDelegate::OnRlzInitialized() { |
| 174 } | 163 } |
| 175 #endif | 164 #endif |
| 176 | 165 |
| 177 UserSessionManagerDelegate::~UserSessionManagerDelegate() { | 166 UserSessionManagerDelegate::~UserSessionManagerDelegate() { |
| 178 } | 167 } |
| 179 | 168 |
| (...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 767 content::NotificationService::current()->Notify( | 756 content::NotificationService::current()->Notify( |
| 768 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, | 757 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, |
| 769 content::NotificationService::AllSources(), | 758 content::NotificationService::AllSources(), |
| 770 content::Details<Profile>(profile)); | 759 content::Details<Profile>(profile)); |
| 771 | 760 |
| 772 // Initialize various services only for primary user. | 761 // Initialize various services only for primary user. |
| 773 const user_manager::User* user = | 762 const user_manager::User* user = |
| 774 ProfileHelper::Get()->GetUserByProfile(profile); | 763 ProfileHelper::Get()->GetUserByProfile(profile); |
| 775 if (user_manager->GetPrimaryUser() == user) { | 764 if (user_manager->GetPrimaryUser() == user) { |
| 776 InitRlz(profile); | 765 InitRlz(profile); |
| 777 InitializeCerts(profile); | |
| 778 InitializeCRLSetFetcher(user); | 766 InitializeCRLSetFetcher(user); |
| 779 } | 767 } |
| 780 | 768 |
| 781 // TODO(nkostylev): This pointer should probably never be NULL, but it looks | 769 // TODO(nkostylev): This pointer should probably never be NULL, but it looks |
| 782 // like LoginUtilsImpl::OnProfileCreated() may be getting called before | 770 // like LoginUtilsImpl::OnProfileCreated() may be getting called before |
| 783 // UserSessionManager::PrepareProfile() has set |delegate_| when Chrome is | 771 // UserSessionManager::PrepareProfile() has set |delegate_| when Chrome is |
| 784 // killed during shutdown in tests -- see http://crosbug.com/18269. Replace | 772 // killed during shutdown in tests -- see http://crosbug.com/18269. Replace |
| 785 // this 'if' statement with a CHECK(delegate_) once the underlying issue is | 773 // this 'if' statement with a CHECK(delegate_) once the underlying issue is |
| 786 // resolved. | 774 // resolved. |
| 787 if (delegate_) | 775 if (delegate_) |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 875 RLZTracker::InitRlzFromProfileDelayed( | 863 RLZTracker::InitRlzFromProfileDelayed( |
| 876 profile, | 864 profile, |
| 877 user_manager::UserManager::Get()->IsCurrentUserNew(), | 865 user_manager::UserManager::Get()->IsCurrentUserNew(), |
| 878 ping_delay < 0, | 866 ping_delay < 0, |
| 879 base::TimeDelta::FromMilliseconds(abs(ping_delay))); | 867 base::TimeDelta::FromMilliseconds(abs(ping_delay))); |
| 880 if (delegate_) | 868 if (delegate_) |
| 881 delegate_->OnRlzInitialized(); | 869 delegate_->OnRlzInitialized(); |
| 882 #endif | 870 #endif |
| 883 } | 871 } |
| 884 | 872 |
| 885 void UserSessionManager::InitializeCerts(Profile* profile) { | |
| 886 // Now that the user profile has been initialized | |
| 887 // |GetNSSCertDatabaseForProfile| is safe to be used. | |
| 888 if (CertLoader::IsInitialized() && base::SysInfo::IsRunningOnChromeOS()) { | |
| 889 GetNSSCertDatabaseForProfile(profile, | |
| 890 base::Bind(&OnGetNSSCertDatabaseForUser)); | |
| 891 } | |
| 892 } | |
| 893 | |
| 894 void UserSessionManager::InitializeCRLSetFetcher( | 873 void UserSessionManager::InitializeCRLSetFetcher( |
| 895 const user_manager::User* user) { | 874 const user_manager::User* user) { |
| 896 const std::string username_hash = user->username_hash(); | 875 const std::string username_hash = user->username_hash(); |
| 897 if (!username_hash.empty()) { | 876 if (!username_hash.empty()) { |
| 898 base::FilePath path; | 877 base::FilePath path; |
| 899 path = ProfileHelper::GetProfilePathByUserIdHash(username_hash); | 878 path = ProfileHelper::GetProfilePathByUserIdHash(username_hash); |
| 900 component_updater::ComponentUpdateService* cus = | 879 component_updater::ComponentUpdateService* cus = |
| 901 g_browser_process->component_updater(); | 880 g_browser_process->component_updater(); |
| 902 CRLSetFetcher* crl_set = g_browser_process->crl_set_fetcher(); | 881 CRLSetFetcher* crl_set = g_browser_process->crl_set_fetcher(); |
| 903 if (crl_set && cus) | 882 if (crl_set && cus) |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 999 default_ime_states_[profile]; | 978 default_ime_states_[profile]; |
| 1000 if (!state) { | 979 if (!state) { |
| 1001 // Profile can be NULL in tests. | 980 // Profile can be NULL in tests. |
| 1002 state = input_method::InputMethodManager::Get()->CreateNewState(profile); | 981 state = input_method::InputMethodManager::Get()->CreateNewState(profile); |
| 1003 default_ime_states_[profile] = state; | 982 default_ime_states_[profile] = state; |
| 1004 } | 983 } |
| 1005 return state; | 984 return state; |
| 1006 } | 985 } |
| 1007 | 986 |
| 1008 } // namespace chromeos | 987 } // namespace chromeos |
| OLD | NEW |