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

Side by Side Diff: chrome/browser/chromeos/login/session/user_session_manager.cc

Issue 2808353008: arc: kArcCompatibleFilesystemChosen pref to local state and integer. (Closed)
Patch Set: Update reflecting review comments. Created 3 years, 8 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 unified diff | Download patch
OLDNEW
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 CreateUserSession(user_context, has_auth_cookies); 506 CreateUserSession(user_context, has_auth_cookies);
507 507
508 if (!has_active_session) 508 if (!has_active_session)
509 StartCrosSession(); 509 StartCrosSession();
510 510
511 if (!user_context.GetDeviceId().empty()) { 511 if (!user_context.GetDeviceId().empty()) {
512 user_manager::known_user::SetDeviceId(user_context.GetAccountId(), 512 user_manager::known_user::SetDeviceId(user_context.GetAccountId(),
513 user_context.GetDeviceId()); 513 user_context.GetDeviceId());
514 } 514 }
515 515
516 PrepareProfile(); 516 arc::UpdateArcFileSystemCompatibilityPrefIfNeeded(
517 user_context_.GetAccountId(),
518 ProfileHelper::GetProfilePathByUserIdHash(user_context_.GetUserIDHash()),
519 base::Bind(&UserSessionManager::PrepareProfile, AsWeakPtr()));
517 } 520 }
518 521
519 void UserSessionManager::DelegateDeleted(UserSessionManagerDelegate* delegate) { 522 void UserSessionManager::DelegateDeleted(UserSessionManagerDelegate* delegate) {
520 if (delegate_ == delegate) 523 if (delegate_ == delegate)
521 delegate_ = nullptr; 524 delegate_ = nullptr;
522 } 525 }
523 526
524 void UserSessionManager::PerformPostUserLoggedInActions() { 527 void UserSessionManager::PerformPostUserLoggedInActions() {
525 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); 528 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
526 if (user_manager->GetLoggedInUsers().size() == 1) { 529 if (user_manager->GetLoggedInUsers().size() == 1) {
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 980
978 void UserSessionManager::StartCrosSession() { 981 void UserSessionManager::StartCrosSession() {
979 BootTimesRecorder* btl = BootTimesRecorder::Get(); 982 BootTimesRecorder* btl = BootTimesRecorder::Get();
980 btl->AddLoginTimeMarker("StartSession-Start", false); 983 btl->AddLoginTimeMarker("StartSession-Start", false);
981 DBusThreadManager::Get()->GetSessionManagerClient()->StartSession( 984 DBusThreadManager::Get()->GetSessionManagerClient()->StartSession(
982 cryptohome::Identification(user_context_.GetAccountId())); 985 cryptohome::Identification(user_context_.GetAccountId()));
983 btl->AddLoginTimeMarker("StartSession-End", false); 986 btl->AddLoginTimeMarker("StartSession-End", false);
984 } 987 }
985 988
986 void UserSessionManager::PrepareProfile() { 989 void UserSessionManager::PrepareProfile() {
987 const base::FilePath profile_path =
988 ProfileHelper::GetProfilePathByUserIdHash(user_context_.GetUserIDHash());
989
990 base::PostTaskWithTraitsAndReplyWithResult(
991 FROM_HERE,
992 base::TaskTraits()
993 .WithShutdownBehavior(
994 base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN)
995 .WithPriority(base::TaskPriority::USER_BLOCKING)
996 .MayBlock(),
997 base::Bind(&arc::IsArcCompatibleFilesystem, profile_path),
998 base::Bind(&UserSessionManager::PrepareProfileAfterFilesystemCheck,
999 AsWeakPtr()));
1000 }
1001
1002 void UserSessionManager::PrepareProfileAfterFilesystemCheck(
1003 bool arc_compatible_filesystem) {
1004 const bool is_demo_session = 990 const bool is_demo_session =
1005 DemoAppLauncher::IsDemoAppSession(user_context_.GetAccountId()); 991 DemoAppLauncher::IsDemoAppSession(user_context_.GetAccountId());
1006 992
1007 // TODO(nkostylev): Figure out whether demo session is using the right profile 993 // TODO(nkostylev): Figure out whether demo session is using the right profile
1008 // path or not. See https://codereview.chromium.org/171423009 994 // path or not. See https://codereview.chromium.org/171423009
1009 g_browser_process->profile_manager()->CreateProfileAsync( 995 g_browser_process->profile_manager()->CreateProfileAsync(
1010 ProfileHelper::GetProfilePathByUserIdHash(user_context_.GetUserIDHash()), 996 ProfileHelper::GetProfilePathByUserIdHash(user_context_.GetUserIDHash()),
1011 base::Bind(&UserSessionManager::OnProfileCreated, AsWeakPtr(), 997 base::Bind(&UserSessionManager::OnProfileCreated, AsWeakPtr(),
1012 user_context_, is_demo_session, arc_compatible_filesystem), 998 user_context_, is_demo_session),
1013 base::string16(), std::string(), std::string()); 999 base::string16(), std::string(), std::string());
1014 } 1000 }
1015 1001
1016 void UserSessionManager::OnProfileCreated(const UserContext& user_context, 1002 void UserSessionManager::OnProfileCreated(const UserContext& user_context,
1017 bool is_incognito_profile, 1003 bool is_incognito_profile,
1018 bool arc_compatible_filesystem,
1019 Profile* profile, 1004 Profile* profile,
1020 Profile::CreateStatus status) { 1005 Profile::CreateStatus status) {
1021 CHECK(profile); 1006 CHECK(profile);
1022 1007
1023 switch (status) { 1008 switch (status) {
1024 case Profile::CREATE_STATUS_CREATED: 1009 case Profile::CREATE_STATUS_CREATED:
1025 // Profile created but before initializing extensions and promo resources. 1010 // Profile created but before initializing extensions and promo resources.
1026 InitProfilePreferences(profile, user_context, arc_compatible_filesystem); 1011 InitProfilePreferences(profile, user_context);
1027 break; 1012 break;
1028 case Profile::CREATE_STATUS_INITIALIZED: 1013 case Profile::CREATE_STATUS_INITIALIZED:
1029 // Profile is created, extensions and promo resources are initialized. 1014 // Profile is created, extensions and promo resources are initialized.
1030 // At this point all other Chrome OS services will be notified that it is 1015 // At this point all other Chrome OS services will be notified that it is
1031 // safe to use this profile. 1016 // safe to use this profile.
1032 UserProfileInitialized(profile, is_incognito_profile, 1017 UserProfileInitialized(profile, is_incognito_profile,
1033 user_context.GetAccountId()); 1018 user_context.GetAccountId());
1034 break; 1019 break;
1035 case Profile::CREATE_STATUS_LOCAL_FAIL: 1020 case Profile::CREATE_STATUS_LOCAL_FAIL:
1036 case Profile::CREATE_STATUS_REMOTE_FAIL: 1021 case Profile::CREATE_STATUS_REMOTE_FAIL:
1037 case Profile::CREATE_STATUS_CANCELED: 1022 case Profile::CREATE_STATUS_CANCELED:
1038 case Profile::MAX_CREATE_STATUS: 1023 case Profile::MAX_CREATE_STATUS:
1039 NOTREACHED(); 1024 NOTREACHED();
1040 break; 1025 break;
1041 } 1026 }
1042 } 1027 }
1043 1028
1044 void UserSessionManager::InitProfilePreferences( 1029 void UserSessionManager::InitProfilePreferences(
1045 Profile* profile, 1030 Profile* profile,
1046 const UserContext& user_context, 1031 const UserContext& user_context) {
1047 bool arc_compatible_filesystem) {
1048 profile->GetPrefs()->SetBoolean(prefs::kArcCompatibleFilesystemChosen,
1049 arc_compatible_filesystem);
1050
1051 const user_manager::User* user = 1032 const user_manager::User* user =
1052 ProfileHelper::Get()->GetUserByProfile(profile); 1033 ProfileHelper::Get()->GetUserByProfile(profile);
1053 if (user->GetType() == user_manager::USER_TYPE_KIOSK_APP && 1034 if (user->GetType() == user_manager::USER_TYPE_KIOSK_APP &&
1054 profile->IsNewProfile()) { 1035 profile->IsNewProfile()) {
1055 ChromeUserManager::Get()->SetIsCurrentUserNew(true); 1036 ChromeUserManager::Get()->SetIsCurrentUserNew(true);
1056 } 1037 }
1057 1038
1058 if (user->is_active()) { 1039 if (user->is_active()) {
1059 input_method::InputMethodManager* manager = 1040 input_method::InputMethodManager* manager =
1060 input_method::InputMethodManager::Get(); 1041 input_method::InputMethodManager::Get();
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
1971 ->browser_policy_connector_chromeos() 1952 ->browser_policy_connector_chromeos()
1972 ->IsEnterpriseManaged()) { 1953 ->IsEnterpriseManaged()) {
1973 return false; 1954 return false;
1974 } 1955 }
1975 1956
1976 // Do not show end of life notification if this is a guest session 1957 // Do not show end of life notification if this is a guest session
1977 return !profile->IsGuestSession(); 1958 return !profile->IsGuestSession();
1978 } 1959 }
1979 1960
1980 } // namespace chromeos 1961 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698